Description

Contexte

Les besoins en calcul numérique ne cessent de progresser. Le calcul intensif ne concerne plus seulement les applications traditionnelles (climat, astrophysique, mécanique des fluides, etc.) mais voit la montée en puissance d'autres disciplines (modélisation du vivant, nanotechnologies, etc.) et l'émergence de nouvelles communautés (santé, SHS). Compte tenu de l'évolution des technologies et de leur coût, la puissance de calcul déployée, en particulier au sein d'infrastructures mutualisées comme les mésocentres, est amenée à s'amplifier encore dans les années à venir. L'arrivée des accélérateurs complexifie les architectures en introduisant la notion de supercalcul hétérogène. Ainsi, les administrateurs et les utilisateurs des plateformes HPC sont confrontés à de nouvelles problématiques à la fois techniques, scientifiques et administratives. Cette évolution s'accompagne d'une multiplication des outils (middleware, compilateurs, applicatifs, etc.) qui rend encore plus complexe leur mise à disposition sur les machines de calcul pour les utilisateurs.

Enjeux

Ces dernières années ont vu l'explosion de techniques destinées à faciliter le portage, la maintenance et les mises à jour des applications des utilisateurs. Ainsi, l'avènement de nouveaux types de systèmes de paquets ou des conteneurs d'application ouvrent des perspectives intéressantes pour le déploiement, mais aussi la reproductibilité des installations de logiciels. Ces nouveaux outils sont devenus incontournables pour l'administration système de machines de calcul. Ce sont aussi des avancées importantes pour les utilisateurs. D'une part, ils permettent de porter facilement les codes sur l'échelle de la pyramide du calcul : de l'ordinateur portable aux machines de niveau européen. D'autre part, ils fonctionnent particulièrement bien avec les systèmes d'intégration continue qui sont devenus incontournables en génie logiciel. Enfin, ils s'accompagnent d'avancées dans d'autres domaines connexes comme le stockage ou les ordonnanceurs de tâches.

Objectif

L'objectif de cette action nationale de formation (ANF) est de poursuivre les actions d'exploration et de mise à jour des connaissances qui ont été initiées lors de la première session de UST4HPC en 2018. Cette année, le fil rouge sera le thème de la reproductibilité dans le contexte HPC. Nous visons en particulier l'utilisation des outils de packaging, des conteneurs et des notebooks Jupyter pour le HPC, les questions de sécurité et les systèmes d'intégration continue, le tout dans un contexte de calcul intensif. À noter que la participation à l'ANF 2018 n'est pas un pré-requis pour l'ANF 2021.

Les 4 grands axes du programme de formation sont :

  • la reproductibilité, le packaging et les problématiques de sécurité associées
  • les conteneurs et runtimes pour le HPC
  • les notebooks jupyter dans un environnement HPC
  • l'intégration continue dans le contexte HPC

Le programme est encore susceptible d'être modifié.

Public visé

Cette ANF s'adresse aux personnes en charge de l'administration de moyens de calcul mutualisés.

Modalité

En raison des conditions sanitaires, la formation se fera intégralement à distance par le biais d'outils de webconférence et de discussion instantanée.

Inscription

Le nombre de places est limité. En raison d'un grand nombre de candidatures, nous avons fermé prématurément les demandes d'inscriptions.

Nombre de participants : 28

Programme

lundi 18/01

09:00 10:00 Pas de support disponible

Accueil

Matthieu Boileau, Violaine Louvet, David Delavennat

Tour de table des participants
10:00 11:00

Introduction sur les principes généraux de la reproductibilité dans le domaine du calcul

Konrad Hinsen

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo
Sujets: Le rôle de la reproductibilité dans la recherche scientifique. La crise de la reproductibilité. La différence entre reproductibilité et réplicabilité. L'importance de la reproductibilité comme socle technique pour explorer la réplicabilité. La reproductibilité du calcul déterministe. L'importance de l'environnement computationnel. Les difficultés pratiques dans la préservation et documentation des environnements. La particularité de l'arithmétique à virgule flottante. La reproductibilité du calcul parallèle.
11:00 11:15 Pas de support disponible Pas de résumé disponible

Pause café

11:15 12:15

Au-delà des conteneurs : environnements reproductibles avec GNU Guix

Ludovic Courtès

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo

Cet exposé part de deux constats : la nécessité de déploiements logiciels reproductibles en support de la recherche reproductible et les limitations des outils les plus répandus. Les « gestionnaires de paquets » utilisés en HPC, tels que Spack ou EasyBuild, offrent une grande flexibilité mais ne permettent pas de reproduire un environnement logiciel à l’identique ; les outils de « conteneurs », comme Docker ou Singularity, permettent de sauvegarder un environnement logiciel aux prix de l’opacité et de la rigidité d’un gros binaire.

GNU Guix cherche à combiner les avantages de ces deux approches. Cet exposé donne un aperçu des cas d’usages de Guix et de la manière dont il permet de reproduire des environnement logiciels au bit près, sur différentes machines et à différents instants, tout en conservant une traçabilité complète et la flexibilité des outils des gestion de paquets. Parmi les développements Guix intéressant la recherche reproductible et le HPC, nous verrons « guix time-machine », l’intégration avec Software Heritage, mais aussi les facilités d’administration système pour une grappe de calcul.

mardi 19/01

09:00 10:30 Télécharger le support

Prise en main de GNU Guix — TP

Ludovic Courtès, Hinsen Konrad

Ces travaux pratiques ont pour objectif de démarrer avec GNU Guix : installation de paquets, gestion des variables d’environnement, création d’environnements d’exécution isolés, déclaration d’environnements avec des « manifestes » et « voyage dans le temps » avec « guix time-machine ».
10:30 11:00 Pas de support disponible Pas de résumé disponible

Pause café

11:00 12:00 Pas de résumé disponible

Packaging dans un centre de Tier 1

Rémi Lacroix

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo

mercredi 20/01

09:00 10:00 Pas de résumé disponible

Conteneurs et runtime pour le HPC

Martin Souchal

Télécharger le support Version HTML
Télécharger le support Version PDF
Visionner l'enregistrement vidéo Vidéo
10:00 10:15 Pas de support disponible Pas de résumé disponible

Pause café

10:15 12:15 Télécharger le support Pas de résumé disponible

TP singularity

Sébastien Gadrat, Martin Souchal

jeudi 21/01

09:00 10:00 Pas de résumé disponible

FG-Cloud : un Cloud fédéré pluridisciplinaire pour le déploiement et l'orchestration de conteneurs

Jerome Pansanel

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo
10:10 10:30 Pas de résumé disponible

Conteneurs dans un centre de Tier 1

Rémi Lacroix

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo
10:30 11:00 Pas de support disponible Pas de résumé disponible

Café

11:00 12:00 Pas de résumé disponible

Déploiement d'un jupyterhub avec kubernetes - exposé

Rémi Cailletaud

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo

vendredi 22/01

09:15 10:30 Pas de résumé disponible

Déploiement d'un jupyterhub avec kubernetes - tutoriel

Rémi Cailletaud

Télécharger le support Projet GitLab
Visionner l'enregistrement vidéo Vidéo
10:30 11:00 Pas de support disponible Pas de résumé disponible

Café

11:00 12:00 Pas de support disponible Pas de résumé disponible

Déploiement d'un jupyterhub avec kubernetes - tutoriel - suite

Rémi Cailletaud

lundi 25/01

09:00 09:30 Pas de support disponible Pas de résumé disponible

Debriefing tutoriel jupyterhub avec kubernetes

Rémi Cailletaud

09:30 10:00

Vers un environnement reproductible pour les bloc-notes Jupyter

Ludovic Courtès

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo

Les bloc-notes Jupyter sont devenus un élément important dans la boîte à outils de la recherche reproductible, permettant de mêler un récit scientifique à du code et au résultat de son évaluation. Ces bloc-notes souffrent toutefois d’un problème majeur : ils ne déclarent pas l’environnement logiciel dans lequel doit s’exécuter le code.

Cet exposé présente les limites des solutions les plus courantes à ce problème et propose une approche différente. Guix-Jupyter est un « noyau » Jupyter qui permet d’include dans les bloc-notes des annotations de déploiement logiciel mais aussi de dépendance sur des données externes. Guix-Jupyter en est à ses débuts mais il montre déjà que des bloc-notes auto-suffisants et reproductibles sont possibles.

10:00 11:00 Télécharger le support Pas de résumé disponible

Prise en main de Guix-Jupyter — TP

Ludovic Courtès

11:00 11:20 Pas de support disponible Pas de résumé disponible

Café

11:20 11:40 Pas de résumé disponible

Notebook Jupyter dans un centre de Tier 1

Rémi Lacroix

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo

mardi 26/01

09:00 10:00

Intégration continue pour le HPC sur PlaFRIM

François Rué

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo
L'objectif, à travers cette présentation, est d'exposer l'état de l'expérience menée à travers différents centres de partages de ressources. Ce partage concerne en particuliers les responsables de plateforme outil pour l'nitégration continue d'un côté et les administrateurs de moyens de calcul de l'autre, mettant à disposition de la communauté des chercheurs en HPC des plateformes dédiées pour l'intégration continue dans ce contexte particuliers.
10:00 11:00

Utilisation de PlaFRIM pour l’intégration continue des codes d’algèbre

Florent Pruvost

Télécharger le support Diaporama
Visionner l'enregistrement vidéo Vidéo
L'équipe de recherche Inria HiePACS développe une pile logicielle de solveurs d'algèbre linéaire parallèles. Les enjeux majeurs sont la performance et le passage à l'échelle sur des machines de calculs toujours plus grandes et hétérogènes (CPUs Intel, AMD, IBM, GPUs Nvidia, ...). Pour répondre à ce challenge ces solveurs numériques tirent partis de nombreuses autres bibliothèques sous-jacentes spécialisées (moteurs d'exécutions, noyaux de calcul, MPI, CUDA, ...) et deviennent des objets logiciels modulaires et complexes. La compréhension, le contrôle et la répétabilité des performances obtenues est aussi difficile car dépend de nombreux paramètres : architecture des noeuds, réseaux, versions des bibliothèques, paramètres d'entrées. Afin de mieux maîtriser l'évolution des performances au cours des développements nous avons mis au point une procédure automatisée qui nous permet de suivre nos résultats en fonction des commits des solveurs tout en contrôlant l'ensemble de paramètres qui influent sur ces résultats, rendant la procédure reproductible d'un point de vue logiciel. Nous détaillerons dans cette présentation la procédure, les outils utilisés et discuterons des limitations actuelles et de quelques perspectives.
11:00 12:00 Pas de support disponible

Déclusion

David Delavennat, Matthieu Boileau, Violaine Louvet, Fabrice Roy

Retour sur la formation et réflexion sur les thèmes de la prochaine ANF

Organisation

  • Matthieu Boileau
  • David Delavennat
  • Violaine Louvet
  • Lucy Ruffier