Les modèles de programmation se préparent pour l'exa-informatique
Imaginez 100 millions de processus tournant en même temps sur un même ordinateur, ou 50 millions d'ordinateurs de bureau reliés par un réseau extrêmement rapide. C'est l'exa-informatique. Les ordinateurs actuels peuvent être programmés via des langages comme Java ou Python, mais il faut un logiciel spécialisé pour échanger des données entre ces processus ou ces ordinateurs de bureau. C'est à ce niveau qu'interviennent le transfert de messages et l'espace d'adressage global partitionné. «Nous estimons que ces deux concepts logiciels seront la clé pour échanger les données, car ils fonctionnent déjà très bien sur les plus grands superordinateurs», déclare Stefano Markidis, directeur du projet EPIGRAM et professeur assistant en informatique haute performance à l'Institut royal de technologie de Suède (KTH). Cependant, l'application de ces modèles de programmation à des exa-ordinateurs est une toute autre histoire. La quantité de mémoire requise par le processus de stockage serait proprement immense, au point qu'elle poserait certainement un problème grave. En outre, le fonctionnement collectif ou synchronisé de ces processus nécessiterait des algorithmes bien plus sophistiqués que ceux dont on dispose aujourd'hui. Et un seul système associant les modèles actuels de programmation serait incapable de fonctionner efficacement. Les chercheurs du projet EPIGRAM (Exascale Programming Models) se sont attaqués à ces deux problèmes majeurs, le parallélisme extrême et l'interopérabilité. Ils se sont intéressés au transfert de messages et à l'espace d'adressage global partitionné (PGAS), notamment pour améliorer deux des systèmes de programmation associés, les MPI et GPI. «Dans le domaine scientifique, on rencontre souvent des points de synchronisation où l'ordinateur le plus rapide doit attendre le plus lent. C'est supportable dans un réseau qui ne compte que quelques ordinateurs, mais si l'on envisage d'en relier 50 millions, il faut s'intéresser aux algorithmes de synchronisation. C'est ce que nous avons fait dans le cadre d'EPIGRAM. Nous avons amélioré les performances des communications pour un très grand nombre de processus, en réduisant la mémoire utilisée, en améliorant le fonctionnement collectif, et en utilisant de nouveaux modèles d'informatique», explique M. Markidis. Les chercheurs ont aussi amélioré l'interopérabilité des systèmes MPI et GPI, en les intégrant dans une implémentation de MPI nommée EMPI4Re. De la météo de l'espace à la dynamique des fluides Une fois développés, les concepts d'EPIGRAM devront être testés dans le cadre d'applications à grande échelle, avec un potentiel d'exa-informatique. Le consortium a choisi la météo de l'espace et la dynamique des fluides, développant iPIC3D (un programme Particle-in-Cell pour simuler la physique de l'espace) et un noyau Nek5000 (un programme de calculs de dynamique des fluides). Ces deux programmes peuvent gérer jusqu'à 1 million de cœurs. Ils s'appuient respectivement sur le C/C++ et le Fortran, les deux langages de programmation les plus utilisés en informatique haute performance (HPC). «Nous sommes très satisfaits de nos applications pilotes», déclare M. Markidis. «iPIC3D s'est avéré 3 fois plus performant que l'implémentation précédente, et nous avons développé un nouveau noyau de communication Nek5000, simplifié et utilisable par d'autres projets.» Deux projets Horizon 2020 en informatique haute performance utilisent déjà les résultats d'EPIGRAM. Il s'agit d'INTERTWINE, qui s'appuie sur le travail d'interopérabilité d'EPIGRAM et l'application pilote iPIC3D, et d'EXAFLOW, qui utilise Nek5000 et a adopté le nouveau noyau de communication conçu par EPIGRAM pour Nek5000. «Nous aimerions avoir bientôt un projet de suivi direct», déclare M. Markidis. «Mais nous voyons déjà comment notre travail sur le MPI a un impact sur les développeurs d'application HPC. Nous avons présenté nos concepts à des développeurs de divers domaines, et nous escomptons que certains de ces concepts, comme les communications isomorphes collectives, seront choisis et adoptés dans un futur proche.» Les travaux du projet en matière de standardisation ont été essentiels à l'adoption de nouvelles fonctions MPI et GPI, par des développeurs d'applications pour superordinateurs. «Les développeurs sont assurés que les nouvelles fonctions seront implémentées et ne seront pas modifiées», explique M. Markidis. Les concepts d'EPIGRAM ont été testés dans le cadre d'un micro-benchmark: ils accélèrent l'exécution de diverses fonctions MPI et GPI, et réduisent considérablement la quantité de mémoire requise par ces fonctions. Le projet a mis en évidence les limites de certains concepts de MPI, et développé des connexions dynamiques évolutives, avec un fort impact sur le travail des implémenteurs de systèmes GPI-2.
Mots‑clés
EPIGRAM, exa-informatique, MPI, GPI, modèle de programmation, péta-informatique, KTH, PGAS, météo de l'espace, dynamique des fluides