TA01 - Calcul scientifique parallèle - wwwdfr
Transcription
TA01 - Calcul scientifique parallèle - wwwdfr
TA01 - Calcul scientifique parallèle Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours AMS TA01 Edouard Audit Pierre Kestener Nicolas Kielbasiewicz Fabrice Roy - [email protected] [email protected] [email protected] [email protected] CEA-Saclay, DSM, France Maison de la Simulation ENSTA, September, 2015 1 / 81 Déroulement du cours TA01 - Introduction MPI cours (18/09): Introduction au HPC (P. Kestener) cours+TP (25/09): Initiation MPI 1 (PK + FR) cours+TP (02/10): Initiation MPI 2 (PK + FR) cours+TP (09/10): Initiation MPI 3 (PK + FR) TP (16/10, 23/10, 30/10, 06/11, 13/11): Mini-projet noté parallélisation d’un problème de volumes finis (EA + NK) Soutenance orale projet (20/11) Les ressources de calcul utilisées pendant les TP: • poste de travail • cluster gin (ENSTA/UMA) Evaluation du cours : soutenance + projet (code à remettre aux profs) Horaire du cours : 9h00 - 12h30 2 / 81 Recommended reading on MPI / Parallel Programming MPI standard: http://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/mpi31-report.htm books: • Parallel Programming - for multicore and cluster systems by T. Rauber and G. Rünger, Springer, 2010 • Multicore Application Programming - For Windows, Linux and Oracle Solaris by Darryl Gove, Addison-Wesley, 2010 • An Introduction to Parallel Programming by Peter Pacheco, Morgan-Kaufmann, 2011 on-line: • Cours MPI de l’IDRIS • Jeff Squyres’s blogs on MPI and HPC • Parallel computing tutorial at LLNL 3 / 81 Introduction Objectifs de ce cours: • • • • • • • • • Pas juste une introduction à MPI Qu’est ce que le HPC (High Performance Computing) ? Qu’est ce qu’un supercalculateur ? Spécificités Hardware / Software ? Parallel Computing Des notions de bases sur le matériel: multi-cœurs, multi-thread, mémoire cache ... Les modèles de programmation parallèle: MPI, OpenMP, multi-thread, ... Exercices pratiques, mini-projet de parallélisation avec MPI Outils d’analyse de performance et d’aide à la parallélisation Certains sujets seront survolés, mais des pointeurs externes pour approfondir seront fournis 4 / 81 Introduction Parallel computing : definition(s) Concurrence / parallélisme; les architectures matérielles de calcul; tendances actuelles Loi d’Amdhal; Weak/Strong scaling présentation rapide du cluster GIN (ENSTA/UMA): qu’est ce qu’un séquenceur de travaux 5 / 81 Parallel Computing: definition(s) Figure : source: M. Zahran, NYU 6 / 81 Parallel Computing: definition(s) Figure : source: John Urbanic, Pittsburgh Supercomputing Center 7 / 81 Parallel Computing: devinette cuisine Devinette #1 Combien de temps pour faire une tarte aux pommes 1 ⇥ 30 minutes 4 ⇥ 1 minutes 4 ⇥ 1 minutes 1 ⇥ 5 minutes 1 ⇥ 30 minutes 43 minutes tout seul xx minutes à 2 ? http://serge.liyun.free.fr/serge/sources/cours_parallelism.pdf 8 / 81 Parallel Computing: devinette cuisine Devinette #2 Combien de temps pour faire une tarte aux pommes 1 ⇥ 30 minutes 4 ⇥ 1 minutes 4 ⇥ 1 minutes 1 ⇥ 5 minutes 1 ⇥ 30 minutes 37 minutes à 2 xx minutes à 4 ? http://serge.liyun.free.fr/serge/sources/cours_parallelism.pdf 9 / 81 Parallel Computing: devinette cuisine Devinette #3 Combien de temps pour faire une tarte aux pommes 1 ⇥ 30 minutes 4 ⇥ 1 minutes 4 ⇥ 1 minutes 1 ⇥ 5 minutes 1 ⇥ 30 minutes 35 minutes à 4 xx minutes à 3 avec un seul couteau et un seul économe ? http://serge.liyun.free.fr/serge/sources/cours_parallelism.pdf 10 / 81 Parallel Computing: devinette cuisine Devinette #4 Combien de temps pour faire une tarte aux pommes 1 ⇥ 30 minutes 4 ⇥ 1 minutes 4 ⇥ 1 minutes 1 ⇥ 5 minutes 1 ⇥ 30 minutes 35 minutes à 3 et si peu de temps pour tout manger. . . http://serge.liyun.free.fr/serge/sources/cours_parallelism.pdf 11 / 81 Calcul Parallèle : définition(s) Une tarte aux pommes, c’est quoi ? Un assemblage de 3 choses: des ingrédients: pommes, sucre, farine, eau, sel, cannelle, ... une recette: qu’est qu’on doit faire et dans quel ordre ? Où sont les pommes ? Où est l’éplucheur ? Penser à faire préchauffer le four, ... un pâtissier + une cuisine: celui qui travaille, qui exécute la recette ! 12 / 81 Calcul Parallèle : définition(s) Un programme informatique, c’est quoi ? Un assemblage de 3 choses: des ingrédients des données: des fichiers, des données envoyées sur le réseau, ... une recette un algorithme: qu’est qu’on doit faire et dans quel ordre ? Où sont les données ? Quel est le nom du fichier ? un pâtissier + une cuisine un programme + un processeur: celui qui travaille, qui exécute le programme ! 13 / 81 Calcul Parallèle : définition(s) Figure : source: M. Zahran, NYU traduiction possible: Utiliser plusieurs patissiers pour faire une tarte aux pommes plus rapidement... 14 / 81 Calcul Parallèle : définition(s) Figure : source: John Urbanic, Pittsburgh Supercomputing Center traduction possible: faire un bébé, c’est déjà compliqué, alors plusieurs... 15 / 81 Parallel Computing: definition(s) Types de parallélisme Task parallelism Data parallelism Pipeline parallelism http://www.futurechips.org/parallel-programming-2/parallel-programming-clarifying-pip exemple : correction de copies d’examen 16 / 81 Parallel Computing: definition(s) De la recette de cuisine à la notion de concurrence Superscalar Sequence Developer writes “serial” code: f g f p B C E F G P Q R q h g r = = = = = = = = f(A); g(B); f(C); h(C); g(E,F); p(B); q(B); r(G,P,Q); • However, tasks only need to be ordered by data dependencies • Depends on limiting scope of data dependencies Software & Services Group, Developer Products Division Copyright © 2010, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 7 ref: https://www.usenix.org/legacy/event/hotpar10/tech/slides/mccool.pdf 17 / 81