Séminaires à venir

Saison 2017-2018 (Septembre 2017 – )

 


 

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

 



 

 

Si vous souhaitez faire une présentation en Séminaire InHP@CT,
Merci de nous contacter à l’adresse suivante:
liste-inhpact@cea.fr