Découvrir les supercalculateurs
- Rétrospective du tout premier supercalculateur au plus puissant d’aujourd’hui.
- Qu'est-ce qu’un supercalculateur ?
- Principes et caractéristiques fondamentales : capacités de calcul, capacité réseau et capacité de stockage.
- Les différents classements : Top500, Green500, io500.
- Comment se programme un supercalculateur : les ordonnanceurs/gestionnaires de ressources : SLURM, PBS, ...
- Présentation du supercalculateur Exaion sur lequel nous travaillerons.
Travaux pratiques
Prise en main du supercalculateur Exaion : connexion, installation d’un environnement virtuel et exécution de premiers jobs avec Slurm.
Programmation MPI
- 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...
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...
Programmation MPI, les applications
- Présentation d'exemples d’applications MPI.
Travaux pratiques
Poursuite des travaux pratiques mettant en œuvre les principales primitives.
Dask et son écosystème
- Prise en main de dask : les concepts de base, dask array et dataframe.
- Les autres composants de dask : delayed, futures et bags.
- Dask sur HPC : Scheduler et workers, créer un cluster dask : Cluster MPI/Slurm...
- Panorama des différentes librairies de l’écosystème Dask.
- Manipuler des fichiers NetCDF avec XArray.
Travaux pratiques
Analyse de séries temporelles et climatiques, classifications et régressions avec Dask+Scikit-Learn, visualisation de données cartographiques.
Dask et les données volumineuses
- Visualiser des données volumineuses avec DataShader et Xarray.
- Créer des pipelines/workflows avec Prefect.
- DaskML : déployer vos algorithmes de machine learning sur HPC.
Travaux pratiques
Poursuite des travaux pratiques sur les analyses et les visualisations de données.
Calculer sur GPU
- Les concepts du calcul sur GPU avec Python : matériels, librairies.
- Fonctionnement d’un GPU.
- Dask sur GPU : Créer un cluster CUDA.
- Machine-learning avec PyTorchLightning et RapidsAI.
Travaux pratiques
Mise en œuvre de base avec les librairies PyCuda et Cupy. Manipulation de dataframes avec Dask-CUDF. Machine learning appliqué sur plusieurs nœuds de calculs et plusieurs GPU.