21 Septembre 2017 – Séminaire n°60 – Contributions à la parallélisation de méthodes de type transport Monte-Carlo
Présentation par: Thomas Gonçalves, Doctorant au CEA
Salle Paul Gauguin, Ter@tec, 11h – durée: 45min.
Résumé
Les applications de transport de particules Monte-Carlo consistent à étudier le comportement de particules se déplaçant dans un domaine de simulation. La répartition des particules sur le domaine de simulation n’est pas uniforme et évolue dynamiquement au cours de la simulation. La parallélisation de ce type d’applications sur des architectures massivement parallèles amène à résoudre une problématique complexe de répartition de charges de calcul et de données sur un grand nombre de cœurs de calcul.
Nous avons d’abord identifié les difficultés de parallélisation des applications de transport de particules Monte-Carlo à l’aide d’analyses théoriques et expérimentales des méthodes de parallélisation de référence. Une approche semi-dynamique reposant sur des techniques de partitionnement a ensuite été proposée. Enfin, nous avons défini une approche dynamique capable de redistribuer les charges de calcul et les données tout en maintenant un faible volume de communication. L’approche dynamique a obtenu des accélérations en extensibilité forte et une forte réduction de la consommation mémoire par rapport à une méthode de réplication de domaine parfaitement équilibrée.
5 Octobre 2017 – Séminaire n°61 – Resource-Management Study in HPC Runtime-Stacking Context
Présentation par: Arthur Loussert, Doctorant au CEA
Salle Valadon (RdC – au fond à gauche), Ter@tec, 11h – durée: 25min.
Résumé
With the advent of multicore and manycore processors as building blocks of HPC supercomputers, many applications shift from relying solely on a distributed programming model (e.g., MPI) to mixing distributed and shared-memory models (e.g., MPI+OpenMP), to better exploit shared-memory communications and reduce the overall memory footprint. One side effect of this programming approach is runtime stacking: mixing multiple models involve various runtime libraries to be alive at the same time and to share the underlying computing resources.
This presentation explores different configurations where this stacking may appear and introduces algorithms to detect the misuse of compute resources when running a hybrid parallel application. We have implemented our algorithms inside a dynamic tool that monitors applications and outputs resource usage to the user. We validated this tool on applications from CORAL benchmarks. This leads to relevant information which can be used to improve runtime placement, and to an average overhead lower than 1% of total execution time.
11 Décembre 2017 – Séminaire n°62 – Équilibrage de charge pour les simulations multi-physiques par partitionnement multi-critères de graphe
Présentation par: Rémi Barat, Doctorant au CEA
Salle Valadon (RdC – au fond à gauche), Ter@tec, 14h – durée: 45min.
Résumé
Les simulations multi-physiques couplent plusieurs phases de calcul.
Pour des raisons mémoire ou pour réduire leur durée, elles sont lancées en parallèle sur plusieurs unités de calcul, en mémoire distribuée. Les phases de calcul sont en général séparées par des phases de communication, pour synchroniser les données entre les unités de calcul.
Afin de maximiser l’efficacité de la simulation, le partitionnement des données doit alors équilibrer la charge de travail entre les unités de calcul pour chaque phase de calcul, et aussi minimiser le surcoût dû aux phases de communication.
Pour les simulations reposant sur un maillage, ce problème peut être modélisé par celui du partitionnement multi-critères de graphe. Nous détaillerons ce modèle, et présenterons notre approche, qui a été implantée dans le logiciel de partitionnement Scotch. Cette approche se base sur notre analyse de l’espace des solutions, notamment sa taille et sa connexité, en combinant théorie et expérimentation.
18 Janvier 2018 – Séminaire n°63 – Vérification et amélioration des applications parallèles: relever le défis de l’exascale
Présentation par: Emmanuelle Saillard, Chargée de Recherche à l’Inria Bordeaux Sud-Ouest
Salle Valadon (RdC – au fond à gauche), Ter@tec, 11h – durée: 45min.
Résumé
Le calcul haute performance (HPC) intervient dans de nombreux domaines de la science pour relever les défis sociaux du moment (ex., santé, environnement, sécurité). Il permet de simuler des phénomènes trop petits, grands, rapides, lents, chers ou encore trop dangereux à expérimenter (ex., comprendre l’univers, les maladies comme Alzheimer). Les simulations bénéficient de l’augmentation de la capacité de calcul des systèmes HPC et utilisent maintenant des modèles de plus en plus précis et réalistes. Mais ceci impose aux chercheurs d’appliquer des méthodes d’analyse complexes.
Avec la fin supposée de la loi de Moore, les scientifiques se tournent vers de nouvelles solutions pour obtenir des codes corrects, rapides et performants. Cette présentation proposera des méthodes afin d’aider au mieux les développeurs à corriger et améliorer leurs codes sur les machines de l’exascale.
plaquette de diffusion
15 Février 2018 – Séminaire n°64 – NUMAPROF, A NUMA profiling tool
Présentation par: Sébastien Valat, Fellow au CERN
Salle Gauguin (2ième étage), Ter@tec, 11h – durée: 25min.
Résumé anglais
Nowadays most of the HPC servers are NUMA (Non Uniform Memory Access). It was true with the usage of multiple CPU in the same server and is now true inside the CPU itself like for the Intel Knight Landing when configured in SNC2 or SNC4 mode. To extract performance on such architecture, multi-threaded applications need to be NUMA-aware and explicitly take care of the memory placement of their data. Although, current operating systems like Linux make the memory placement done via the first touch policy. This implicit semantic makes mistakes silently slowing down applications.
In order to check the memory placement I built NUMAPROF. The tool is based on Pintool to instrument applications and intercept all their memory accesses. It then provides a profile pinpointing the unpinned, local, remote and MCDRAM memory accesses into a web-based graphical interface by annotating the source code. Metrics are reported on the call site and on the allocation site to quickly find misplaced segments. It also provides the first touch instructions to know where the memory has been placed. I will present the tool and some examples.
Résumé français
De nos jours la plupart des serveurs HPC sont NUMA (Non Uniform Memory Access). Ceci est maintenant également vrai à l’intérieur du CPU lui-même pour les processeurs Knight Landing de Intel lorsque configurés en mode SNC2 ou SNC4. Pour obtenir la performance sur ces architectures, les applications multi-threadées doivent explicitement maîtriser leurs placements mémoire. Hélas, sur les OS tels que Linux le placement mémoire est par défaut définit en fonction du premier accès (first-touch). A cause the cette sémantique implicite l’application peut être ralentie sans que l’utilisateur ne se rende compte de ses erreurs.
Afin de valider ces placements mémoire j’ai développé NUMAPROF. L’outil est basé sur Pintool pour instrumenter les accès mémoire de l’application. Le profile généré pointe les accès non pinnés, locaux, distants et MCDRAM dans une interface graphique de type web en annotant le source code. Les métriques générées sont reportées sur les instructions d’accès et les sites d’allocation des segments concernés. L’outil annote également les instructions effectuant les first-touch. Je présenterais l’outil et quelques exemples.
Bibliographie
Sebastien Valat started his training with a Master degree in particle physics making his internships on the OPERA and LHCb detectors for decay channel reconstruction and analysis. He continued his studies with a second master in computer science. It leaded to a PhD. on memory management in HPC context at CEA while working inside the MPC project. He then made a one year post-doc at the Exascale computing lab working on a memory profiling tool (MALT). He is now a Fellow at CERN since two years working on the future data acquisition system for the LHCb detector.
plaquette de diffusion
22 Mars 2018 – Séminaire n°65 – READEX – Runtime Expoitation of Application Dynamism for Energy-efficient eXascale computing.
Présentation par: Uldis Locans, HPC Software engineer à Intel France
Salle Gauguin (2ième étage), Ter@tec, 11h – durée: 25min.
Résumé anglais
The importance of energy efficiency is constantly increasing in High Performance Computing (HPC). While systems can be adapted to individual applications in order to reduce energy consumption, manual tuning of platform parameters is a tedious and often neglected task.
The READEX project automates this by developing a tools-aided methodology for dynamic auto-tuning that combines technologies from two ends of the computing spectrum: system scenario methodology from the embedded world and auto-tuning from the field of HPC.
Bibliographie
Uldis Locans is a HPC software engineer at Intel France. He earned his PhD from University of Latvia in collaboration with Paul Scherrer Institute in Switzerland, working on use of new hardware architectures, for optimization of particle accelerator simulations and experimental data analysis tools. His current work involves research on tools and methods for energy efficiency optimization in HPC applications.
29 Mars 2018 – Séminaire n°66 – Thread interference analysis: decoupling the causes from the effects.
Présentation par: Mohamed Molsi Bouksiaa, Doctorant à Telecom SudParis
Salle valadon (Rez-de-Chaussée), Ter@tec, 11h – durée: 45min.
Résumé anglais
Understanding the performance of a multi-threaded application is difficult. The threads interfere when they access the same resource, which slows their execution down. Unfortunately, current profiling tools focus on identifying the interference causes, not their effects.
The developer can thus not know if optimizing the interference reported by a profiling tool can lead to better performance. In this paper, we propose to complete the profiling toolbox with an effect-oriented profiling tool able to indicate how much interference impacts performance, regardless of the interference cause. With an evaluation of 27 applications, we show that our tool successfully identifies 12 performance bottlenecks caused by 6 different kinds of interference.
17 Mai 2018 – Séminaire n°67 – Parallel data transposition in numerical algorithm for solving the Gross-Pitaevski equation.
Présentation par: Bogdan Sataric, Faculty of Technical Sciences in Novi Sad Serbia
Salle valadon (Rez-de-Chaussée), Ter@tec, 11h – durée: 45min.
Résumé anglais
Main objective of my previous work was study and development of parallel algorithms for transposing distributed three-dimensional data structures, and description of their technical implementation in C/OpenMP/MPI hybrid programing paradigm. The developed three dimensional transposition algorithm has been applied in solving the nonlinear partial differential equation of the Schroedinger type (Gross-Pitaevskii equation) using Crank-Nicolson split-step method, for a system containing very large number of data points (wave-function values). Work overview will show the corresponding software development cycle, as well as results of validity tests and performance measurements obtained on a computer cluster.
Bibliography
Bogdan Sataric has been born on 12.12.1983. in Belgrade, Serbia. First year of elementary school and the last year of high school he attended in Edmonton, Canada while other years of school he attended in Novi Sad, Serbia achieving highest grades. In 2002. he enrolled into Faculty of Technical Sciences in Novi Sad Serbia, studying Computer science. Between 2005 and 2010 he worked first as intern an then as engineer in company RT-RK based in Novi Sad. Company work was based on DSPs, FPGAs and Web based informational systems. In 2008 he received his master thesis for working on Web based system for remote control of TV testing devices while achieving 9.25/10 GPA. In 2009 he enrolled into PhD studies at the same faculty. From 2010 he started working first as teaching assistant and recently as assistant professor in courses Computer Architecture and Operating Systems. In 2017. he defended his PhD thesis named Parallel data transposition in numerical algorithm for solving the Gross- Pitaevski equation with GPA of 10/10. He attended 3 PRACE workshops/schools for OpenMP, OpenACC, MPI and optimization between 2012-2016. Additionally he created and mentored several bachelor and master thesis that involved HPC (CUDA and OpenCL) related problems between 2015-2017.