Outil : alsk

Bibliothèque C++ active de parallélisation assistée par les squelettes algorithmiques

La bibliothèque alsk est une implémentation du concept de squelettes algorithmiques en C++ par métaprogrammation template et dont l'interface repose sur des EDSL permettant la description d'algorithmes complets. Ces descriptions permettent la construction d'AST annotés d'informations relatives aux dépendances et liens entre les différentes parties de l'algorithme. Grâce à celles-ci et un ensemble de paramètres, tels que le nombre de cœurs alloués ou une politique d'exécution, la bibliothèque détermine comment doit être parallélisé l'algorithme et génère le code adapté. La répétabilité des exécutions peut être garantie, y compris pour les algorithmes stochastiques, indépendamment du degré de parallélisation effectif.

Cette bibliothèque est en lien avec deux autres projets : la bibliothèque TMP, sur laquelle alsk repose, fournit un ensemble de structures de données et d'algorithmes pour faciliter la conception de métaprogrammes ; et la bibliothèque ROSA, qui repose sur alsk, fournit un ensemble de squelettes algorithmiques dédiés à la recherche opérationnelle.



https://phd.pereda.fr/dev/alsk

Auteurs : Alexis PEREDA, Bruno BACHELET, Claude MAZEL, David HILL