Intel Threading Building Blocks

Intel Threading Building Blocks
Intel Threading Building Blocks
Desarrollador
Intel
www.threadingbuildingblocks.com/
Información general
Última versión estable 2.1 update 4
22 de abril de 2009
Género Biblioteca
Programado en C++
Sistema operativo Linux, Mac OS X, Windows
Licencia ?
En español ?

Intel Threading Building Blocks (Intel TBB) es una biblioteca basada en plantillas para C++ desarrollada por Intel para facilitar la escritura de programas que exploten las capacidades de paralelismo de los procesadores con arquitectura multinúcleo.

Esta biblioteca proporciona algoritmos y estructuras de datos que permiten al programador evitar en parte las complicaciones derivadas del uso de los paquetes nativos de gestión de hilos de ejecución en los que la creación, sincronización y destrucción de los hilos es explícita y dependiente del sistema. En lugar de esto, la biblioteca abstrae el acceso a los múltiples procesadores permitiendo que las operaciones sean tratadas como tareas que se reparten automática y dinámicamente entre los procesadores disponibles mediante un gestor en tiempo de ejecución.

Esta aproximación hace que Intel TBB se incluya en la familia de soluciones para la programación paralela que permiten desacoplar la programación de las características particulares de la máquina.

Contenido

Historia

La primera versión de esta biblioteca (versión 1.0) fue publicada por Intel el 29 de agosto de 2006, un año después del lanzamiento del primer procesador multinúcleo de arquitectura x86 de Intel, el Pentium D. La versión 1.1 se publicó el 10 de abril de 2007. Ésta nueva versión introdujo el auto_partitioner ofreciendo una alternativa automática a la especificación manual del tamaño de grano idóneo para la paralelización de tareas. Ese mismo año fue incluida en la versión 10.0 de la edición profesional del Intel C++ Compiler.[1]

La versión 2.0 fue publicada el 24 de julio de 2007. Esta versión incluyó la liberación del código fuente y la creación de un proyecto colaborativo de código abierto.[2] El código se distribuye bajo la licencia GPLv2 with an "runtime exception", la misma que utiliza la implementación de la biblioteca estandar de C++ de GCC. Sin embargo, Intel TBB se sigue distribuyendo bajo una versión comercial sin código fuente que proporciona soporte pero que no aporta funcionalidad extra.

La versión 2.1 se publicó el 22 de julio de 2008 aunque ha sido actualizada en diversas ocasiones. Aporta novedades como afinidad tarea-hilo, soporte de cancelación, manejo de excepciones y adaptadores portables para hilos. La última actualización publicada de esta versión ha sido la update 4 con fecha 22 de abril de 2009.

Implementación

Intel TBB implenta task stealing (robo de tareas) para balancear la carga de trabajo sobre los núcleos de procesamiento disponibles con el fin de incrementar el aprovechamiento de los núcleos y la escalabilidad de los programas. Inicialmente la carga de trabajo se divide uniformemente entre los núcleos de procesamiento disponibles. Si alguno de ellos termina su trabajo mientras otro todavía tiene una carga significativa en su cola de tareas, el gestor de tareas reasigna parte de este trabajo al núcleo inactivo. Esta capacidad de reasignación dinámica desacopla la programación de la máquina, permitiendo que las aplicaciones escritas usando esta biblioteca se escalen para usar todos los núcleos de procesamiento disponibles si ningún cambio en el código fuente o los ejecutables.

Intel TBB, siguiendo el ejemplo de la STL, está basada en el uso de plantillas ya que se espera que el polimorfismo en tiempo de compilación sea más eficiente que el tradicional polimorfismo en tiempo de ejecución.


Contenidos

Intel TBB aporta, entre otros, la siguiente colección de componentes para la programación paralela:

  • Algoritmos básicos: parallel_for, parallel_reduce, parallel_scan.
  • Algoritmos avanzados: parallel_while, parallel_do, pipeline, parallel_sort.
  • Contenedores: concurrent_queue, concurrent_vector, concurrent_hash_map.
  • Reserva de memoria: scalable_allocator, cache_aligned_allocator.
  • Exclusión mutua: mutex, spin_mutex, queuing_mutex, spin_rw_mutex, queuing_rw_mutex, recursive mutex.
  • Operaciones atómicas: fetch_and_increment, fetch_and_decrement, fetch_and_add, compare_and_swap, fetch_and_store.
  • Toma de tiempos: tick_count.
  • Gestor de tareas: task.

Sistemas soportados

Intel TBB 2.1 en su versión comercial está soportada en Microsoft Windows (XP o posterior), Mac OS X (versión 10.4.4 o superior) y Linux, soportando varios compiladores: Visual C++ (versión 7.1 o superior, sólo en Windows), Intel C++ Compiler (versión 9.0 o superior) o GCC.[3] Adiccionalmente, la implementación libre de Intel TBB está soportada en Sun Solaris,[4] PowerPC, XBOX 360, QNX Neutrino, y FreeBSD.

En septiembre de 2008, Intel TBB estaba disponible en forma de paquete para las siguientes distribuciones Linux:

Véase también

  • Programación paralela

Referencias

Bibliografía

  • Reinders, James (Julio de 2007). Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism. Sebastopol: O'Reilly Media. ISBN 978-0-596-51480-8. 


Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Intel Threading Building Blocks — (also known as TBB) is the name of a C++ template library developed by Intel for writing software programs that take advantage of multi core processors. The library consists of data structures and algorithms that allow a programmer to avoid some… …   Wikipedia

  • Intel Threading Building Blocks — Тип библиотека (программирование) Разработчик Intel Написана на С++, Assembler Операционная система Кроссплатформенный Последняя версия 4.1 Update 1 (05.09.2012) …   Википедия

  • Threading Building Blocks — Die Threading Building Blocks (auch Intel Threading Building Blocks oder kurz TBB) ist eine C++ Programmierbibliothek, entwickelt von Intel zur effizienten Nutzung von Mehrkernprozessoren. Die Bibliothek bietet einen Satz von Datenstrukturen und… …   Deutsch Wikipedia

  • Threading Building Blocks — (TBB) est une bibliothèque logicielle développée par la société Intel Cet outil développé en C++ permet d abstraire au maximum les détails complexes de la programmation sur microprocesseur multi cœur. Ainsi un développeur n a plus à se soucier d… …   Wikipédia en Français

  • Intel Parallel Inspector — Тип Профилировщик / Отладчик использования памяти Разработчик Intel Developer Products Операционная система Windows Лицензия Проприетарная, однопользовательская …   Википедия

  • Intel Cilk Plus — Cilk Plus Paradigm(s) imperative (procedural), structured, parallel Appeared in 2010 Designed by Intel Developer Intel Stable release Parallel Studio 201 …   Wikipedia

  • Intel C++ Compiler — Esta página o sección está siendo traducida del idioma inglés a partir del artículo Intel C++ Compiler, razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir. Puedes colaborar con Wikipedia …   Wikipedia Español

  • Intel Cilk Plus — Cilk Plus Класс языка: Императивный, процедурный, структурный, параллельный Появился в: 2010 Автор(ы): Intel Основные реализации: Intel C++ Compiler, GCC Испытал влияние: C …   Википедия

  • List of multi-threading libraries — List of cross platform multi threading libraries for the c++ programming language.* Boost C++ Libraries * OpenMP * OpenThreads * POCO Thread (part of POCO project http://pocoproject.org/poco/info/index.html ) * Zthread * Intel Threading Building… …   Wikipedia

  • Tbb — Intel Threading Building Blocks Тип библиотека (программирование) Разработчик Написана на С++ ОС Кроссплатформенный Версия 2.1 07.06.2008 Лицензия …   Википедия

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”