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