Saison 2 : Sept. 2015 – Juil. 2016


10 Septembre 2015 – Séminaire n°27 – Improving the Hybrid model MPI+Threads through Applications, Runtimes and Performance tools

Présentation par: Aurèle Mahéo, doctorant au Laboratoire Exascale Computing Research.
45 min.

Résumé

Présentation des travaux de thèse.

Afin de répondre aux besoins de plus en plus importants en puissance de calcul de la part des applications numériques, les supercalculateurs ont dû évoluer, intégrant notamment des architectures dites NUMA (Non Uniform Memory Access), et sont de plus en plus compliqués à programmer. Une autre contrainte, la diminution de la mémoire disponible par coeur de calcul, doit être soulignée.

C’est ainsi que des modèles parallèles tels que MPI (Message Passing Interface) doivent être combinés avec d’autres modèles plus adaptés aux systèmes à mémoire partagée afin de permettre aux codes scientifiques d’exploiter efficacement ces machines. OpenMP, en tant que modèle standardisé, est un choix privilégié pour être combiné avec MPI. Mais mélanger deux modèles différents est une tâche compliquée et peut engendrer des goulets d’étranglement. Cette thèse a pour objectif d’aborder ces limitations et met en avant plusieurs contributions couvrant divers aspects. Notre première contribution permet de réduire le surcoût des supports exécutifs OpenMP pour les codes MPI+OpenMP en optimisant le travail d’activation et de synchronisation des threads OpenMP. Dans un second temps, nous nous focalisons sur les opérations collectives MPI et proposons une technique permettant de réutiliser des coeurs de libres à l’aide des threads OpenMP. Nous introduisons également le concept de collectives unifiées, faisant intervenir des tâches MPI et des threads OpenMP dans une même opération. Enfin, nous nous intéressons à l’instrumentation des codes MPI+OpenMP, notre dernière contribution consistant en l’implémentation et l’utilisation de l’outil OpenMP Tools API dans le support exécutif OpenMP du framework MPC.

plaquette de diffusion


17 Septembre 2015 – Séminaire n°28 – Static/Dynamic Analyses for Validation and Improvement of Multi-models HPC Applications

Présentation par: Emmanuelle Saillard, doctorante au CEA.
Amphi du TGCC, 10h – durée: 45 min

Résumé

Présentation des travaux de thèse.

Supercomputing plays an important role in several innovative fields, speeding up prototyping or validating scientific theories. However, supercomputers are evolving rapidly with now millions of processing units, posing the questions of their programmability. Despite the emergence of more widespread and functional parallel programming models, developing correct and effective parallel applications still remains a complex task. Although debugging solutions have emerged to address this issue, they often come with restrictions. However programming model evolutions stress the requirement for a convenient validation tool able to handle hybrid applications. Indeed as current scientific applications mainly rely on the Message Passing Interface (MPI) parallel programming model, new hardwares designed for Exascale with higher node-level parallelism clearly advocate for an MPI+X solutions with X a thread-based model such as OpenMP. But integrating two different programming models inside the same application can be error-prone leading to complex bugs – mostly detected unfortunately at runtime. In an MPI+X program not only the correctness of MPI should be ensured but also its interactions with the multi-threaded model, for example identical MPI collective operations cannot be performed by multiple non-synchronized threads.

This thesis aims at developing a combination of static and dynamic analysis to enable a scalable verification of hybrid HPC applications. The first pass statically verifies the thread level required by an MPI+OpenMP application and outlines execution paths leading to potential deadlocks. Thanks to this analysis, the code is selectively instrumented, displaying an error and synchronously interrupting all processes if the actual scheduling leads to a deadlock situation. Our method has been implemented as a plugin in the GCC compiler to avoid compiler recompilation.

Biographie:

Emmanuelle Saillard obtained a M.Sc. in Computer Science in 2012 from the University of Versailles. She is in a PhD program at CEA DAM, in collaboration with the University of  Bordeaux 1, since september 2012. She worked on « Static/Dynamic Analyses for Validation and Improvement of Multi-models HPC Applications ». Her interests are building analysis to detect as soon as possible incorrect patterns in parallel programs.

plaquette de diffusion


1 Octobre 2015 – Séminaire n°29Algorithme d’équilibrage de charges sous contrainte mémoire pour le transport Monte-Carlo

Présentation par: Thomas Gonçalvès, doctorant au CEA.

Amphi du TGCC, 10h – durée: 20 min.

Résumé

Le transport Monte-Carlo met en jeu des particules qui sont injectées en un ou plusieurs points sources d’un domaine physique. Ces particules subissent des évènements (absorption, interaction, etc.) et se déplacent de manière aléatoire. Les codes Monte-Carlo souffrent de difficultés de passage à l’échelle (extensibilité). En effet, le passage du transport Monte-Carlo dans un contexte massivement parallèle est confronté à deux problèmes qui sont liés: l’équilibrage de charges et la mémoire. La charge de travail est liée aux traitements des particules, par conséquent une maille chargée en particules est une maille nécessitant beaucoup de calculs. Dans un contexte massivement parallèle on souhaite répartir de manière équitable la charge de travail sur les processus, malheureusement cette charge n’est pas répartie de manière uniforme sur le maillage et de plus elle évolue au cours de la simulation. Par conséquent l’approche de décomposition de domaine basique est inadaptée.

Une approche pour pallier ce problème consiste à dupliquer le maillage sur les processus. Cette approche atténue fortement le problème de charge mais elle engendre une surconsommation mémoire problématique. L’approche proposée ici est une décomposition dynamique, avec duplications partielles, sous contrainte mémoire. L’idée est d’attribuer à chaque processus un certain nombre de mailles (le nombre est déterminé par la contrainte mémoire) de telle sorte que la charge de travail soit répartie le plus équitablement possible.

Biographie

Lors de ma licence Mathématiques et informatique à Reims, j’ai reçu une introduction au calcul parallèle (Pthreads notamment) et une initiation au réseau . Désireux d’enrichir mes connaissances en calcul haute performance j’ai poursuivi ma formation en master MIHPS à Versailles. Ce master est orienté calcul haute performance avec notamment une large revue des paradigmes de programmations parallèles et des architectures parallèles. J’ai ponctué cette formation par un stage de fin d’étude au CEA portant sur les communications unidirectionnelles (Bibliothèque Portals). Je suis actuellement en thèse au CEA depuis Avril 2014 sur le sujet « Mécanismes de communications unidirectionnelles pour les applications déséquilibrées de type transport Monte-Carlo ».

plaquette de diffusion


8 Octobre 2015 – Séminaire n°30Keep Calm and Verify your Software: an Overview of the Frama-C Platform

Présentation par: Florent Kirchner , Ingénieur-Chercheur au CEA.

Amphi du TGCC, 10h – durée: 30 min.

Résumé

Whether software is embedded into a critical system or used off-the-shelf by millions of users, it is having to meet an increasingly difficult requirement: the need to guarantee its pivotal properties under a wide variety of operational conditions. Can the code produce unspecified behaviors ? Does it contain a given kind of security vulnerability ? Does it isolate its components from one another ? Does it meet its functional specifications ?

Frama-C is an open-source platform for the modular analysis of C source code. Its design allows users and developers to perform complementary verifications, providing guarantees about its behavior through static and dynamic analyses. By means of an open and modular architecture, it enables the development of new plug-ins by a growing community of both academic and industrial users. In this talk we will review some of the main features of the Frama-C platform, show how it can be successfully applied to (open-source) software projects, and illustrate its role in various collaborations and shared innovation contexts.

Biographie

Florent Kirchner leads the Software Security Laboratory at CEA LIST. He received his Ph.D. in Computer Science from Ecole Polytechnique in 2007. He is an expert scientist at CEA LIST, and he has developed and applied several approaches to software verification, both as part of academic and industrial projects. He was active in launching and heading collaborative efforts with a wide variety of international partners, including the FP7 project STANCE and cross-Atlantic collaborations with NASA, SRI International and the University of Santa Cruz. As a Head of Laboratory he is responsible for a group of 40 scientists working on the research and development of next-generation software analysis technologies, and the associated dissemination and communication activities.

plaquette de diffusion


15 Octobre 2015 – Séminaire n°31Vers des supports exécutifs et des outils de profilage adaptés aux architectures many/multi-cœurs dans le cadre du calcul hautes performances

Présentation par: Marc Pérache, Ingénieur-Chercheur au CEA.

Amphi du TGCC, 10h – durée: 45 min.

Résumé

Présentation des travaux d’Habilitation à Diriger des Recherches.

Depuis un peu plus de dix ans, nous avons amorcé un changement marqué dans l’architecture des processeurs qui a eu un impact direct sur l’architecture des super-calculateurs. Avec la stagnation de la fréquence des processeurs, nous avons assisté à une explosion du nombre d’unités de calcul, que ce soit au travers des architectures de type many/multi-cœurs ou encore des architectures de types GPUs. Cette évolution a mis une pression accrue sur les supports exécutifs.

Les travaux que j’ai réalisés au sein du support exécutif MPC ont pour but d’apporter une solution à ces problèmes. Pour mener à bien cess activités, j’ai fait évoluer le support exécutif MPC. Cette évolution avait pour objectif de faire de MPC un support exécutif de recherche qui permet aux doctorants du laboratoire de mettre en œuvre leurs contributions. Pour atteindre cet objectif, il était nécessaire de rendre MPC à la fois modulaire et robuste. Ces évolutions ont permis de mener à bien des travaux sur l’allocation mémoire et la localité des données en contexte calcul hautes performances multithread ainsi que l’optimisation des communications sur réseau rapide en contexte multithread.

En marge des travaux sur les supports exécutifs eux-mêmes, j’ai mené des études sur l’intégration de ces derniers dans un contexte machine virtuelle. En effet, la virtualisation est de plus en plus utilisée au sein des centres de calcul où MPC est exécuté. J’ai aussi mené des travaux sur le profilage d’applications à grande échelle pour permettre de caractériser l’application dans un contexte réel et ainsi optimiser les supports exécutifs.

plaquette de diffusion


5 Novembre 2015 – Séminaire n°32 Adaptation de maillages anisotropes pour solveurs éléments finis

Présentation par: Hoby Rakotoarivelo, Doctorant au CEA.

Salle Paul Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

La simulation numérique de phénomènes physiques implique la résolution approchée des équations aux dérivées partielles qui les modélisent. Pour ce faire, les méthodes numériques s’appuient sur une discrétisation du domaine: le maillage. Pour certaines simulations, notamment en mécanique des fluides, les maillages simpliciaux (éléments triangulaires ou tétraédriques) sont particulièrement adaptés car ils fournissent une discrétisation de géométries complexes à moindre coût (en nombre d’éléments) et une résolution fine dans les zones d’intérêt (chocs, écoulements, déplacements d’interfaces, etc.). Dans ce cas, le maillage devra approcher au maximum la géométrie du domaine, car sa qualité influe directement sur la convergence des schémas numériques et la précision
de la solution calculée.

Dans le cadre de ma thèse, je m’intéresse à l’étude des méthodes d’adaptation parallèle de maillages anisotropes basées sur la géométrie de la solution, l’idée étant de fournir une méthode scalable, indépendante de la nature physique de la simulation. À ce titre, on adopte une approche gouvernée par une carte de tenseurs métriques basée sur la hessienne de la solution, et utilisant des opérateurs locaux.

La présentation sera structurée en 3 parties : je commencerai par une brève présentation d’une méthode pour générer le maillage initial. Ensuite, je détaillerai le schéma d’adaptation, les notions sous-jacentes et les premiers résultats en terme de qualité et d’erreur  d’interpolation. Enfin, je présenterai la parallélisation de la méthode (en mémoire partagée) et les premiers résultats en terme de scalabilité.

Plaquette de diffusion


12 Novembre 2015 – Séminaire n°33Progression asynchrone des communications MPI

Présentation par: Alexandre Denis, Chargé de Recherche  à  l’INRIA Bordeaux Sud-Ouest.

Salle Paule Gauguin, Ter@tec, 10h30 – durée: 25 min.

Résumé

La progression asynchrone des communications MPI permet de recouvrir le temps de communication avec du calcul, de façon à amortir les coûts.

Nous présenterons MadMPI, notre implémentation MPI totalement asynchrone, et en particulier les mécanismes mis en oeuvre dans son moteur de progression multithread pioman. Nous donnerons ensuite un aperçu de notre méthodologie de benchmark pour mesurer la progression et le recouvrement calcul/communication, et nous présenterons les résultats obtenus sur un large éventail d’implémentations MPI actuelles.

Biographie

Après une thèse obtenue à Rennes dans l’équipe PARIS sous la direction de Thierry Priol et Christian Pérez dans le domaine des grilles de calcul, Alexandre Denis est devenu chargé de recherche à Bordeaux dans l’équipe Runtime avec Raymond Naymst, puis l’équipe Tadaam avec Emmanuel Jeannot. Il travaille principalement sur la gestion des communications MPI.

Plaquette de diffusion


19 Novembre 2015 – Séminaire n°34Modane, Outil  de conception pour les codes de simulation sous Arcane

Présentation par: Marie-Pierre Oudot, Ingénieur-Chercheur au CEA.

Amphithéâtre du TGCC – 9h – durée: 25 min.

Résumé

L’augmentation continuelle de la puissance des supercalculateurs permet la création de codes de simulation numérique de plus en plus aboutis.

Par conséquent, les physiciens et mathématiciens en charge du développement sont confrontés à des algorithmes complexes qu’ils doivent intégrer dans de gros simulateurs en utilisant des technologies informatiques pointues. Le CEA/DAM étudie depuis plusieurs années l’apport des technologies UML/MDA au cycle de développement de ses simulateurs.

Ce travail a notamment donné naissance à l’outil Modane qui facilite la conception des codes de simulation et fluidifie le début du codage en masquant une partie de la complexité informatique.

Plaquette de diffusion


26 Novembre 2015 – Séminaire n°35 – NABLA

Présentation par: Jean-Sylvain Camier, Ingénieur-Chercheur au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

Addressing the major challenges of software productivity and performance portability becomes necessary to take advantage of emerging computing architectures. There is a growing demand for new programming environments in order to improve scientific productivity, to ease design and implementation, and to optimize large production codes.

We introduce the numerical analysis specific language Nabla ∇ which is an open-source (nabla-lang.org) Domain Specific Language (DSL) whose purpose is to translate numerical analysis algorithmic sources in order to generate optimized code for different runtimes and architectures. ∇ raises the level of abstraction, following a bottom-up compositional approach that provides a methodology to co-design between applications and underlying software layers for existing middleware or heterogeneous execution models.

One of the key concept is the introduction of the hierarchical logical time within the high-performance computing scientific community. This new dimension to parallelism is explicitly expressed to go beyond the classical single-program multiple-data or bulk-synchronous parallel programming models. Control and data concurrencies can be combined consistently to achieve statically analysable transformations and efficient code generation. Shifting the complexity to the compiler offers an ease of programming and a more intuitive approach, while reaching the ability to target new hardware and leading to performance portability.

plaquette de diffusion


10 Décembre 2015 – Séminaire n°36 – Virtualisation en contexte HPC

Présentation par: Antoine Capra, Ingénieur à Paratools.

Salle Paule Gauguin, Ter@tec, 10h – durée: 45 min.

Résumé

Mes travaux de thèse portent sur l’utilisation de machines virtuelles en contexte HPC. L’évolution des machines étant aujourd’hui plus rapide que le développement d’un code de calcul, l’adaptation des applications à de nouveaux environnements de programmation devient une problématique importante. Pour cela, nous avons considéré l’utilisation de machines virtuelles qui fonctionnent avec leur propre système d’exploitation et environnement de programmation (compilateur, bibliothèques de calcul…). Ces environnements de programmation sont stables et ont pour objectif d’éviter l’adaptation d’une application à chaque nouvelle machine ou environnement au fil de son développement. Cette problématique rejoint celle des codes patrimoniaux dont l’exécution et le fonctionnement doivent être pérennisés. Cependant, l’utilisation de machines virtuelles se fait par le biais d’une abstraction et d’un programme tiers (l’hyperviseur) et entraine une perte de performance.


07 Janvier 2015 – Séminaire n°37 – Correctness Analysis of MPI-3 Non-Blocking Communications in PARCOACH

Présentation par: Julien Jaeger, Ingénieur-Chercheur au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

The first release of MPI programming model contained collective operations and non-blocking communications. MPI-3 merged these two features to provide non-blocking collectives.
But currently, an efficient use of these functions is very rare because the behavior of non-blocking communications, and especially non-blocking collectives, is not well
understood by most users.

We propose an in-depth analysis of the non-blocking communications API (point-to-point and collective) to help programmers to include non-blocking collectives to MPI programs with blocking collectives and non-blocking communications, we improved the PARCOACH tool for checking correctness of MPI call sequences.
This enhancement focuses on correct call sequences of all  flavor of collective calls on one side, and on the presence of completion calls for all non-blocking communications on the other side. Some evaluation shows the output of the different analyses, along with some overhead figures. These overheads are negligible compared to the already existing checking of blocking collectives, and remain under 10% of
original compilation time.

plaquette de diffusion


21 Janvier 2015 – Séminaire n°38 – Impact du placement des threads de progression pour les collectives non-bloquantes MPI

Présentation par: Hugo Taboada, Doctorant au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

Les collectives non-bloquantes MPI permettent de recouvrir les communications par du calcul. Pour réaliser cela, un thread de progression est créé pour effectuer les tâches de communication
tandis que le thread principal continue d’exécuter du calcul. Lors d’une communication collective, nous avons donc un thread de progression qui est créé pour chaque tâche MPI du communicateur lié à cette communication. Ce mécanisme peut ainsi surcharger les cœurs de calcul avec des threads de progression.

Nous allons nous intéresser à la manière de placer ces threads sur les cœurs de façon à ce qu’ils perturbent le moins possible les threads de calcul.

La gestion des threads de progression dans MPC est réalisée par l’ordonnanceur de MPC. Lors d’un appel à une collective MPI non-bloquante, tous les threads qui appartiennent au communicateur, dont fait référence la collective, créent un thread de progression qui prend en charge les tâches de la communication non-bloquante pour ce thread. Celui-ci est amené à s’exécuter en concurrence aussi bien avec les autres threads de progression qu’avec les threads de calcul qui les ont générés. C’est pour cette raison que nous souhaitons savoir quelles sont les approches efficaces pour ordonnancer les threads de progression, que ce soit lorsque tous les cœurs de calcul sont déjà utilisés, ou lorsque certains cœurs sont encore libres.

Dans le cadre de cette étude, nous nous sommes principalement intéressés au placement des threads sur les cœurs de calcul.

Plaquette de diffusion


28 Janvier 2015 – Séminaire n°39Ordonnancement de tâches/threads sur architecture many/multi-cœur

Présentation par: Arthur Loussert, Doctorant CEA-ATOS.

Salle Paule Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

Dans le cadre du calcul haute performance (HPC), les applications utilisent des modèles de programmation parallèle pour tirer partie des performances des supercalculateurs. Le modèle le plus utilisé a ce jour est MPI (Message Passing Interface) qui permet d’utiliser tous les noeuds de calcul et tous les coeurs d’une machine. L’avènement des processeurs multicœurs et manycœurs incite de plus en plus les programmeurs à utiliser d’autres modèles comme OpenMP et a les mélanger entre eux.

Dans ce contexte, le CEA/DIF a développé l’environnement d’exécution MPC destiné à unifier les modèles de programmation sur des supercalculateurs tels que TERA100 et Curie. MPC propose aussi des composants optimisés pour le HPC. Parmi ces composants, on peut citer un ordonnanceur de threads.

L’objectif de ces travaux est d’étendre cet ordonnanceur avec de nouveaux algorithmes d’ordonnancement en contexte programmation hybride (MPI + OpenMP par exemple) massivement multithread. La première contribution apportée est l’implémentation de marqueurs pour les threads dans MPC. La seconde est une méthode de génération de traces d’exécution et une visualisation temporelle de ces traces sous forme de frise chronologique. Enfin, plusieurs types d’ordonnanceurs ont été étudiés, implémentés et testés sur des applications et micro-benchmarks.


04 Février 2016 – Séminaire n°40An MPI Halo-Cell Implementation for Zero-Copy Abstraction

Présentation par: Jean-Baptiste Besnard, Ingénieur à Paratools SAS.

Salle Paule Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

In the race for Exascale, the advent of many-core processors will bring a shift in parallel computing architectures to systems of much higher  concurrency, but with a relatively smaller memory per thread. This shift raises concerns for the adaptability of HPC software, for the current generation to the brave new world.

In this presentation, we study domain splitting on an increasing number of memory areas as an example problem where negative performance impact on computation could arise. We identify the specific parameters that drive scalability for this problem, and then model the halo-cell ratio on common mesh topologies to study the memory and communication implications. Such analysis argues for the use of shared-memory parallelism, such as with OpenMP, to address the performance problems that could occur.

In contrast, we propose an original solution based entirely on MPI programming semantics, while providing the performance advantages of hybrid
parallel programming. Our solution transparently replaces halo-cells transfers with pointer exchanges when MPI tasks are running on the same node, eectively removing memory copies. The results we present demonstrate gains in terms of memory and computation time on Xeon Phi (compared to
OpenMP-only and MPI-only) using a representative domain decomposition benchmark.

Biographie

Jean-Baptiste BESNARD a fait sa dernière année d’école d’ingénieur (en alternance) puis sa thèse au CEA-DAM sur les problématiques de profilage et déboggage des applications massivement parallèles — travail qui a mené au développement de l’outil MALP. Il travaille maintenant chez ParaTools SAS, société spécialisée en consulting HPC, et participe au développement de TAU, l’un des outils de référence pour le profilage d’applications HPC.

Plaquette de diffusion



18 Février 2016 – Séminaire n°41La loi de convexité énergie-fréquence de la consommation des programmes : modélisation et applications.

Présentation par: Karel De Vogeleer, Ingénieur à DDN.

Salle Paule Gauguin, Ter@tec, 10h – durée: 45 min.

Résumé

La preuve théorique et expérimentale est présentée pour montrer l’existence de la loi de convexité énergie-fréquence de la consommation des programmes, qui concerne la consommation d’énergie et la fréquence de microprocesseur à l’échelle nanométrique. Des processeurs d’applications à l’échelle nanométrique typiques ont été mesurés en base des noyaux de calcul intensif spécifiques en utilisant des jauges de puissance à haute résolution. Les données recueillies lors de plusieurs campagnes d’acquisition de plusieurs semaines suggèrent que la consommation est fortement corrélée avec la fréquence du microprocesseur, et, plus intéressant, la courbe présente un minimum clair sur la gamme de fréquence du processeur. Un modèle analytique de ce comportement est fournit et motivés, ce qui cadre bien avec les données. Les circonstances sont examinées en vertu de laquelle cette règle de convexité peut être exploitée, et lorsque d’autres méthodes sont plus efficaces, dans le but d’améliorer l’efficacité énergétique du microprocesseur.

De plus, nous présentons un système expérimental pour l’optimisation d’énergie appliqué à des systèmes multi-core en exploitant la loi de convexité énergie-fréquence.

Biographie

Karel a obtenu des diplômes de Master en Belgique et en Suède. En Suède, Karel a travaillé à Blekinge Institute of Technology en tant qu’assistant de recherche. Il a soutenu sa these à Telecom ParisTech en collaboration avec l’Ecole des Mines, sur le sujet de l’optimisation et modélisation d’energie des ordinateurs. Maintenant, Karel travaille à DDN Storage en tant que spécialiste de la performance et de la modélisation.

plaquette de diffusion


10 Mars 2016 – Séminaire n°42Retour sur le MPI Forum Meeting de Mars 2016.

Présentation par: Julien Jaeger, Ingénieur-Chercheur au CEA, et Jean-Baptiste Besnard, Ingénieur à Paratools SAS.

Salle Paule Gauguin, Ter@tec, 10h – durée: 30 min.

Résumé

Le MPI Forum est l’instance dirigeante du standard MPI, et regroupe des personnes de différents organismes. Ce sont eux qui font évoluer le standard MPI en proposant, rédigeant et ratifiant la nouvelle version de MPI.

Après leur participation au dernier Meeting face-à-face, Julien Jaeger et Jean-Baptiste vous présenteront certains des sujets discutés dans différents domaines. Après une introduction au mode de fonctionnement du MPI Forum, les discussions en cours dans trois sous-parties seront exposés.

Dans un premier temps, Jean-Baptiste évoquera les discussions ayant eu lieu dans le sous-comité dédié aux outils pour MPI, avec tout d’abord la nouvelle interface de profilage QMPI/MPI ET et ensuite la possible intégration d’un dérivé de l’interface de Callback Peruse. Ensuite, Julien présentera le modèle de tolérance aux pannes, ULFM (pour User-Level Failure Mitigation), qui devrait être intégré à MPI dans la prochaine version du standard. Avant de conclure, une présentation rapide d’un nouveau sujet de discussion au sein du MPI Forum, les MPI Sessions, vous sera faite. Bien que les « MPI sessions » en soient à un stage très peu avancées, celles-ci, si elles sont intégrées au standard, pourraient changer de façon assez importante la vision globale d’un programme MPI.

plaquette de diffusion


17 Mars 2016 – Séminaire n°43Etude et sauvegarde de la consommation énergétique dans un environnement simple et multi-processeurs.

Présentation par: Nicolas Triquenaux, Ingénieur à DDN.

Salle Paule Gauguin, Ter@tec, 10h – durée: 45 min.

Résumé

Les processeurs actuels peuvent changer au vol leurs fréquences d’exécution.

Utiliser une fréquence plus faible peut mener à une réduction de leurs consomma- tions énergétiques. Cette thèse recherche jusqu’à quel point cette fonctionnalité, appelé DVFS, peut favoriser cette réduction. Dans un premier temps, une analyse d’une machine simple est effectuée pour une meilleure compréhension des différents éléments consommateurs afin de focaliser les optimisations sur ces derniers.

La consommation d’un processeur dépend de l’application qui est exécutée. Une analyse des applications est donc effectuée pour mieux comprendre leurs impacts sur cette dernière. Basés sur cette étude, plusieurs outils visant à réduire cette consommation ont été créés. REST, adapte la fréquence d’exécution au regard du comportement de l’application. Le second, UtoPeak, calcule la réduction maximum que l’on peut attendre grâce au DVFS. Le dernier, FoREST, est créé pour cor- riger les défauts de REST et obtenir cette réduction maximum de la consommation énergétique.

Enfin, les applications scientifiques actuelles utilisent généralement plus d’un processeur pour leurs exécutions. Cette thèse présente aussi une première tentative de découverte de la borne inférieure sur la consommation énergétique dans ce nouvel environnement d’exécution.

plaquette de diffusion


24 Mars 2016 – Séminaire n°44Retour sur le MPI Forum Meeting de Mars 2016.

Présentation par: Julien Jaeger, Ingénieur-Chercheur au CEA, et Jean-Baptiste Besnard, Ingénieur à Paratools SAS.

Salle Paule Gauguin, Ter@tec, 10h – durée: 40 min.

Résumé

Le MPI Forum est l’instance dirigeante du standard MPI, et regroupe des personnes de différents organismes. Ce sont eux qui font évoluer le standard MPI en proposant, rédigeant et ratifiant la nouvelle version de MPI.

Après leur participation au dernier Meeting face-à-face, Julien Jaeger et Jean-Baptiste vous présenteront certains des sujets discutés dans différents domaines. Après une introduction au mode de fonctionnement du MPI Forum, les discussions en cours dans trois sous-parties seront exposés.

Dans un premier temps, Jean-Baptiste évoquera les discussions ayant eu lieu dans le sous-comité dédié aux outils pour MPI, avec tout d’abord la nouvelle interface de profilage QMPI/MPI ET et ensuite la possible intégration d’un dérivé de l’interface de Callback Peruse. Ensuite, Julien présentera le modèle de tolérance aux pannes, ULFM (pour User-Level Failure Mitigation), qui devrait être intégré à MPI dans la prochaine version du standard. Avant de conclure, une présentation rapide d’un nouveau sujet de discussion au sein du MPI Forum, les MPI Sessions, vous sera faite. Bien que les « MPI sessions » en soient à un stage très peu avancées, celles-ci, si elles sont intégrées au standard, pourraient changer de façon assez importante la vision globale d’un programme MPI.

plaquette de diffusion


26 Mai 2016 – Séminaire n°45Equilibrage de charge pour des simulations multi-physiques par partitionnement multi-critères de graphes.

Présentation par: Rémi Barat, Doctorant au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 20 min.

Résumé

Afin de diminuer le temps de restitution, les simulations numériques sont lancées en parallèle en distribuant les données à traiter sur plusieurs unités de calcul. Afin de tirer pleinement partie du parallélisme, un code doit d’une part équilibrer la charge attribuée à chaque unité de calcul, et d’autre part limiter les communications entre unités. Pour les simulations traitant d’un maillage, on modélise généralement ce dernier par un graphe. Les sommets du graphe correspondent aux mailles et sont pondérés suivant la complexité de traitement de la maille. Deux sommets sont reliés par une arête si les mailles qui leur correspondent sont voisines.

Équilibrer la charge de calcul en minimisant les communications revient alors à diviser le graphe en parties équilibrées, en minimisant le nombre d’arêtes coupées : c’est le problème du partitionnement de graphe.

Lorsque la simulation est multi-physiques (plusieurs phases de calcul au sein d’une itération), on attribue des poids vectoriels (une composante par phase de calcul). On parle alors de partitionnement multi-critères.

Je justifierai plus en détail l’utilisation du partitionnement multi-critères, problème NP-Dur, ainsi que le modèle utilisé. Je présenterai la méthode multi-niveaux, sur laquelle se basent les outils existants. Ceux-ci n’étant pas suffisants, je développerai les algorithmes que j’ai mis au point et les résultats obtenus jusqu’à présent.

plaquette de diffusion


2 Juin 2016 – Séminaire n°46Gestion spécifique des données en lecture seule pour une optimisation en consommation de la hiérarchie mémoire

Présentation par: Gregory Vaumourin, Doctorant au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 20 min.

Résumé

La puissance dégagée par les hiérarchies mémoires représentent un facteur de consommation importante pour les systèmes embarqués limités par leurs batteries ou pour les supercalculateurs limités par leurs enveloppes thermiques. Parmi les nombreuses optimisations existantes, créer un chemin de données spécialiser pour un type particulier de données a montré des gains significatifs. Nous nous intéresserons ici, aux données en lecture seule, peu étudiée dans l’état de l’art et proposons une étude des différentes possibilités de gestion de ces données dans la hiérarchie mémoire à travers un codesign compilation/architecture.

plaquette de diffusion


9 Juin 2016 – Séminaire n°47Impact du placement des threads de progression pour les collectives MPI non-bloquantes.

Présentation par: Hugo Taboada, Doctorant au CEA.

Salle Paule Gauguin, Ter@tec, 10h – durée: 20 min.

Résumé

« Message Passing Interface » (MPI) est une norme définissant une bibliothèque de fonctions permettant la programmation parallèle par le biais d’envois de messages. Ceux-ci peuvent être bloquants ou non-bloquants. Cette dernière technique permet de recouvrir le temps de communication par du calcul. Un bon taux de recouvrement est obtenu en effectuant les tâches de communication et des tâches de calcul en parallèle.

Certaines implémentations utilisent des threads de progression prenant en charge la progression des communications. Ils se retrouvent ainsi en concurrence non seulement avec les threads de calcul mais aussi avec d’autres threads de progression. Les changements de contextes engendrés ainsi que le partage des ressources de calcul peuvent dégrader les performances.

Dans cette présentation, nous nous concentrons sur les communications collectives non-bloquantes apparues lors de la version 3.0 de la norme MPI. Nous proposons un placement de ces différents threads en tenant compte de la topologie NUMA de la machine afin d’améliorer le taux recouvrement des communications collectives non-bloquantes. Nous avons intégré notre solution au support exécutif MPC.

plaquette de diffusion


24 Juin 2016 (vendredi) – Séminaire n°48 Llvm, compilation et plus.

Présentation par: Arnaud de Grandmaison, ARM.

Salle Berthe Morisot, Ter@tec, 10h – durée: 30 min.

Résumé

Arnaud de Grandmaison présentera différents aspects du  projet LLVM. Après une revue des différents projets (LLVM, Clang, libc++, lld, lldb, …), quelques facettes moins connues du projet, bien qu’extrêmement utiles pour les développeurs, seront présentées : complétion automatique de code, fuzzing, sanitizers, …

Il abordera les différents sujets de discussions du moment, les axes de développement en cours, et reviendra sur quelques améliorations récemment ajoutées, en particulier concernant la vectorisation.

plaquette de diffusion

Biographie

Arnaud de Grandmaison a débuté chez VLSI Technology en 1995, en conception d’ASIC, en utilisant différents processeurs (Z80, ARM, Oak+).  Il a ensuite été en charge pour DiBcom des outils de développement, basés sur LLVM, pour un DSP spécifiquement développé pour la démodulation de la télévision numérique en situation de mobilité. Il a finalement  rejoint la société ARM il y a 2 ans, pour implémenter dans LLVM le support des nouvelles architectures et améliorer les performances du code générés pour ces processeurs. Il est également un membre actif de la communauté LLVM et a organisé plusieurs conférences LLVM en Europe

 


 

07 Juillet 2016  – Séminaire n°49 WI4MPI: Wrapper Interface for MPI.

Présentation par: Julien Jaeger, Ingénieur-Chercheur au CEA.

Salle Berthe Morisot, Ter@tec, 10h – durée: 20 min.

Résumé

In the High Performance Computing context, most applications rely on third part libraries. These dependencies (ABI or API) often require to recompile the application itself to be adapted to the software stack installed on the target cluster. If application recompilation is not possible (closed sources . . . ), we have to recompile/install the third part libraries required.

With WI4MPI, we introduce a methodology and describe a framework to avoid these recompilation phases. Our first target is MPI. For HPC applications, MPI is probably the most important dependency and, dues to the lack of interoperability of MPI implementation, it is not easy to move application binaries from one cluster to another one.

Our framework WI4MPI is able to translate the MPI application binary interface from the MPI implementation used to compile the application to another MPI implementation available on the target cluster.

WI4MPI has been validated on a large spectrum of application (micro-benchmarks, mini-applications and production application) to ensure robustness. Regarding performances, WI4MPI maximum overhead is less than 8% on micro-benchmarks and around to 2% on a real application.

 

plaquette de diffusion