Projet ANR-13-MONU-0007 – SOLHAR : Solveurs pour architectures hétérogènes utilisant des supports d'exécution
Programme : Modèles Numériques (MN) 2013
Année de financement : 2013
Coordinateur du projet : Monsieur Abdou GUERMOUCHE (Inria)
Partenaires : Commissariat à l'énergie atomique et aux énergies alternatives; EADS-IW EUROPEAN AERONAUTIC DEFENCE AND SPACE AGENCY EADS FRANCE; Institut national de recherche en informatique et en automatique; Institut de Recherche en Informatique de Toulouse
Montant : 504015.0 euros
Durée : 48 mois
Résumé : Pendant les cinq dernières années, l'intérêt de la communauté de calcul scientifique pour les accélérateurs matériels a crû rapidement. La raison de cet intérêt tient dans la puissance massive de calcul délivrée par ces appareils. Plusieurs bibliothèques logicielles d'algèbre linéaire dense visant les architectures à base d'accélérateurs ont ainsi été produites. Au contraire, les méthodes de résolution de systèmes linéaires creux, qui ont des schémas d'accès mémoire irréguliers et indirects, sont plus complexe à mettre en oeuvre lorsque les accélérateurs sont considérés.
Ce projet a pour but d'étudier et de mettre au point des algorithmes et des modèles de programmation parallèles pour implanter des méthodes directes de résolution de systèmes linéaires creux sur les plate-formes émergentes équipées d'accélérateurs. Le but à long terme de ce projet est de développer une solution logicielle fournissant un solveur basé sur les méthodes directes pour résoudre des systèmes creux d'équations linéaires. À ce jour, les approches proposées pour atteindre cet objectif sont essentiellement basées sur un simple modèle de délégation de certaines tâches de calcul aux accélérateurs et requièrent une optimisation manuelle du code. Au contraire, l'approche proposée s'articule autour de trois axes de recherche:
- algèbre linéaire: les algorithmes doivent être adaptés voire reconçus dans le but de présenter des propriétés qui rendent leur implémentation et leur exécution efficaces et fiables sur des plate-formes hétérogènes. Ceci peut nécessiter le développement de nouvelles méthodes pour définir les schémas d'accès aux données adaptés aux architectures visées ainsi que des techniques pour garantir un comportement fiable et robuste fournissant des solutions précises. De sucroît, il sera nécessaire de mettre au point de nouvelles méthodes efficaces sur accélérateurs pour les tâches spécifiques d'algèbres linéaire dense utilisées dans le contexte des solveurs directs creux;
- moteurs d'exécutions: les outils tels que le moteur d'exécution StarPU ont démontré leur grande efficacité et robustesse pour l'implantation d'algorithmes d'algèbre linéaire dense. Les algorithmes d'algèbre linéaire creuse, cependant, sont caractérisés par des schémas d'accès aux données compliqués, des tâches de calcul de granularité extrêmement variable et des dépendances complexes. Ainsi, un effort de recherche conséquent est nécessaire pour mettre au point et implanter des fonctionnalités ainsi que des interfaces en adéquation avec les besoins formalisés par l'activité de recherche sur les méthodes directes;
- ordonnancement: exécuter une charge de travail hétérogène avec des dépendances complexes sur une architecture tout aussi complexe et hétérogène est un défi extrêmement stimulant qui requiert le développement d'algorithmes d'ordonnancement novateurs effectifs. Ces algorithmes devront potentiellement composer avec une vision partielle du graphe de tâche et des objectifs parfois contradictoires tels que la minimisation du recouvrement, la maximisation de la locacalité spatiale, ou, lorsque cela s'applique, la minimisation de la consommation mémoire.
Étant donnée la large disponibilité des plate-formes de calculs équipées avec des accélérateurs et la robustesse numérique des méthodes directes de résolution de systèmes linéaires creux, il est raisonnable d'attendre que les résultats de ce projet auront un impact considérable pour le calcul scientifique académique et industriel. Il fournira de plus une contribution conséquente aux communautés de science calculatoire et de calcul haute-performance, puisqu'il
constituera un exemple sans précédent de code numérique complexe dont la parallélisation repose entièrement sur l'utilisation d'un moteur d'exécution, étant ainsi extrêmement portable, maintenable et évolutif, permettant ainsi de mieux appréhender l'évolution des futures architectures de calcul.