Threading Building Blocks

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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.

Licence[modifier | modifier le code]

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.

Liens[modifier | modifier le code]

Site officiel (en)

Voir aussi[modifier | modifier le code]

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é au calcul parallèle sur architecture à mémoire partagée, et fonctionnant avec les langages C, C++ et Fortran.