AMS-TA01 Calcul scientifique parallèle Edouard AUDIT Ingénieur-Chercheur Maison de la Simulation Patrick CIARLET Enseignant-Chercheur UMA Erell JAMELOT Ingénieur-Chercheur CEA Pierre KESTENER Ingénieur-Chercheur Maison de la Simulation Nicolas KIELBASIEWICZ Ingénieur de Recherche UMA Fabrice ROY Ingénieur de Recherche LUTH Calcul scientifique parallèle 1
Architecture des machines parallèles «Ordinateur/Machine parallèle» [cluster] Ensemble de nœuds reliés par un réseau d interconnexion Nœud = ressources de calcul et de stockage mémoire Ressources de calcul sur un nœud Ensemble de processeurs Processeur = plusieurs cœurs [multicore] et mémoire [cache] Type de processeurs «standard» : Central Processing Unit [CPU], environ 10 cœurs/proc. «accélérateur» : Graphics Processing Unit [GPU], 100-1000 cœurs/proc. Stockage mémoire sur un nœud Mémoire «partagée» entre processeurs Non-Uniform Memory Access [NUMA] : réseau d interconnexion intra-nœud entre processeurs pour accès à la mémoire «partagée». Calcul scientifique parallèle 2
Programmation des machines parallèles Deux niveaux de programmation parallèle : Entre nœuds : via échange de messages [Message Passing Interface, MPI] Sur un même nœud : Entre des cœurs de processeurs «standards» : via OpenMP [Multi-Processing] Entre des cœurs d «accélérateurs» : via OpenCL [Computing Language], CUDA Programmation «hybride» : si on dispose de processeurs «standards» : MPI/OpenMP si on dispose d «accélérateurs» : MPI/OpenCL Mémoire vs. programmation : MPI pour accès à une mémoire distante (mémoire «distribuée») OpenMP ou OpenCL pour accès à une mémoire «partagée» Calcul scientifique parallèle 3
Contenu du cours AMS-TA01 Dans la première partie, on présentera la démarche de la conception de programmes parallèles, puis on détaillera les grandes étapes théoriques du calcul scientifique parallèle. Outils utilisés : algorithmique (parallèle), algèbre linéaire, analyse numérique. Dans la deuxième partie, on appliquera cette démarche à la résolution numérique de problèmes physiques discrétisés par différences finies, volumes finis ou éléments finis, en mettant l accent sur l extraction du parallélisme. Les modèles seront structurés et non-structurés. Outils utilisés : langages de programmation (FORTRAN) & MPI. Calcul scientifique parallèle 4
Déroulement pratique du cours (1/2) 1 ère séance partie I (mercredi 16/09) : aspects théoriques et algorithmiques du calcul réparti Comment découper le travail à réaliser? Le partitionnement ; Comment échanger de l information? Les communications ; Comment optimiser le calcul global? L agglomération ; Comment distribuer les calculs? Le placement. 1 ère séance partie II (vendredi 18/09) : présentation calcul hautes performances [HPC] supercalculateurs ; initiation MPI. Calcul scientifique parallèle 5
Déroulement pratique du cours (2/2) Partie I (mercredi matins x9) : aspects théoriques du calcul scientifique parallèle partitionnement de graphe ; modélisation par différences finis et éléments finis ; algorithmes parallèles pour problèmes structurés et non-structurés : multiplication matrice-vecteur ; résolution de système linéaire : méthodes itératives (Jacobi, Gauss-Seidel, gradient conjugué, ) ; résolution de système linéaire : méthodes directes (Gauss, complément de Schur, ) ; introduction aux méthodes de décomposition de domaine. Partie II (vendredi matins x9) : mise en œuvre du calcul hautes performances initiation MPI ; programmation parallèle (FORTRAN & MPI). Notation : examen écrit (partie I) ; réalisation de deux projets + soutenance orale (partie II). Calcul scientifique parallèle 6
Contexte du cours AMS-TA01 A l ENSTA, le cours AMS-TA01 fait partie de la filière 3A ModSim. A l Université Paris-Saclay, le cours AMS-TA01 fait partie du cursus du Master AMS (Analyse, Modélisation & Simulation). Cours d approfondissement : AMS-TA05 : Méthodes de décomposition de domaine pour la simulation numérique ; AMS-I03 : Programmation «hybride» et multi-cœurs. Applications : AMS-I05 : Simulation numérique en physique des plasmas ; AMS-I06 : Simulation numérique en astrophysique. Compléments : AMS-I04 : Informatique scientifique approfondie ; AMS-I07 : Visualisation scientifique. Calcul scientifique parallèle 7