HPC
HPC-HPDA sur cluster de multi-cœurs
Description : Programmaiton en MPI+multithreading et exploitation d’un cluster de PCs multi-coeurs pour du calcul à haute performance (hpc), et de l’analyse de données à haute performance. Etude des communications MPI pt-à-pt et collectives, des mécanismes de contrôle du déploiement d’applications MPI+multithreading sur des clusters de noeuds multi-coeurs. Algorithmique distribuée de problèmes 1D, 2D et hypercubiques, algorithmique distribuée synchrone et asynchrone. Apprentissage de la soumission d’applications distribuées en mode ‘batch’. Rappel des métriques de performances (speedup, efficacité, size up, scale up) et modèles de performances théoriques ; analyse de cas. Mise en oeuvre sur des problèmes d’algèbre linéaire (HPC), puis sur un problème de clustering de données (HPDA), avec mesure et analyse des performances et de capacité de passage à l’échelle.
Acquis d’apprentissage : A l’issue de ce cours les étudiants sauront concevoir des algorithmes di’sr’ibués cumulant l’envoi de messages entre processus sur différents noeuds de calculs et la programmation multithreads par partage de mémoire au sein d’un processus. Ils sauront ‘déployer’ ces codes hybrides sur des clusters de noeuds multi-coeurs, rechercher les déploiements les plus efficaces, et mesurer et analyser leurs performances. Ils auront mis en oeuvre ces connaissances sur des calculs traditionnels du HPC et sur un problème moins classique d’IA.Dans les deux cas ils se seront confrontés à un problème de ‘passage à l’échelle’ de leurs codes.
Compétences évaluées :
- Développement
- Système
Responsable de cours : Stéphane Vialle
Identifiant Geode : SPM-INF-020
CM :
- Cours d’architectures distribuées (1.5 h)
- Programmation MPI en comm pt-a-pt (1.5 h)
- Programmation MPI en comm collectives (1.5 h)
- Déploiement d’application MPI sur cluster de multi-coeurs (1.5 h)
- Rappels de métriques de performance, et modèles de performances théoriques (1.5 h)
- Algorithmique et programmation distribuée synchrone (1.5 h)
- Algorithmique et programmation distribuée asynchrone (1.5 h)
TD :
- TD-MPI-Clustering (1.5 h)
TP :
- TP-MPI pb 1D synchrone en MPI+OpenMP et déploiement (3.0 h)
- TP-MPI pb 2D synchrone en MPI+OpenMP et déploiement (3.0 h)
- TP-MPI pb asynchrone en MPI+OpenMP et déploiement (3.0 h)
- TP-MPI-Clustering - part 1 (3.0 h)
- TP-MPI-Clustering - part 2 (3.0 h)
