Threading Building Blocks
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 de l'architecture sous-jacente, comme de 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
TBB est sous une double licence :
- licence commerciale (299$)
- licence libre (Apache v2.0)
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
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é au calcul parallèle sur architecture à mémoire partagée, et fonctionnant avec les langages C, C++ et Fortran.