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 et Intel. Ses équipes sont actives dans les réseaux de recherche orientés vers le parallélisme massif. ECR fait partie des Intel Data Center Pathfinding Europe labs, installés en France, Belgique, Espagne, Allemagne, Suisse et Grande Bretagne, qui hébergent des projets collaboratifs sur les architectures innovantes pour le HPC ou pour l’analyse massive de données.

 


Stand ECR sur le Forum Teratec 2016

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

La capside du virus mosaic panicum virus capsid (environ 0.5 Million d’atomes) dans une solution aqueuse (2 Millions de particules gros grains de solvant).

 

 

 

 

©EXA2CT - New proto application

Décembre 2016 : - 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 toutefois 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 Data Science ou HPC afin de lever des verrous de passage à l’échelle. Cette expertise à la croisée entre les outils 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.

Les membres du laboratoire ECR ont présenté leurs travaux  lors des grands évènements qui ont marqué 2016 : le Forum Teratec 2016 avec son propre stand d’exposition, la conférence ISC 16 à Francfort, notamment sur le stand Intel et à SuperComputing 2016 à Salt Lake City.

Outils et méthodologies

MAQUAO

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 pour l’aider à sélectionner les optimisations les plus profitables.

En 2016, les travaux sur MAQAO ont porté tout d’abord sur l’enrichissement des fonctionnalités d’analyse de comportement. Ainsi  au niveau outils d’analyse de base, ont été ajoutés tout d’abord le module Microbench qui « calibre » rapidement les performances d’une hiérarchie mémoire et ainsi aide à la compréhension de son comportement et ensuite le module UFS qui via une simulation du comportement interne du cœur analyse l’impact de la latence et de la bande passante des accès mémoire sur la performance.
Au niveau synthèse des diagnostics, MAQAO s’est enrichi du module ONE VIEW qui permet d’orchestrer l’exécution des autres modules de MAQAO  - profilage de temps et de valeurs (LProf et VProf), analyse décrémentale (DECAN), analyse statique (CQA)- en fonction de la profondeur d’investigation désirée et d’agréger les résultats en un  rapport synthétique au format Excel.

Enfin, les composants majeurs de MAQAO ont également été mis à jour pour supporter les spécificités de l’architecture Knights Landing et testés sur des applications partenaires.
Par ailleurs, les modules CQA et Microbench de MAQAO sont en cours d’intégration dans l’outil Intel® Advisor pour offrir une fonctionnalité d’analyse prédictive de l’impact sur les performances des différents niveaux de cache disponible sur la machine cible.

L'équipe MAQAO à l’UVSQ est un partenaire actif de la communauté VI-HPS depuis sa création en 2011, ainsi que des développeurs d'autres outils tels que TAU, ScoreP, Scalasca, Vampir. En 2016, l'équipe MAQAO a participé à 2 séminaires majeurs de VI-HPS à Garching et Lawrence Livermore, offrant à des dizaines de développeurs de code HPC la chance d'être formés et pratiquer lors des sessions sur MAQAO. Le retour d’expérience des auditeurs ont donné d'excellentes appréciations sur la pertinence et la qualité des diagnostics fournis par l’outil.

CERE

En complément de MAQAO, nous avons finalisé en 2016 CERE (Codelet Extractor and REplayer, github.com/benchmark-subsetting/cere) qui permet de décomposer automatiquement un programme en un ensemble de noyaux de calcul élémentaires appelés codelets. CERE permet de rejouer chaque codelet de manière isolée (sans réexécuter toute l’application) pour différents jeux de données d'entrée et en faisant varier différents paramètres (options de compilation, architecture cible, degré de parallélisme, etc.) La décomposition en codelets permet d'accélérer l'optimisation et la mesure de performance dans les applications HPC ou embarqués.

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 cluster de machine multi/many core. MPC fournit de manière unifié les modèles de programmation et les implémentations MPI et OpenMP classiquement utilisées par les applications parallèles. MPC propose aussi un écosystème HPC avec un allocateur mémoire multithread/NUMA, un support des threads utilisateur (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.

Les travaux réalisés dans MPC donnent lieu à des collaborations industrielles, entre autre,  avec Intel qui intègre les extensions spécifiques MPC dans son compilateur (privatisation automatique) ou avec Allinea DDT qui supporte  nativement les threads utilisateur MPC.

MPC est porté sur les dernières générations de processeurs Intel (Haswell, KNL) et supporte les architectures réseau InfiniBand (EDR, …) et Portals (BXI).

L’équipe MPC au CEA est un partenaire actif de la communauté MPI depuis 2 ans. En 2016, l’équipe a participé à deux sessions plénières du MPIForum (comité de standardisation MPI) et est le point de contact de référence pour les aspects thread-based MPI.

Applications HPC

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.  Le portefeuille d’applications aborde les thèmes de la  combustion, turbulence, matériaux et astrophysique. 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 accompagner les travaux de modernisation de codes pour aborder les défis du parallélisme massif.

AbInit

En tant que membre actif de la communauté AbInit, le CEA a initié avec l'équipe d'Intel des travaux fondamentaux sur ce code, principalement pour explorer la possibilité de développer une couche d'abstraction pour faciliter le travail des scientifiques pour des architectures spécifiques avec le plus d'efficacité.  

POLARIS MD

Les développements réalisés en 2016 sur le code POLARIS MD ont permis d’effectuer la première simulation (sur 24h) d’une capside de virus (assemblage de protéines encapsulant le génome d’un virus) en solution aqueuse. Cette simulation a été rendue possible par l’utilisation d’une approche gros grains pour la modélisation du solvant, de méthodes sophistiquées  pour prendre en compte les phénomènes de polarisation au niveau des interactions inter atomiques et d’une méthode « Fast Multipole Method » apte à tirer profit efficacement d’architecture de calcul parallèle. Le système simulé comporte 0,5 million d’atomes (capside) et 2 millions de particules gros grains pour le solvant (eau). La méthode FMM utilisée était paramétrée en mode haute précision (erreur sur les forces inférieure à 1%) et les équations des mouvements atomiques  ont été résolues à l’échelle de la femto-seconde. La simulation a été réalisée sur 1792 cœurs de la machine COBALT du CCRT. La « vitesse » de simulation était de l’ordre de 0,75 ns par jour. Le code POLARIS (MD) est le seul code permettant d’effectuer des simulations au niveau microscopique de haute précision (notamment pour le traitement des interactions inter atomiques) et ce pour des systèmes moléculaires de plusieurs millions d’atomes avec des « vitesses » de l’ordre de la nanoseconde par jour. Sur ce dernier point (« vitesse »), de nombreuses améliorations sont encore possibles permettant d’envisager des « vitesses » de plusieurs nanosecondes par jour. Enfin, son schéma hybride de parallélisation (OPENMP/MPI) le rend particulièrement bien adapté à la nouvelle génération de systèmes « manycore ».

Depuis 2016, le CEA et INTEL travaillent à un projet commun visant à démontrer l'utilisation de l'Analyse de données et de l'apprentissage automatique pour la détection des défaillances et la maintenance préventive dans les data centres spécialisés HPC.

Participation programmes cadres Européens

  • INTEL et l’UVSQ,  sont partenaires du projet EXA2CT,  qui s’est terminé en 2016.
     www.exa2ct.eu

  • Depuis 2015, INTEL est membre du consortium READEX piloté par TU Dresden. Le but du projet READEX est d'améliorer l'efficacité énergétique des applications HPC à l'aide de l'autotuning dynamique, permettant aux utilisateurs d'exploiter automatiquement le comportement dynamique de leurs applications en ajustant le système aux besoins réels en ressources.
    www.readex.eu

 

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 http://www.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