European Commission logo
français français
CORDIS - Résultats de la recherche de l’UE
CORDIS

An Exascale Programming, Multi-objective Optimisation and Resilience Management Environment Based on Nested Recursive Parallelism

Article Category

Article available in the following languages:

Une nouvelle chaîne d’outils HPC offre un compromis idéal entre performance et utilisation rationnelle des ressources

Le projet AllScale offre aux programmeurs HPC une chaîne d’outils pour améliorer la productivité, la portabilité et l’efficacité du développement d’applications parallèles. Des prototypes ont déjà été appliqués avec succès sur des simulations de météorologie spatiale, de risques environnementaux et de mécanique des fluides.

Économie numérique icon Économie numérique

Le marché du calcul haute performance (HPC) ne cesse de se développer. Et cette nouvelle ère informatique ne concerne pas que le matériel: pour que le HPC réponde aux attentes du secteur, il faudra exploiter son potentiel en matière de calcul parallèle dans le cadre d’une nouvelle génération d’applications parallèles. Ces dernières devront trouver le juste équilibre entre de meilleures performances et une réduction de la consommation d’énergie. Il ne s’agit pas d’une tâche aisée, surtout si l’on tient compte du fait que les derniers 5 ou 10 % d’amélioration de performance dont les programmeurs ont besoin pour leur application sont susceptibles d’augmenter la consommation énergétique d’au moins 30 %. En HPC, l’optimisation consiste essentiellement à faire des compromis entre ces deux objectifs. Le projet AllScale fournit le chaînon manquant. Sa chaîne d’outils devrait stimuler la productivité, la portabilité et l’efficacité en termes de temps d’exécution, tout en améliorant l’efficacité de l’utilisation des ressources des systèmes parallèles, des petites échelles aux plus extrêmes. «Notre environnement de programmation est basé sur un standard largement utilisé (C++) qui permet une expression du parallélisme à un niveau élevé d’abstraction. Plutôt que de coupler différents paradigmes de programmation, ce qui est propice à la perte d’informations et risque donc de réduire les performances, nous exploitons les parallélismes récursifs pour réduire la synchronisation globale. Cela permet d’effectuer un très grand nombre de tâches parallèles pour les applications qui doivent occuper des architectures parallèles à très grande échelle sur tous les processeurs», explique le professeur Thomas Fahringer, coordinateur du projet pour le compte de l’Université d’Innsbruck. L’environnement AllScale est capable de traiter les défaillances matérielles et son système d’exécution sous-jacent peut être optimisé pour plusieurs objectifs, dont le temps d’exécution, l’utilisation rationnelle des ressources et la consommation d’énergie. Contrairement aux approches conventionnelles de programmation parallèle, qui associent des paradigmes de programmation existants comme MPI et OpenMP, AllScale met l’accent sur un environnement de développement dit «single-source-to-anyscale» (source unique à toutes les échelles). Il fournit aux programmeurs une API unifiée pour exprimer le parallélisme à un niveau d’abstraction élevé à l’aide de modèles C++ standard. Une autre amélioration majeure réside dans l’utilisation du parallélisme récursif imbriqué pour réduire les communications globales et la synchronisation, cette dernière causant généralement de graves problèmes d’évolutivité pour les systèmes HPC à grande échelle. Enfin, alors que l’optimisation des applications et l’ajustement automatique des programmes parallèles reposaient presque exclusivement sur la réduction des temps d’exécution, AllScale se concentre sur les besoins des architectures modernes en matière de gestion intelligente des budgets énergétiques et des enveloppes de puissance. «AllScale offre un composant d’ordonnancement et d’optimisation multi-objectifs capable d’orienter l’exécution vers des compromis d’optimisation dynamiques contrôlés par l’utilisateur, entre le temps d’exécution, la consommation d’énergie et l’utilisation rationnelle des ressources», explique le professeur Fahringer. AllScale a fait l’objet de nombreux tests et d’applications pilotes dans les domaines de la météorologie spatiale, des risques environnementaux (comme la marée noire causée par Deepwater Horizon) et de la dynamique des fluides. Ces trois applications sont connues pour mettre à l’épreuve les systèmes HPC, à la fois en termes de complexité de calcul et de productivité. «Dans la simulation de la météorologie spatiale, AllScale a obtenu des résultats supérieurs pour la formation du dipôle magnétique de la Terre sur des systèmes HPC à mémoire partagée et distribuée avec un grand nombre de noyaux», déclare le professeur Fahringer. «Pour le code de mécanique des fluides, nous sommes parvenus à réduire considérablement le temps d’exécution en série, avec une évolutivité de la mémoire partagée semblable à l’implémentation MPI. Enfin, pour l’application relative aux risques environnementaux, nous avons prouvé qu’AllScale était capable de procéder à une mise à l’échelle pour les systèmes à l’échelle peta. Dans ces trois applications, nous avons pu offrir une efficacité bien supérieure en termes de délai de résolution, et ainsi améliorer la productivité.» Bien que le projet soit maintenant terminé, toutes les applications pilotes continueront à utiliser la technologie AllScale pour améliorer encore les performances. La chaîne d’outils AllScale a été publiée avec une licence open source et plusieurs groupes continuent à étendre et améliorer le logiciel dans le cadre de nouveaux projets et collaborations en Europe.

Mots‑clés

AllScale, HPC, calcul haute performance, logiciels, applications, efficacité, parallélisme, programmation parallèle, temps d’exécution, météo spatiale, eaux profondes, mécanique des fluides

Découvrir d’autres articles du même domaine d’application