calcul scientifique parallele` algebre lin` eaire dense´modave/ams301/slidescours3.pdfi temps...

6
0 Calcul Scientifique Parall ` ele Cours AMS301 — Automne 2020 — Cours 3 Analyse de la performance parall ` ele Alg ` ebre lin ´ eaire dense Axel Modave Analyse de la performance parall ` ele Alg ` ebre lin ´ eaire dense Analyse de la performance parall ` ele Quelle acc´ el´ eration peut-on esp´ erer en parall´ elisant un algorithme ? Crit ` eres de qualit ´ e pour un algorithme parall ` ele ? Le meilleur algorithme est celui qui ... minimise le temps d’exc´ ecution, (en g´ en´ eral) tire parti de la puissance de calcul de tous les nœuds, (en g´ en´ eral) minimise les communications et les temps d’attente. Quantifier la performance . . . Un bon mod ` ele de performance doit expliquer l’observable et pr´ evoir le futur. Il repose sur des etriques, fonctions des param` etres du probl` eme. 1 Performance —M´ etriques [1/3] L’accel ´ eration A [speedup] mesure le facteur de r´ eduction du temps d’ex´ ecution d’un algorithme donn ´ e par l’utilisation d’une machine ` a P processeurs : A = T equentiel T parall ` ele 2 [0,P ] Quelles acc ´ el´ erations et efficacit ´ es peut-on esp ´ erer ? Illustration sur un probl ` eme donn ´ e avec diff´ erentes tailles : P 1 2 4 8 16 Taille normale A 1.0 1.9 3.1 4.8 6.2 Taille 2 A 1.0 1.9 3.6 6.5 10.8 Taille 4 A 1.0 1.9 3.8 7.5 14.2 Des op ´ erations qui doivent se faire de fac ¸on s´ equentielle emp ˆ echent d’attendre l’acc ´ el´ eration maximale. Une borne maximale est donn ´ ee par la loi d’Amdahl. 2

Upload: others

Post on 24-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

0

.

Calcul Scientifique ParalleleCours AMS301 — Automne 2020 — Cours 3

Analyse de la performance parallele

Algebre lineaire dense

Axel Modave

Analyse de la performance parallele

Algebre lineaire dense

Analyse de la performance parallele

Quelle acceleration peut-on espereren parallelisant un algorithme ?

Criteres de qualite pour un algorithme parallele ?Le meilleur algorithme est celui qui ...

– minimise le temps d’excecution,

– (en general) tire parti de la puissance de calcul de tous les nœuds,

– (en general) minimise les communications et les temps d’attente.

Quantifier la performance . . .– Un bon modele de performance doit expliquer l’observable et prevoir le futur.

– Il repose sur des metriques, fonctions des parametres du probleme.

1

Performance — Metriques [1/3]

L’acceleration A [speedup] mesure le facteur de reduction du temps d’execution d’un

algorithme donne par l’utilisation d’une machine a P processeurs :

A =Tsequentiel

Tparallele

2 [0, P ]

Quelles accelerations et efficacites peut-on esperer ?Illustration sur un probleme donne avec differentes tailles :

P 1 2 4 8 16

Taille normale A 1.0 1.9 3.1 4.8 6.2

Taille ⇥ 2 A 1.0 1.9 3.6 6.5 10.8

Taille ⇥ 4 A 1.0 1.9 3.8 7.5 14.2

Des operations qui doivent se faire de facon sequentielle empechent d’attendre

l’acceleration maximale. Une borne maximale est donnee par la loi d’Amdahl.

2

Page 2: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

Performance — Loi d’Amdahl

Loi d’Amdahl

Si la composante sequentielle irreductible (non-parallelisable) d’un algorithme

contribue pour une fraction � au temps d’execution du programme sequentiel,

alors l’acceleration maximale qui peut etre obtenue en parallele est A = 1/�.

Illustration avec � = 1/5 et Tsequentiel = 100 sec

Communications A1-1 2014/2015

Aspects théoriques et algorithmiques du calcul réparti 31

Modèle de performance (10/10)

•  Exemple avec a = 1/5 et T = 100 s en séquentiel :

0

20

40

60

80

100

120

1 2 4 16 256 infini0

1

2

3

4

5

6

1 2 4 16 256 infini

Temps d’exécution en secondes Accélération

Communications A1-1 2014/2015

Aspects théoriques et algorithmiques du calcul réparti 32

Gestion des communications (1/4)

•  Grille bidimensionnelle : parallélisation des communications

–  schéma à 5 points,

–  36 sous-domaines,

–  1 grille de processeurs et 1 sous-domaine par processeur.

Communications A1-1 2014/2015

Aspects théoriques et algorithmiques du calcul réparti 31

Modèle de performance (10/10)

•  Exemple avec a = 1/5 et T = 100 s en séquentiel :

0

20

40

60

80

100

120

1 2 4 16 256 infini0

1

2

3

4

5

6

1 2 4 16 256 infini

Temps d’exécution en secondes Accélération

Communications A1-1 2014/2015

Aspects théoriques et algorithmiques du calcul réparti 32

Gestion des communications (1/4)

•  Grille bidimensionnelle : parallélisation des communications

–  schéma à 5 points,

–  36 sous-domaines,

–  1 grille de processeurs et 1 sous-domaine par processeur.

Temps d’execution Tparallele (en sec) Acceleration A

3

Performance — Metriques [2/3]

L’efficacite E [efficiency] est le rapport entre l’acceleration et l’acceleration optimale :

E =A

P=

Tsequentiel

P · Tparallele

2 [0, 1]

Illustration sur un probleme donne avec differentes tailles :

P 1 2 4 8 16

Taille normale A 1.0 1.9 3.1 4.8 6.2

E 1.0 0.95 0.78 0.60 0.32

Taille ⇥ 2 A 1.0 1.9 3.6 6.5 10.8

E 1.0 0.95 0.90 0.81 0.68

Taille ⇥ 4 A 1.0 1.9 3.8 7.5 14.2

E 1.0 0.95 0.95 0.94 0.894

Performance — Metriques [3/3]

Scalabilite [scalability/scaling] d’une methode parallele = Capacite a conserver la

meme efficacite lorsqu’un plus grand nombre de processeurs est utilise.

I Scalabilite forte [strong scalability] : On analyse l’efficacite pour un probleme

dont la taille est fixe, avec un nombre de processeurs qui augmente.

Avec 2⇥ plus de processeurs, puis-je resoudre un probleme donne 2⇥ plus rapidement ?

I Scalabilite faible [weak scalability] : On analyse l’efficacite avec un probleme

dont la taille augmente lineairement avec la nombre de processeurs.

Avec 2⇥ plus de processeurs, puis-je resoudre un probleme 2⇥ plus gros en autant de temps ?

Suggestion de presentation pour etudier la scalabilite faible/forte :

Attention : la taille du probleme est constante dans le premier cas, et augmente

lineairement avec le nombre de processeurs dans le deuxieme cas.5

Performance — Temps d’execution et de communication

I Temps d’execution T [run time] d’un programme parallele : temps ecoule entre

l’instant ou le premier processeur commence a travailler et l’instant ou le dernier

processeur finit de travailler.

Le temps d’execution est contraint par le nœud le plus lent :

T ⇡ maxnhTcal|n + Tcomm|n + Tattente|n

i

avec, pour chaque un nœud n = 1 . . . P ,

– Tcal|n : temps passe a calculer

– Tcomm|n : temps passe a communiquer

– Tattente|n : temps perdu a attendre

Idee pour reduire T : superposer les calculs et les communications (si possible)

I Le temps de communication Tcomm [communication time] d’un message :

Tcomm ⇡ Tlat + L Tmot

avec

– Tlat : temps de latence (independant de la taille du message)

– Tmot : temps de tansfert d’un mot

– L : taille du message (en nombre de mots)

6

Page 3: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

Performance — Analyse des comm. avec une grille reguliere [1/5]

Voici une grille structuree ...

Comment partitionner cette grille ?

7

Performance — Analyse des comm. avec une grille reguliere [2/5]

Le partitionnement d’un maillage (grille structuree ou maillage non-structure)

peut se faire de deux facons differentes :

I par sous-ensembles de nœuds, en utilisant le graphe primal du maillage :

• nœud du graphe = nœud du maillage

• arete du graphe = arete du maillage

I par sous-ensembles d’elements, en utilisant le graphe dual du maillage :

• nœud du graphe = element du maillage

• arete du graphe = connectivite du maillage

Maillage Graphe primal Graphe dual

8

Performance — Analyse des comm. avec une grille reguliere [3/5]

Plusieurs partitions possibles ...

Partitionnement 1D Partitionnement 2D

La gestion et la taille des communications est differentes !

Intuitivement, on a utilise la methode des coordonnees.

9

Performance — Analyse des comm. avec une grille reguliere [4/5]

On considere des p-partitions d’une grille bidimensionnelle de taille N ⇥N

Partitionnement 1D Partitionnement 2D

Par sous-domaine ... 1D 2D

Quantite de donnees transferees O(2N) O(4N/pP ) O(N)

Quantite d’operations O(N2/P ) O(N2/P ) O(N2)

Rapport transferts / operations O(2P/N) O(4pP/N)

10

Page 4: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

Performance — Analyse des comm. avec une grille reguliere [5/5]

On considere des p-partitions d’une grille tridimensionnelle de taille N ⇥N ⇥N

Par sous-domaine ... 1D 2D 3D

Quantite de donnees transferees O(2N2) O(4N2/P 1/2) O(6N2/P 2/3) O(N2)

Quantite d’operations effectuees O(N3/P ) O(N3/P ) O(N3/P ) O(N3)

Rapport transferts / operations O(2P/N) O(4P 1/2/N) O(6P 1/3/N)

AnalyseI Les communications sont proportionnelles a la surface du sous-domaine,

tandis que les calculs sont proportionnels a son volume.

I Augmenter le nombre de sous-domaines diminue les calculs par sous-domaine,

mais augmente l’importance des communications. (effet surface% )

I Pour un grand nombre de sous-domaines, il est interessant d’utiliser une partition

a dimensionnalite elevee. (effet surface& )

11

Analyse de la performance parallele

Algebre lineaire dense

Operations d’algebre lineaire

Motivation

Operations d’algebre lineaire = Briques de base de beaucoup d’algorithmes

) Besoin de bonnes implementations paralleles pour ces operations.

Algorithmes differents en fonction des structures des matrices :

— Matrices denses sans structure

— Matrices symetriques ou hierarchiques (ex. FFT)

— Matrices creuses structurees (ex. issues de discretisation par differences finies)

— Matrices creuses non-structurees (ex. issues de discret. par elements finis)

BLAS (Basic Linear Algebra Subroutines)

Operations d’algebre lineaire dense classees selon leur complexite algorithmique :

— O(N) operations : produit scalaire, addition de vecteurs BLAS 1

— O(N2) operations : produit matrice-vecteur, addition de matrices BLAS 2

— O(N3) operations : produit matriciel BLAS 3

Des librairies BLAS optimisees existent pour la plupart des environnements (CPU/GPU).

Elles reposent sur une partition des vecteurs/matrices en blocs.

Objectif de cette partie : Parallelisation du produit matriciel.

12

Parallelisation du produit matriciel

On souhaite calculer le produit de deux matrices A = BC avec B et C 2 RN⇥N

en parallele avec P processus (par simplicite, on suppose N multiple de P ).

Algorithme sequentiel

A 0

for i = 1, . . . , N dofor j = 1, . . . , N do

for k = 1, . . . , N doAij Aij + BikCkj

endend

end

Analyse des boucles :

I Boucles en i et j : iterations independantes

I Boucle en k : iterations dependantes (accumulation de valeurs calculees)

Du coup, on va repartir les iterations en i et j entre les processus.

Plusieurs choix possibles !

13

Page 5: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

Parallelisation du produit matriciel — Avec 2 processus [1/2]

Premiere approche

Algorithme parallele avec 2 processus

Sur chaque processus p = 1, 2 :Ap 0

istart (p� 1)N/2 + 1

iend (p� 1)N/2

for i = istart, . . . , iend dofor j = 1, . . . , N do

for k = 1, . . . , N doAij Aij + BikCkj

endend

end

14

DiscussionI Pas de communication entre les

processus

I Chaque processus p : calcule Ap,

stocke Bp, stocke C entierement

Parallelisation du produit matriciel — Avec 2 processus [2/2]

Meilleure approche

DiscussionI Tous les processus ont besoin de tous les blocs de C, mais pas au meme

moment. Ils sont repartis entre les processus, puis echanges.

I A chaque etape, chaque bloc n’est stocke qu’une fois en memoire.

Repartition parfaite des calculs et des donnees ! 15

Parallelisation du produit matriciel — Avec 4 processus [1/3]

Partitionnement en blocs “lignes” (extension immediate du cas a 2 processus)

DiscussionI Chaque processus calcule N2/4 valeurs de A (N/4 lignes).

I A chaque etape, le processus p :

• calcule un bloc de A en utilisant un bloc “colonnes” de C.

• envoie ce bloc “colonnes” de C au proc. p� 1 (ou au dernier proc.)

• recoit un nouveau bloc “colonnes” de C du proc. p+ 1 (ou du premier proc.)

I Besoin de 4 etapes, avec 4 communications a chaque etape (blocs de taille N2/4)

Repartition parfaite des calculs et quasi-parfaite des donnees !

16

Parallelisation du produit matriciel — Avec 4 processus [2/3]

Partitionnement en blocs “carres”

17

Page 6: Calcul Scientifique Parallele` Algebre lin` eaire dense´modave/AMS301/slidesCours3.pdfI Temps d’execution´ T [run time] d’un programme parall`ele : temps ´ecoul e entre´ l’instant

Parallelisation du produit matriciel — Avec 4 processus [3/3]

Partitionnement en blocs “carres”

DiscussionI Chaque processus calcule N2/4 valeurs de A.

I Besoin de 2 etapes, avec 4 communications a chaque etape (blocs de taille N2/4)

Repartition parfaite des calculs et quasi-parfaite des donnees !

Au total, 2⇥moins de communications que la version precedente !

18

Parallelisation du produit matriciel — Avec P = N2blk

processus [1/2]

Les matrices A, B et C sont partitionnees en Nblk ⇥Nblk blocs :

2

64A11 A12 A13

A21 A22 A23

A31 A32 A33

3

75 =

2

64B11 B12 B13

B21 B22 B23

B31 B32 B33

3

75

2

64C11 C12 C13

C21 C22 C23

C31 C32 C33

3

75

Premiere approcheChaque processus (I, J) calcule AIJ , avec I, J = 1, . . . , Nblk.

Algorithme parallele avec P = N2blk

processus (si memoire accessible partout)

Sur chaque processus (I, J) (avec I, J = 1, . . . , Nblk) :AIJ 0

for K = 1, . . . , Nblk doAIJ AIJ +BIKCKJ

end

19

Parallelisation du produit matriciel — Avec P = N2blk

processus [2/2]

Meilleure approcheChaque processus (I, J) stocke BIJ et CIJ et calcule AIJ , avec I, J = 1, . . . , Nblk.

Algorithme parallele avec P = N2blk

processus (moins de stockage)

Sur chaque processus (I, J) (avec I, J = 1, . . . , Nblk) :AIJ 0

for K = 1, . . . , Nblk doSi K 6= J : Recevoir BIK du processus (I,K) et stocker dans Btmp

Si K 6= I : Recevoir CKJ du processus (K, J) et stocker dans Ctmp

Si K = J : Envoyer BIJ aux autres processus (I, •) et Btmp = BIJ

Si K = I : Envoyer CIJ aux autres processus (•, J) et Ctmp = CIJ

AIJ AIJ +BtmpCtmp

end

DiscussionI Chaque processus calcule N2/N2

blkvaleurs de A.

I Besoin de Nblk etapes au total, 2Nblk blocs sont envoyes avec des

communications globales, mais pas sur l’ensemble du reseau.

A l’etape K : BIK pour I = 1 . . . P et CKJ pour J = 1 . . . P

Repartition parfaite des calculs et quasi-parfaite des donnees ! 20

Summary

I Parallel performance• Speedup, efficiency, Amdahl’s law

• Strong/weak scaling

• Run time, communication time, latency

• Surface/Volume effect

• 1D/2D/3D partitionning

I Dense linear algebra• BLAS 1, 2 and 3

• Parallel algorithm for 2, 4 and N2blk

processes

• Approach by block

• Easy and efficient parallelism!