Accueil > Technopole TERATEC >Lab Exascale Computing Research

 

Laboratoire Exascale Computing Research

 

Le laboratoire Exascale Computing Research (ECR) résulte d’une collaboration entre le CEA, l’UVSQ (Université de Versailles Saint-Quentin-en-Yvelines) et Intel. Ses équipes sont actives dans les réseaux de recherche orientés vers le parallélisme massif. L’équipe pluridisciplinaire travaille sur le site du Campus Teratec et s’appuie sur un cluster doté des architectures Intel les plus récentes. L’équipe ECR contribue régulièrement à l’organisation de séminaires, workshops et écoles d’été afin de diffuser le plus largement possible les méthodes et le savoir-faire développés en son sein. De plus, les membres de ECR sont actifs dans les projets de recherche Européens?: en 2018 notamment, l’UVSQ a rejoint le centre d’excellence POP2(1), alors que Intel participait à la phase finale du projet READEX(2) piloté par Technische Universität Dresden.

Contacts ECR Lab
William JALBY
UVSQ
Email
Marie-Christine SAWLEY
INTEL
Email
 
 
Mars 2019 : Recherche & développement en méthodologies et applications logicielles pour Exascale

Un des grands défis des prochaines années pour préparer le passage à des systèmes présentant des millions de cœurs de calcul reste l’optimisation de l’interaction entre les différentes couches logicielles (en particulier applicatives) et le matériel, ce qui exige de travailler sur plusieurs fronts : d’une part, en développant des outils sophistiqués pour analyser le comportement des différentes unités du cœur de calcul et du réseau de communication et d’autre part, en travaillant directement au niveau de l’application Data Science ou HPC afin de lever des verrous de passage à l’échelle. Cette expertise à la croisée entre les outils d’analyse de codes et l’orientation pour la réécriture de codes pour bénéficier au mieux des nouvelles architectures se trouve au cœur de la collaboration ECR.

Activités de recherche et développement

MAQAO

MAQAO (www.maqao.org) est un logiciel modulaire d’analyse de performances pour les applications HPC. Il permet d’effectuer des « diagnostics » très précis des différents problèmes de performance (vectorisation, cache, parallélisme) au sein d’une application et il fournit à l’utilisateur une synthèse des différentes analyses (via le module ONE VIEW) pour l’aider à sélectionner les optimisations les plus profitables.

En 2018, les travaux sur MAQAO ont porté en premier lieu, sur l’enrichissement des fonctionnalités : ainsi nous avons ajouté un module (OB1) d’analyse de l’efficacité des boucles en parallèle, une meilleure prise en compte du parallélisme au sein de nos outils de profilage (notamment en termes d’extensibilité) et une analyse plus poussée de l’impact des transformations (vectorisation, blocking) sur la performance globale. Ensuite, nous avons fait un gros effort pour assurer l’interopérabilité de MAQAO avec différents outils de référence : runtime « MPC », installeur de packages « SPACK » et visualiseur « Cube ». Nous avons aussi mené des campagnes systématiques de portage sur différents supercalculateurs (INTI, TGCC, CCRT, Mare Nostrum, Romeo, Archer, SuperMUC, etc…) ce qui nous a permis d’augmenter la robustesse et la fiabilité de nos outils. De plus, nous avons validé sur un plus grand nombre d’applications (Yales2, AVBP, POLARIS MD) les résultats prometteurs obtenus en couplant nos outils d’analyse avec nos outils de restructuration de code (ASSIST) : nous améliorons ainsi de 5 à 10 % les résultats obtenus par des techniques de profilage classique (PGO : Profile Guided Optimization). Enfin, nous avons démontré la capacité de nos outils à analyser des codes non HPC : réseaux de neurones, navigateur Chrome.

Fin 2018, l’UVSQ a rejoint le projet Européen de Centre d’Excellence POP2 (Performance Optimization and Productivity 2 : https://pop-coe.eu). Ce projet vise à offrir aux utilisateurs de systèmes HPC tout d’abord un audit détaillé des performances de leurs applications et ensuite différentes solutions pour remédier aux limitations détectées et donc améliorer le rendement de leurs systèmes. Ce projet nous permettra de tester et de valoriser intensivement nos outils.

L’équipe MAQAO à l’ECR est un partenaire actif de la communauté VI-HPS (www.vi-hps.org) qui regroupe les principaux développeurs d’outils Open Source d’analyse de performance (TAU, ScoreP, Scalasca, Vampir,….). En 2018, l’équipe MAQAO a participé à trois « VI HPS Tuning Workshop » à Garching, Londres et Reims, offrant à des dizaines de développeurs de code HPC l’opportunité d’être formés à l’utilisation de MAQAO et de le tester directement sur leurs applications. Dans ces trois sessions, les retours d’expérience des participants ont donné d’excellentes appréciations sur la pertinence et la qualité des diagnostics fournis par l’outil et ont classé MAQAO dans le trio de tête des outils à utiliser.

VERIFICARLO

La simulation numérique à grande échelle pose très souvent des problèmes de compromis délicats entre performance et précision numérique. Pour permettre une exploration fine et précise de ces compromis, Verificarlo (http://github.com/verificarlo/verificarlo) permet de fournir une estimation de la précision numérique au sein de grands codes applicatifs. Verificarlo s’appuie principalement sur l’arithmétique de Monte Carlo où les opérateurs de calcul sont bruités pour modéliser les erreurs d’arrondi ou d’annulation, de manière stochastique. L’outil instrumente le code à la compilation, à travers une passe LLVM spécifique, et ceci sans avoir besoin de modifier le code source du programme. Cette facilité de mise en œuvre a permis d’analyser avec Verificarlo plusieurs codes industriels. Verificarlo a été étendu avec des fonctionnalités de traçage qui permettent d’analyser les problèmes de pertes de précision tout au long de l’exécution et ce sur des codes complexes comme logiciel ABINIT. En 2018, ont démarré les travaux pour étendre Verificarlo afin de pouvoir étudier l’optimisation de programmes grâce l’utilisation de techniques de précision mixte, en particulier dans le code Yales2. Cette année a aussi été l’occasion de largement diffuser notre outil à travers deux séminaires, une école d’été, une formation VI-HPS, une formation CCRT, une formation IXPUG, et enfin une publication disponible sur arxiv et soumise pour publication en journal.

Modèles de programmation et d’exécution

L’optimisation des supports exécutifs en contexte calcul hautes performances est critique car ils assurent le lien entre le matériel et les applications. Le support exécutif MPC (http://mpc.hpcframework.com), initialement développé au CEA, a été construit avec pour objectif de faciliter le développement et l’optimisation d’applications parallèles sur clusters de machine multi/many cœurs. MPC fournit de manière unifiée les modèles de programmation et les implémentations MPI et OpenMP classiquement utilisées par les applications parallèles en production. De plus, MPC propose un écosystème HPC avec un allocateur mémoire multithread/NUMA, un support des threads utilisateurs (debugger, compilateur GCC étendu, …), des extensions compilateur pour le partage de données… MPC propose aussi une intégration avec des modèles de programmation plus récents comme Intel TBB.

Durant l’année 2018, l’équipe Runtime ECR a continué ses développements dans la plateforme parallèle Open Source MPC selon plusieurs axes (court, moyen et long terme) : la correction de bugs, l’ajout de fonctionnalités des standards actuels (MPI 3.1 et OpenMP 5.0), le prototypage de futures fonctionnalités (MPI 4.0) et le développement d’extensions propres. Ces travaux ont contribué à la sortie de la version 3.3 comportant de nouvelles fonctionnalités (intégration de GCC version 7.2.0, support du placement des threads OpenMP à travers la notion de places, gestion des protections/reprises en MPI, optimisation des algorithmes de communications, support avancé du réseau rapide Atos BXI, …). De plus, le reste de l’année a permis de se focaliser sur différents aspects :

  • MPI (support avancé des threads, ajout de la notion de hints proposés dans le brouillon de la nouvelle norme MPI 4.0 sortie en novembre 2018),

  • OpenMP (compatibilité avec l’écosystème Intel pour l’utilisation des tâches de calcul avec dépendances de données),

  • Réseau haute performance (premier support du réseau Intel Omnipath)

  • Extensions (prototype de support du partage de travail intra-nœud en MPI).

 

September 8, 2014 - End of June, the Exascale Computing Research Lab moved its operation from the University of Versailles to the TERATEC Campus in Bruyeres le Chatel

Next to the TGCC, the TERATEC Campus houses research laboratories both public and private laboratories from major players in high performance simulation and computing.  The campus is presently hosting the Extreme computing Laboratory from CEA/Bull, one incubator and the MHIPS Master program.

Décembre 2013 - Recherche & développement en méthodologies et applications logicielles pour Exascale

Le laboratoire Exascale Computing Research (ECR) a été fondé en 2010 par le CEA, Genci, Intel et l’UVSQ. Il fait partie des réseaux de recherche orientés vers l’exascale, en particulier celui constitué par les Intel EMEA HPC Exascale labs, installés en France, Belgique, Espagne et en Allemagne qui repoussent les limites de la problématique exascale. Un des grands défis des prochaines années pour préparer le passage à des systèmes présentant des millions de cœurs de calcul reste l’optimisation de l’interaction entre les couches applicative et les couches machine, ce qui exige de travailler sur plusieurs fronts : d’une part en développant des outils sophistiqués pour analyser ce qui se passe au niveau du cœur de calcul et au niveau du réseau de communication ; d’autre part en travaillant sur des applications HPC afin de lever des verrous de passage a l’échelle. Le laboratoire Exascale Computing Research traite ces deux aspects.

MAQAO, et sa suite d’outils associés, est un logiciel d’analyse de performance pour les applications HPC sur architecture parallèle, co-développé par le laboratoire Exascale et les Universités de Versailles St Quentin et de Bordeaux. En 2013, la version complète de MAQAO pour le Xeon Phi a été publiée en Open Source1, et plusieurs tutoriels sont régulièrement organisés pour la communauté HPC, notamment sous l’égide de VI-HPS qui a d’ores et déjà annoncé le prochain workshop5. Un pas significatif a également été franchi avec la publication en open source de CTI, Codelet Tuning Infrastructure2. CTI permet de constituer un répertoire de codelets -quelques lignes de code représentant les parties les plus critiques- extraites de l’application complète avec leur environnement runtime, qui sont ré-exécutées en vue de procéder à l’exploration d’options de compilation ou de différentes architectures. Ces travaux ont également fait l’objet de nombreuses communications et tutoriels, notamment lors de Teratec 2013.

Au sein du laboratoire, le groupe Modèles de programmation et d’exécution travaille à une meilleure efficacité du transport des données et des messages entre les nœuds de calcul. En 2012 et 2013, il a développé une méthode originale permettant de réduire les couts d’attente de transport des messages sur le réseau inter-nœuds pour les codes MPI. Cette méthode basée sur le Collaborative Polling permet d’intercaler de manière auto-adaptative les phases de calcul et de communication sans rajouter d’overhead inhérent à l’utilisation de threads pour la communication. La méthode en question ainsi que les accroissements d’efficacité obtenus pour une implémentation spécifique Infiniband sur plusieurs codes significatifs ont fait l’objet d’un article scientifique3.

Le travail d’analyse et d’optimisation des applications HPC venant de l’industrie ou de partenaires académiques a été mené de front, souvent main dans la main, avec le développement des outils. Fondé sur une approche collaborative forte entre le développeur et le laboratoire, l’objectif est de mettre les expertises en commun pour optimiser la performance et préparer le passage à l’échelle exascale de ces applications. En 2013, les résultats les plus marquants pour le code de modélisation moléculaire du CEA DSV dénommé POLARIS(MD) ont été présentés lors de la conférence EASC 20136 à Edimbourg en mai, ainsi que les travaux sur les noyaux sismiques stencils lors du workshop Rice Oil&Gas HPC de février 2013. Le portefeuille d’applications s’enrichit en abordant les thèmes de la combustion, turbulence, simulation surface libre et simulation pour la fusion thermonucléaire.

Le lab a été représenté lors des grands évènements qui ont marqué 2013. Sur les stands Intel de Leipzig (ISC13) et de Denver (SC13) ; au Forum Teratec, avec un stand et l’organisation d’un atelier sur les aspects HPC et efficacité énergétique qui a réuni plusieurs leaders du domaine7 ; lors de ERIC2013, la conférence Européenne de recherche Intel à Nice en Octobre avec une session entièrement dédiée aux applications ciblant l’Exascale, dont certaines sont au cœur du path finding pour l’Exascale sur lequel le laboratoire travaille.

Il convient de relever également le demarrage d’un projet européen, EXA2CT4, avec les participations de l’UVSQ, de l’INRIA et d’Intel. La thématique du projet est centrée sur les algorithmes et modèles de programmation pour exascale. Ce projet, financé dans le cadre du programme cadre FP7 et coordonné par l’IMEC en Belgique, regroupe 10 partenaires. L’objectif est de constituer une librairie de proto-applications qui doivent intégrer les développements en algorithmique et modèles de programmation et démontrer le passage à l’échelle sur des machines T0 de PRACE telles que déployées en 2016 pour des codes en cours de sélection, dont certains à fort impact industriel.

Notons enfin que le laboratoire transfère ses équipes au technopole Teratec dans le courant du mois de janvier 2014.

References :
1 http://maqao.bordeaux.inria.fr/index.php?option=com_content&view=article&id=2
2 http://code.google.com/p/codelet-tuning-infrastructure/
3 http://rd.springer.com/article/10.1007%2Fs00607-013-0327-z
4 www.exa2ct.eu
5 http://www.vi-hps.org/training/tws/tw14.html
6 http://www.easc2013.org.uk/abstracts#talk5_8
7 https://teratec.eu/gb/forum/atelier_4.html

Janvier 2013 - Un Laboratoire dédié aux applications logicielles pour Exascale, et ouvert aux partenariats extérieurs

Le laboratoire Exascale Computing Research (ECR) est maintenant complètement opérationnel avec une trentaine de collaborateurs qui travaillent sur une sélection de challenges logiciels représentés par l’exascale. Fruit d’une collaboration entre le CEA, GENCI, Intel et l’UVSQ, ce laboratoire travaille sur deux axes de recherche :

Tout d’abord, sur les applications existantes, venant de l’industrie ou de partenaires académiques, en vue de leur passage vers l’Exascale. Fondé sur une approche collaborative forte ente le développeur et le laboratoire, l’objectif est de mettre leurs expertises en commun pour optimiser la performance et le passage à l’échelle exascale de ces applications. Des coopérations sont déjà actives dans le domaine de l’énergie, des sciences de la vie, de la santé, à la fois sur des codes propriétaires ou Open Source, et s’étendra rapidement à de nouveaux secteurs.

Ensuite,  développer et proposer un environnement d’outils et méthodes qui permettent un profilage du couple (application, machine) en vue de l’Exascale, basé sur une méthodologie propre, validée à l’aide des applications les plus avancées scientifiquement et les plus exigeantes techniquement.

La mission du laboratoire est donc de conduire cette recherche dans les deux axes  mentionnés ci-dessus, en coopération étroite avec des chercheurs Européens, sur des applications qui sont critiques pour les industriels et les universitaires européens, avec un focus particulier sur la performance globale de l’application. Cette performance peut prendre de nombreux aspects en fonction du défi à relever : accroissement de la taille du problème traité, de sa précision  ou de sa résolution, réduction du temps de traitement global ou minimisation de la consommation énergétique.

Le laboratoire a pour vocation d’être un contributeur significatif au niveau Européen et un acteur très actif de la communauté  Exascale, ouvert sur la formation, sur les projets de recherche nationaux et européens, et souhaite fournir à la communauté des développeurs d’application l’interface (une combinaison d’outils, de savoir faire et d’expertise) dont elle aura besoin pour passer à l’exascale.  Cet objectif passe par la constitution d’un réseau de scientifiques de très haut niveau pour comprendre ensemble comment utiliser au mieux l’exascale.

Le laboratoire fait partie de différents réseaux de recherche orienté vers l’exascale, en particulier celui constitué par les Intel EMEA HPC Exascale labs, installés en France, en Belgique et en Allemagne ; qui travaillent sur des aspects  complémentaires de la problématique exascale.

L’équipe de management Recherche est animée par Prof. William Jalby, UVSQ, Chief Technologist, Bettina Krammer, UVSQ et Marie-Christine Sawley, Intel Corp. http://www.exascale-computing.eu/

Contact : info@exascale-computing.eu
Web : www.exascale-computing.eu
Adresse : 45 boulevard de Etats Unis, 78 000 Versailles, France


© TERATEC - Tous droits réservés - Mentions légales