fbpx
Wikipedia

Intel Threading Building Blocks

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.

Intel Threading Building Blocks
Información general
Tipo de programa Biblioteca
Desarrollador Intel
Licencia Dual: Propietaria y Open Source
Información técnica
Programado en C++
Versiones
Última versión estable 4.0 ( 08 de septiembre de 2011)
Enlaces
Sitio web oficial
Repositorio de código

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.

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 estándar 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

Referencias

  1. . Archivado desde el original el 15 de julio de 2009. Consultado el 23 de abril de 2009. 
  2. Thread Building Blocks
  3. . pp. 4-5. Archivado desde el original el 19 de julio de 2011. Consultado el 23 de abril de 2009. 
  4. «Using Intel's Threaded Building Blocks (TBB) With Sun Studio Express». Consultado el 23 de abril de 2009. 

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

  • Web de la versión comercial (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  • Web del proyecto en código abierto
  •   Datos: Q1384104

intel, threading, building, blocks, intel, biblioteca, basada, plantillas, para, desarrollada, intel, para, facilitar, escritura, programas, exploten, capacidades, paralelismo, procesadores, arquitectura, multinúcleo, información, generaltipo, programabibliote. 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 multinucleo Intel Threading Building BlocksInformacion generalTipo de programaBibliotecaDesarrolladorIntelLicenciaDual Propietaria y Open SourceInformacion tecnicaProgramado enC VersionesUltima version estable4 0 08 de septiembre de 2011 EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata 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 gestion de hilos de ejecucion en los que la creacion sincronizacion y destruccion de los hilos es explicita y dependiente del sistema En lugar de esto la biblioteca abstrae el acceso a los multiples procesadores permitiendo que las operaciones sean tratadas como tareas que se reparten automatica y dinamicamente entre los procesadores disponibles mediante un gestor en tiempo de ejecucion Esta aproximacion hace que Intel TBB se incluya en la familia de soluciones para la programacion paralela que permiten desacoplar la programacion de las caracteristicas particulares de la maquina Indice 1 Historia 2 Implementacion 3 Contenidos 4 Sistemas soportados 5 Vease tambien 6 Referencias 7 Bibliografia 8 Enlaces externosHistoria EditarLa primera version de esta biblioteca version 1 0 fue publicada por Intel el 29 de agosto de 2006 un ano despues del lanzamiento del primer procesador multinucleo de arquitectura x86 de Intel el Pentium D La version 1 1 se publico el 10 de abril de 2007 Esta nueva version introdujo el auto partitioner ofreciendo una alternativa automatica a la especificacion manual del tamano de grano idoneo para la paralelizacion de tareas Ese mismo ano fue incluida en la version 10 0 de la edicion profesional del Intel C Compiler 1 La version 2 0 fue publicada el 24 de julio de 2007 Esta version incluyo la liberacion del codigo fuente y la creacion de un proyecto colaborativo de codigo abierto 2 El codigo se distribuye bajo la licencia GPLv2 with an runtime exception la misma que utiliza la implementacion de la biblioteca estandar de C de GCC Sin embargo Intel TBB se sigue distribuyendo bajo una version comercial sin codigo fuente que proporciona soporte pero que no aporta funcionalidad extra La version 2 1 se publico el 22 de julio de 2008 aunque ha sido actualizada en diversas ocasiones Aporta novedades como afinidad tarea hilo soporte de cancelacion manejo de excepciones y adaptadores portables para hilos La ultima actualizacion publicada de esta version ha sido la update 4 con fecha 22 de abril de 2009 Implementacion EditarIntel TBB implenta task stealing robo de tareas para balancear la carga de trabajo sobre los nucleos de procesamiento disponibles con el fin de incrementar el aprovechamiento de los nucleos y la escalabilidad de los programas Inicialmente la carga de trabajo se divide uniformemente entre los nucleos de procesamiento disponibles Si alguno de ellos termina su trabajo mientras otro todavia tiene una carga significativa en su cola de tareas el gestor de tareas reasigna parte de este trabajo al nucleo inactivo Esta capacidad de reasignacion dinamica desacopla la programacion de la maquina permitiendo que las aplicaciones escritas usando esta biblioteca se escalen para usar todos los nucleos de procesamiento disponibles si ningun cambio en el codigo fuente o los ejecutables Intel TBB siguiendo el ejemplo de la STL esta basada en el uso de plantillas ya que se espera que el polimorfismo en tiempo de compilacion sea mas eficiente que el tradicional polimorfismo en tiempo de ejecucion Contenidos EditarIntel TBB aporta entre otros la siguiente coleccion de componentes para la programacion paralela Algoritmos basicos 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 Exclusion mutua mutex spin mutex queuing mutex spin rw mutex queuing rw mutex recursive mutex Operaciones atomicas 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 EditarIntel TBB 2 1 en su version comercial esta soportada en Microsoft Windows XP o posterior Mac OS X version 10 4 4 o superior y Linux soportando varios compiladores Visual C version 7 1 o superior solo en Windows Intel C Compiler version 9 0 o superior o GCC 3 Adiccionalmente la implementacion libre de Intel TBB esta 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 Red Hat Fedora Novell openSUSE Canonical Ubuntu Red Flag Asianux Turbolinux DebianVease tambien EditarProgramacion paralela Cilk OpenMP OmpSs Charm Referencias Editar New Intel Products Simplify and Speed Software Development for Multi Core Processors Archivado desde el original el 15 de julio de 2009 Consultado el 23 de abril de 2009 Thread Building Blocks Intel Threading Building Blocks Release Notes Version 2 0 pp 4 5 Archivado desde el original el 19 de julio de 2011 Consultado el 23 de abril de 2009 Using Intel s Threaded Building Blocks TBB With Sun Studio Express Consultado el 23 de abril de 2009 Bibliografia EditarReinders 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 EditarWeb de la version comercial enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Web del proyecto en codigo abierto Datos Q1384104 Obtenido de https es wikipedia org w index php title Intel Threading Building Blocks amp oldid 127949037, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos