CE25 - Sciences et génie du logiciel - Réseaux de communication multi-usages, infrastructures de hautes performances

Parallélisation Automatique à Base de Tâches avec Exécution Spéculative – AUTOSPEC

Résumé de soumission

Les performances croissantes des supercalculateurs sont soutenues par l'utilisation de processeurs manycore ou d'accélérateurs. Ce type de machines demande une grande expertise pour être utilisé efficacement. Les activités de recherches en informatique ont évolué dans différentes directions, parfois orthogonales, dans le but de permettre à des développeurs non-experts de bénéficier du potentiel de ces machines mais aussi pour proposer des méthodes pour les développeurs avancés. Ainsi, dans le domaine de la compilation, la communauté a créé différents outils de parallélisation automatique. La plupart de ces approches utilisent le modèle polyédrique afin de paralléliser des nids de boucles. Elles sont donc efficaces pour les opérateurs d'algèbre linéaire ou les codes de type "stencils". Toutefois, elles sont inadaptées pour un grand nombre d’applications qui ne concentrent pas leurs charges de travail dans des boucles bas niveau ou qui reposent sur un langage orienté objet avec de multiples mécanismes d'abstraction. D'un autre côté, la communauté du calcul haute performance a proposé différents paradigmes de parallélisation dont la parallélisation à base de tâches, souvent implémentée à l’aide d’un graphe de tâches dans lequel les noeuds représentent les tâches et les arêtes les dépendances entre celles-ci. Cette méthode permet de décrire finement le parallélisme d'un algorithme en faisant abstraction du matériel. Bien qu'elle ait démontré son potentiel dans des applications scientifiques diverses, elle reste principalement utilisée par des experts et il existe des applications qui ne peuvent passer à l'échelle à cause d'un degré de parallélisme limité.
Le projet AUTOSPEC vise à travailler sur les deux aspects en créant les méthodes pour paralléliser automatiquement des applications en se basant sur le parallélisme à base de tâches et en améliorant ce paradigme par l’étude des mécanismes d'exécution spéculative. Le projet s'intéresse aux transformations source-à-source pour la parallélisation automatique, aux modèles de spéculation, à l'ordonnancement et aux mécanismes de décision pour activer la spéculation. Dans cette optique, le projet s'articule autour d'un compilateur source-à- source qui cible le C++, d'un moteur d'exécution avec des capacités de spéculation et d'un éditeur (IDE) pour permettre de faire du développement guidé par le compilateur. Les différents outils issus de ce projet seront libres et auront vocation à être exploités par des utilisateurs. Les retombées seront d'un grand intérêt à la fois pour les développeurs qui souhaitent bénéficier d'une méthode de parallélisation automatique, mais aussi pour les applications haute-performance qui pourront bénéficier des améliorations apportées à la programmation à base de tâches.
Les résultats de ce projet seront validés dans différentes applications telles qu'un logiciel de simulation de complexes protéiniques mais aussi des logiciels libres massivement utilisés. Il s'agira de couvrir un large éventail d’applications pour démontrer le potentiel des méthodes issues de ce projet tout en cherchant à établir leurs limitations afin d'ouvrir de nouvelles perspectives de recherche.

Coordination du projet

Bérenger Bramas (Centre de Recherche Inria Nancy - Grand Est)

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.

Partenaire

Inria Nancy Grand Est Centre de Recherche Inria Nancy - Grand Est

Aide de l'ANR 303 024 euros
Début et durée du projet scientifique : septembre 2021 - 48 Mois

Liens utiles

Explorez notre base de projets financés

 

 

L’ANR met à disposition ses jeux de données sur les projets, cliquez ici pour en savoir plus.

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter