CE46 - Modèles numériques, simulation, applications

Solveurs pour architectures hétérogènes utilisant des supports d'exécution, objectif scalabilité – SOLHARIS

SOLHARIS

SOLvers for Heterogeneous Architectures over Runtime systems, Investigating Scalability

Scalabilité des algorithmes d’algèbre linéaire sur architectures hétérogènes de grande taille

L'arrivée des processeurs multicoeurs au début des années '00 a <br />marqué une rupture nette avec le passé pour la communauté du calcul <br />scientifique qui a été confrontée à la nécessité d'adapter les <br />méthodes et les algorithmes afin de tirer profit du degré de <br />parallélisme croissants. Entre-temps, les accélérateurs et les GPUs <br />on connu un succès de plus en plus important grâce à leur puissance <br />de calcul massive. Récemment, les architectures des CPUs et des GPUs <br />ont commencé à converger. D'un coté, les GPUs sont devenus de plus <br />en plus faciles à utiliser sur une plus large gamme d'applications; <br />de l'autre, les CPUs se sont de plus en plus rapprochés des <br />accélérateurs grâce à l'utilisation intensive du Thread Level <br />Parallelism, Data Parallelism (avec des unités vectorielles SIMD) et <br />de mémoires 3D rapides. Néanmoins, les GPUs ne peuvent pas encore <br />être considères des processeurs généralistes et les CPUs n'ont pas <br />encore atteint le niveau de performance des accélérateurs. Par <br />conséquent, les supercalculateurs modernes sont constitués de noeuds <br />équipés de plusieurs CPUs et plusieurs accélérateurs. Ces noeuds <br />sont assemblés en grand nombre pour atteindre des niveaux de <br />performance extrêmes de manière scalable. Les grandes dimensions et <br />l'hétérogénéité des ces architectures, équipées d'unités de calcul <br />avec différentes vitesses et fonctionnalités, de mémoires avec <br />différentes vitesses et capacités et de réseaux avec différentes <br />bandes passantes et latences, posent des nombreux défis à la <br />communauté du calcul scientifique allant du choix du modelé de <br />programmation parallèle jusqu'à la nécessite de développer de <br />nouveaux algorithmes capables d'exploiter la puissance de ces <br />systèmes.

La méthodologie du projet SOLHARIS se compose de trois volets

Premièrement, il vise à produire des méthodes et algorithmes
scalables pour la résolution de systèmes linéaires creux de grande
taille sur supercalculateurs parallèles, hétérogènes de grande
taille. Ceux ci seront basées sur un parallélisme à base de tâches
et reposeront sur la performance et l'efficacité des moteurs
d'exécution (runtimes) modernes. Ces méthodes seront implémentées au
sein des solveurs PaStiX et qr_mumps basés sur l'utilisation d'un
support d'exécution, évalués sur des problèmes issus d'applications
réelles et fournis par les partenaires industriels et distribués à
la communauté avec une licence de logiciel libre. L'objectif pour
ces méthodes et ces outils logiciels est de pouvoir traiter des
problèmes avec des centaines de millions d'inconnues sur des
milliers de noeuds de calcul.

Deuxièmement, il vise à améliorer et étendre le moteur d'exécution
StarPU avec des fonctionnalités du modelé de programmation et des
méthodes d'exécution qui satisfont les besoins issus de
l'implémentation d'algorithmes complexes, comme les solveurs creux
directs, et de leur scalabilité sur systèmes hétérogènes de grande
taille. Ces améliorations concernent non seulement l'interface de
programmation du runtime, mais aussi sa propre scalabilité qui est
indispensable pour traiter des charges de travail larges et
complexes sur calculateurs de grande taille.

Troisièmement, SOLHARIS développera des méthodes d'ordonnancement
qui visent à atteindre des niveaux de performance et scalabilité
élevés sur architectures hétérogènes de grande taille à la fois pour
les solveurs creux directs et pour les moteurs d'exécution. Ces
méthodes seront conçues avec l'objectif d'utiliser de manière
efficace les ressources hétérogènes disponibles sur les
architectures cible afin d'optimiser non seulement le temps
d'exécution, mais aussi la consommation de mémoire.

Pour l’algèbre linéaire:
- étude des modelés de programmation à base de tâches et des fonctionnalités de mapping, réduction, communications collectives et tâches hiérarchiques pour l’implémentation d'algorithmes d’algèbre linéaire
- développement au sein du logiciel Chameleon d’une approche de résolution de systèmes linéaires hybride ou la matrice du système est partitionnée en blocs de taille homogène, dit “tiles”, chaque bloc pouvant être représente selon le format H-matrix

Pour les supports d’exécution:
- conception et la réalisation d’optimisations opportunistes pour implémenter des communications collectives
- introduction et la gestion de tâches hiérarchiques
- développement de méthodes ordonnancement des tâches avec contraintes et leur utilisation au sein d’un support d’exécution

Pour l'ordonnancement:
- étude et développement de méthodes d'ordonnancement sous contrainte mémoire
- méthodes de placement et à l’ordonnancement de tâches pour les algorithmes d’algèbre linéaire reposant sur approximations de rang faible

Les algorithmes, approches de programmation parallèle, fonctionnalités des support d’exécution et les méthodes étudiées et développées dans cette première partie du projet seront optimisées et étendues aux algorithmes plus complexes d’algèbre linéaire creuse pour les calculateurs a mémoire distribuée.

2 articles dans des revues internationales
7 articles dans les actes de conférences internationales
1 articles de conférence nationale sans actes
2 rapports techniques

L'arrivée des processeurs multicoeurs au début des années '00 a marqué une rupture nette avec le
passé pour la communauté du calcul scientifique qui a été confrontée à la nécessité d'adapter les
méthodes et les algorithmes afin de tirer profit du degré de parallélisme croissant. Entre-temps, les
accélérateurs et les GPUs ont connu un grand succès grâce à leur puissance de calcul massive.
Récemment, les architectures des CPUs et des GPUs ont commencé à converger. D'un coté, les
GPUs sont devenus plus faciles à utiliser; de l'autre, les CPUs se sont rapprochés des accélérateurs
grâce à l'utilisation intensive du Thread Level Parallelism, Data Parallelism et de mémoires 3D.
Néanmoins, les GPUs ne peuvent pas encore être considères des processeurs généralistes et les
CPUs n'ont pas encore atteint la performance des accélérateurs. Par conséquent, les
supercalculateurs modernes sont constitués de noeuds équipés de plusieurs CPUs et plusieurs
accélérateurs. Ces noeuds sont assemblés en grand nombre pour atteindre des niveaux de
performance extrêmes de manière scalable. Les grandes dimensions et l'hétérogénéité des ces
architectures posent des nombreux défis à la communauté du calcul scientifique allant du choix du
modelé de programmation parallèle jusqu'à la nécessite de développer de nouveaux algorithmes
capables d'exploiter leur puissance. Le projet SOLHARIS vise à relever ces défis. Plus précisément,
l'objectif de SOLHARIS est triple: Premièrement, il vise à produire des méthodes et algorithmes
scalables pour la résolution de systèmes linéaires creux de grande taille sur supercalculateurs
parallèles, hétérogènes de grande taille. Ceux ci seront basées sur un parallélisme à base de tâches
et reposeront sur la performance et l'efficacité des moteurs d'exécution (runtimes) modernes. Ces
méthodes seront implémentées au sein des solveurs PaStiX et qr_mumps basés sur l'utilisation d'un
runtime, évalués sur des problèmes issus d'applications réelles et fournis par les partenaires
industriels et distribués à la communauté avec une licence de logiciel libre. L'objectif pour ces
méthodes et ces outils logiciels est de pouvoir traiter des problèmes avec des centaines de millions
d'inconnues sur des milliers de noeuds de calcul. Deuxièmement, il vise à améliorer et étendre le
moteur d'exécution StarPU avec des fonctionnalités du modèle de programmation et des méthodes
d'exécution qui satisfont les besoins issus de l'implémentation d'algorithmes complexes, comme les
solveurs creux directs, et de leur scalabilité sur les architectures cible. Ces améliorations concernent
non seulement l'interface de programmation du runtime, mais aussi sa propre scalabilité qui est
indispensable pour traiter des charges de travail larges et complexes sur calculateurs de grande taille.
Troisièmement, SOLHARIS développera des méthodes d'ordonnancement qui visent à atteindre des
niveaux de performance et scalabilité élevés sur architectures hétérogènes de grande taille à la fois
pour les solveurs creux directs et pour les moteurs d'exécution. Ces méthodes seront conçues avec
l'objectif d'utiliser de manière efficace les ressources hétérogènes disponibles sur les architectures
cible afin d'optimiser non seulement le temps d'exécution, mais aussi la consommation de mémoire.
Bien que ces trois composantes, les solveurs, le runtime et l'ordonnancement, pourraient être
développées indépendamment, le point fort du projet SOLHARIS réside dans la coordination et
l'interaction des travaux sur ces trois axes de recherche. Les résultats de l'activité de recherche
fondamentale aussi bien que du travail technique lié à l'implémentation des algorithmes conçus seront
d'un grand intérêt et utilité non seulement pour la communauté du calcul scientifique, mais aussi pour
les chercheurs d'autre domaines tels que l'analyse de données qui sont récemment devenus
utilisateurs intensifs de méthodes et logiciels d'algèbre linéaire et de calculateurs parallèles de grande
taille.

Coordinateur du projet

Monsieur Alfredo Buttari (Institut de Recherche en Informatique de Toulouse)

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

IRIT Institut de Recherche en Informatique de Toulouse
INRIA Bordeaux Sud-Ouest Centre de Recherche Inria Bordeaux - Sud-Ouest
Airbus Central R&T
CEA Commissariat à l’énergie atomique et aux énergies alternatives

Aide de l'ANR 653 038 euros
Début et durée du projet scientifique : septembre 2019 - 48 Mois

Liens utiles

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