Formation Python pour HPC-HPDA
Dernière mise à jour : 15 janvier 2023
Objectifs
- Posséder une bonne compréhension des concepts des supercalculateurs et de leur programmation
- Connaître les librairies Python adaptées au calcul sur HPC
- Concevoir des programmes adaptés aux supercalculateurs avec les librairies MPI4Py, Dask, Xarray, Prefect
- Visualiser des données volumineuses avec DataShader
- Déployer des algorithmes de machines learning avec Dask+Scikit-Learn et PyTorch
Compétences acquises
Maîtrise des outils Python sur cluster HPC-HPDA et super calculateur
Méthode pédagogique
- Une pédagogie active, l’apprenant étant au centre du dispositif
- Des mises en situation ludiques et interactives
- Les applications pratiques seront mises en œuvre
- Du concret : toute la formation renvoie à la réalité professionnelle
- De l’action : plus de 2/3 du temps est dédié à la pratique et à l’expérimentation
- Du rythme : l’intérêt et l’attention du stagiaire sont stimulés par des explications en groupe ou individuelles, des échanges, des travaux et exercices personnels ou collectifs…
- De l’individualisation : chacun apprend à son rythme pour renforcer son autonomie
- De l’ancrage: les participants formalisent et synthétisent ce qu’ils apprennent pour une meilleure mémorisation des acquis
- La formation réserve une place importante à l’interaction avec les participants.
- Mise en situation par application concrète des outils sur vos données de travail durant la formation.
Programme
Découvrir les supercalculateurs (0,25 jour)
- Rétrospective du tout premier supercalculateur au plus puissant d’aujourd’hui
- Qu’est-ce qu’un supercalculateur : principes et composantes principales : capacités de calcul, capacité réseau et de stockage
- Les différents classements : Top500, Green500, io500
- Comment se programme un supercalculateur : les ordonnanceurs/gestionnaires de ressources : SLURM, PBS…
- Tour d’horizon du supercalculateur Champollion sur lequel nous travaillerons
- Panorama des librairies Python disponibles sur HPC
Travaux pratiques
Prise en main du supercalculateur Champollion : connexion, exécution de premiers jobs avec Slurm, accès en mode interactif aux différents nœuds de calculs
Programmation MPI (0,75 jour)
Le Message Passing Interface désigne une API et des outils conçus pour développer des programmes sur plusieurs ordinateurs pour les besoins en calculs scientifiques à haute performance.
Historiquement disponible pour les langages C et Fortran elle est aussi disponible avec le langage Python.
- Présentation rapide des bases du calcul parallèle avec Python : multithreading, multiprocessing, GIL
- Les concepts MPI et les différentes librairies disponibles
- Les différentes primitives : send/receive, scatter/gather, broadcast/reduce, pools de process …
- Exemples d’applications
Travaux pratiques
Implémentation de différentes problématiques mettant en œuvre les principales primitives : traitement d’un lot d’images, calcul des décimales de PI, manipulation de fichiers CSV volumineux…
Autres librairies de calcul parallèle pour HPC (0,5 jour)
Dans ce chapitre nous vous proposons de découvrir l’écosystème Dask qui vous permettra d’utiliser toute la puissance de votre supercalculateur sans presque rien changer à votre code numpy/pandas
- Présentation de Dask : illustration du concept de graphe de calcul, les composantes de dask: delayed, bag, dask array et dataframe
- L’écosystème Dask : Xarray, Datashader, Prefect, RapidsAI (pour les GPU)…
- Calculer sur des matrices volumineuses avec Dask Array
- Manipuler des Dataframes ne tenant pas en RAM avec Dask DataFrame
- Manipuler des fichiers NetCDF/HDF5 avec Xarray
- Orchestrer des pipelines de traitement de données avec Prefect
- Visualisation BigData avec Datashader
Travaux pratiques
Mise en oeuvre des différentes librairies avec des données Open Data ou proposées par le client.
L’apprentissage automatique avec Dask (0,5 jour)
- Rappel sur les concepts de l’apprentissage automatique :
- Les principaux types d’apprentissages : supervisé, non supervisé, renforcement, transfert
- Les principaux algorithmes : des régressions linéaires aux réseaux de neurones en passant par les arbres de décisions et machines à vecteurs de support
- Panorama des différentes librairies Python dédiées au machine learning
- Utiliser Scikit-learn + Dask sur supercalculateur pour les algorithmes classiques
Travaux pratiques
Exercices de classification/régression avec Scikit-learn et Dask
Les réseaux de neurones (0,5 jour)
- Rappel des concepts des réseaux de neurones : graphe de neurones, back propagation, fonction de gain et d’activation
- Panorama des différents types de réseaux de neurones (PER57, DNN, RNN…)
- Présentation de PyTorch et PyTorch Lightning
- Chargement des données volumineuses – bonne utilisation des data loader
Travaux Pratiques
Prise en mains de PyTorch et création d’un premier réseau de neurones simple pour la reconnaissance d’images avec la base MNIST ou ImageNet.
Entrainement sur un, puis plusieurs, nœuds de calcul avec et sans GPU.
Réseaux de neurones convolutionnels (1 jour)
- Optimisation de l’apprentissage : tuning des hyperparamètres, data augmentation, dropout, batch normalization
- Les différentes architectures utilisées en pour la classification et la segmentation d’images
- Présentation des concepts de transfer learning et object detection
Travaux pratiques
Mise en œuvre sur la classification d’images
Traitement du langage naturel (1,5 jour)
- Rappel sur le preprocessing de textes
- Présentation des différentes méthodes de vectorisation (TFIDF, Word2Vec, BERT, etc.)
- Présentation des techniques pour le topic modeling, la recherche d’entités nommées, l’analyse de sentiments, traduction et Word embedding
- Présentation des concepts de transformers
Travaux pratiques
Mise en œuvre sur l’analyse de sentiments, word embedding et traduction. Des corpus issus des bases de données Wikipédia/Gutemberg pourront être utilisés.
Public
Ingénieur, développeur, chercheur, data scientist, data-analyst et toute personne ayant de forts besoins en capacité de calculs avec Python.
Pré-requis
Pratique du langage Python et des librairies numpy, pandas et matplotlib.
Suivi & Evaluation
Modalités d’évaluation Standard
- Questionnaire théorique en début de formation
- Questionnaire théorique en fin de formation
- Validation des acquis
- Attestation de formation
Modalités d’évaluation Certification
- Évaluation standard +
- Révision et préparation à l’examen (exercices pratiques...)
- Examen final en fin de formation via un jury permettant d'obtenir la certification du bloc de compétence
- Pour certaines formations, les compétences théoriques sont validées en amont du Jury via un QCM
- Certains examens internationaux impose un examen en ligne pour un durée allant de 2h à 4h
- Les dates d’examens peuvent évoluer en fonction des sessions
- En cas de non-admission ou de non-présentation du candidat, le candidat a la possibilité de se représenter à une session suivante en accord avec l’équipe pédagogique.
Accessibilité handicap
DYNACENTRIX s’engage auprès de ses clients et partenaires, sur la garantie de l'égalité des droits et des chances des personnes en situation de handicap pour accéder aux formations proposées et a mis en place un accueil spécifique qui travaille en étroite collaboration avec des organismes partenaires (AGEFIPH IDF, Cap emploi).
DYNACENTRIX accueille et accompagne les personnes en situation de handicap tout le long de leur parcours, en lien direct avec l’entourage professionnel et/ou familial des bénéficiaires, en adaptant sa pédagogie et le rythme de ses enseignements ».
Témoignages
Prochaine session
Formation uniquement disponible en Intra et sur mesure.
Durée : 5 jours (soit 35 heures)
Référence : F-pyt-04
Lieu : Disponible à distance, en présentiel, en mixte-hybride, en individuel ou en collectif avec des approches pédagogiques adaptées et spécifiques
Prix : sur devis
Formation disponible
en Intra & sur mesure