Threading Building Blocks

Un article de Wikipédia, l'encyclopédie libre.

Sommaire

[modifier] Définition

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'écrire son code pour les threads (processus léger) POSIX ou pour les threads Windows car c'est TBB qui s'occupe de tous les détails spécifiques.

La bibliothèque TBB fonctionne sur différents compilateurs (Intel, Microsoft et GCC) et se veut donc parfaitement indépendante par rapport à l'architecture sous-jacente, comme par rapport à l'environnement logiciel.

Elle se compose principalement d'algorithmes (parallel_for, parallel_while et parallel_reduce) et de containers (concurrent_queue). Bien que ses algorithmes soient différents de ceux de la Standard Template Library, ils pourraient être utilisés pour en reprogrammer des versions parallèles.

[modifier] License

TBB est sous une double licence :

  • licence commerciale (299$)
  • licence libre (GNU GPL)

La version commerciale de TBB contient exactement le même code que la version libre et ne se distingue que par le support technique d'une durée d'un an. Elle supporte Windows, GNU/Linux et Mac OS X, alors que la version libre y ajoute Solaris 10, FreeBSD et le support des processeurs PowerPC G5 sur Mac OS.

[modifier] Liens

Site officiel (en)

[modifier] Voir aussi

La parallèlisation d'algorithmes est un domaine exploré notamment depuis la standardisation apportées par la Standard Template Library, la normalisation de la bibliothèque POSIX de multi-threading, et la généralisation des processeurs multi-cores. Ce secteur étant loin d'être mûr techniquement, à terme, certaines pratiques de programmation seront écartées et d'autres seront définitivement adoptées. Pour l'heure, un certain nombre de tentatives similaires existent:

  • STAPL qui propose des containers distribués, adaptés au traitement parallèle, nécessitant cependant des modifications importantes d'un programme séquentiel existant.
  • Range Partition Adaptors (RPA) strictement compatible avec STL.
  • OpenMP, précompilateur et compilateur destiné, le calcul parallèle sur architecture à mémoire partagée, et fonctionant avec les langages C, C++ et Fortran.
Autres langues