Intel da un paso importante para facilitar la programación sobre chips multi-core

24 Jul 2007 en Servidores

Muchas aplicaciones han sido y siguen siendo programadas asumiendo el funcionamiento de los clásicos procesadores de un solo núcleo o core. Mientras tanto, los fabricantes de chips van creando procesadores cada vez más poderosos y con mayor cantidad de cores/núcleos.
Conciente de esta situación, Intel ha decidido abrir (open source) su producto Intel Threading Building Blocks (TBB) bajo el modelo de licencia GPL versión 2.
TBB es un recurso para programación C++ con paralelismo que Intel presentó hace ya un año. Ahora se lo pasa al modelo open source y se agrega soporte a más sistemas operativos y procesadores.
Según James Reinders, director de marketing de productos de desarrollo de software en Intel, algunos de los problemas presentes en la versión 1.x de TBB se aliviarán bajo la actividad open source. “Algunos creían que Intel podría dejar de vender a TBB en algún momento. Ahora, siendo open source, está disponible para todo usuario C++ en cualquier plataforma que le interese.”
TBB funciona con casi todos los compiladores C++ y permite utilizar las ventajas del paralelismo sin salir de un entorno que resulta familiar a los programadores. La versión 2 de TBB simplifica la programación sobre múltiples procesadores mediante abstracción. En lugar de tener que escribir threads (o hilados) que ejecuten sobre un núcleo/core procesador en particular, TBB maneja el paralelismo en base a las tareas.
Dado que TBB es una librería de templates, en la parte de un programa en la que se quiere usar paralelismo se recurre a uno de los templates disponibles. Un template se presenta en forma similar a un llamado de función, pero en C++ ese template se expande y compila para los tipos que se le desea dar. TBB realiza la adjudicación de memoria para la actividad multi-procesador (multi-core) y también la adjudicación de tareas mediante un manejador de memoria escalable.
TBB ha escalado bien con 8 y con 16 cores según lo que informa Intel. Reinders aclara que TBB no intenta ocuparse del particionamiento de datos característico en máquinas más grandes con decenas de procesadores.
Otras herramientas para desarrollo sobre multi-core no serán abiertas por Intel. Son Thread Profiler 3.0 y Thread Checker 3.0, cuyo anuncio publicáramos hace casi un año. Intel ha decidido abrir primero a TBB para ir creando una comunidad alrededor de esta práctica.
Intel lanzó un sitio Web llamado Threading Building Blocks para fomentar la comunidad alrededor del uso de TBB. Si bien Intel acepta contribuciones de los desarrolladores, no existirá en principio un sistema de control de versiones en el site.
Antes de abrir a TBB al modo open source, Intel contempló la posibilidad de usar Apache o Eclipse, pero luego decidió ir por las suyas. “Queremos tener un lugar donde el paralelismo sea la pasión,” comenta Reinders.
Además de la licencia GPL 2, Intel dispone de una licencia comercial, para los actuales usuarios de TBB. Quienes participen en el desarrollo de ampliaciones de TBB otorgarán los derechos al proyecto.