Accueil > Hackathon

Hackathon

Portage sur architecture ARM

et optimisation de codes open source

fournis par de grands industriels

Principe

Avec ce hackathon, nous visons à rassembler les étudiants HPC de niveau M2 dans une compétition virtuelle autour des codes de calcul fournis notamment par EDF (code Saturne et Telemac) et la CGG (noyau sismique). D’autres partenaires industriels pourraient venir compléter cette première liste.

Cette compétition s’appuiera sur les instances AWS basées sur les technologies Arm. En effet, les architectures cibles (processeur AWS Graviton 2 et 3) proposent certaines approches (écosystème logiciel, design) motivant un effort spécifique par rapport aux architectures classiques de type Intel ou AMD. Typiquement, sur le processeur Graviton3, on peut citer l’exploitation des unités SIMD (Scalable Vector Extension/SVE par rapport à l’AVX2 ou l’AVX-512 sur architectures x86) ou encore la disponibilité de 8 canaux mémoire de type DDR5.

Ce hackathon est structuré autour de codes de calcul, d’environnements logiciels et de solutions matérielles déjà éprouvés par les industriels. Les recettes de compilation, les phases d’optimisation ont été validées en amont de cet événement. Les étudiants seront donc dans un cadre proche d’une session de travaux pratiques guidés avec l’opportunité d’accroitre leur compréhension des enjeux industriels autour de la simulation haute performance. Il n’est donc pas attendu de contributions spécifiques venant des étudiants en termes de portage ou d’optimisation (ces codes sont largement éprouvés dans un contexte de production et sur de multiples architectures matérielles). Les participants seront néanmoins crédités par les partenaires industriels (les codes ont un statut ouvert) en cas d’avancées significatives.

Modalités

Les étudiants sont encouragés à adopter une approche itérative pour le portage et l’optimisation de ces codes/noyaux industriels. Ces derniers sont de nature/complexité différentes et permettront de déployer les phases classiques de prise en main d’une application scientifique. L’évaluation des équipes (4 étudiants maximum par équipe) se fera notamment autour des points suivants

- Portage : il s’agira de valider l’application sur architectures Arm (Graviton2/Graviton3) en se focalisant sur le cas test fourni par le partenaire industriel. La validation s’effectuera par le biais d’une comparaison des fichiers résultats et/ou en comparant les résultats sur différentes plateformes (x86/Arm).

- Profiling : Il est demandé aux étudiants d’utiliser les outils classiques de profilage des applications permettant d’identifier les verrous en termes de performance… il s’agira notamment d’identifier les hotspots de ces applications (rapport du compilateur, analyse dynamique du code…)

- Optimisation avancée : Durant cette phase, les étudiants pourront apporter certaines modifications aux codes afin d’améliorer les performances. Pour les applications de taille modeste (e.g. code CGG, il pourra s’agir de rajouter des directives OpenMP ou de modifier l’organisation des boucles …). Dans le cas des codes complexes, les participants pourront se concentrer sur l’impact des différentes chaines de compilation et travailler à l’extraction de certains noyaux (mini-apps). Ces dernières pourraient par la suite faire l’objet d’efforts spécifiques.

 Les compilateurs Arm, Nvidia et GNU seront notamment disponibles durant ce hackathon. Les étudiants auront également accès à différents outils de profiling de codes (e.g. Arm Allinea Forge).

 La synthèse des résultats obtenus (recettes de compilation, procédure de validation, optimisation, extraction de boucles …) sera mise à disposition sur un dépôt de type Git afin de faciliter l’évaluation et la reproductibilité.

Codes proposés / Noyaux identifiés (Juin 2022)

Spécificités des codes :

Les codes HPC sont représentatifs de l'intérêt et de la préoccupation des partenaires industriels de TERATEC. La maitrise du code source et des dépendances (possibilité de recompiler le code) constitue un point important, comme pour tout portage d’une architecture source vers une architecture nouvelle.

Chaque code sera présenté par le partenaire industriel pour expliquer son intérêt. Cette présentation aura lieu lors du webinaire du 7 octobre devant les étudiants inscrits et lors duquel la plateforme sera également présentée.

 

  Code Saturne Code Stencil Système Telemac  
   

Cliquer sur le logo pour télécharger la présentation au format pdf.

 

• Télécharger le document de présentation du Hackathon


     
Contacts :    
TERATEC : Emmanuelle Vergnaud emmanuelle.vergnaud@teratec.fr
ARM : Fabrice Dupros fabrice.dupros@arm.com
AWS : Gilles Tourpe gtourpe@amazon.com

 

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