Théorie et pratique du parallélisme algorithmique

Programming, Math, etc. · textbook

Voir tous les documents en programmation

lisation

Parall lisation

thodologie de Parall

MMMM thodologie de

lisation

lisation

Parall

Parall

thodologie de

thodologie de

quentiels

Algorithmes S quentiels

ddddAlgorithmes S

quentiels

quentiels

Algorithmes S

Algorithmes S

Plan du cours

Plan du cours

Plan du cours

Plan du cours

lisation

parall lisation

1. Principe de parall

1. Principe de

lisation

lisation

parall

parall

1. Principe de

1. Principe de

2. Graphe de t ches

2. Graphe de t ches

2. Graphe de t ches

2. Graphe de t ches

3. Ordonnancement de t ches

3. Ordonnancement de t ches

3. Ordonnancement de t ches

3. Ordonnancement de t ches

parall lesleslesles

algorithmes parall

Complexit des des des des algorithmes

4. 4. 4. 4. Complexit

parall

parall

algorithmes

algorithmes

Complexit

Complexit

raux

sultats gggg nnnn raux

5. 5. 5. 5. RRRR sultats

rauxraux

sultats

sultats

lisation

parall lisation

1. Principe de parall

1. Principe de

lisation

lisation

parall

parall

1. Principe de

1. Principe de

Pour parall liser un algo sur une machine // donn e, on proc de comme suit :

(cid:1)

(cid:1)

(cid:1)

Partitionner lalgo en t ches (instructions ou groupes dinstructions) :

ce partitionnement peut tre fait automatiquement par programme ou

bien au cas par cas.

le graphe de pr c dence qui permet de d finir

Elaborer

les

contraintes temporelles pour lex cution des t ches et de rechercher

les t ches ind pendantes, susceptibles d tre ex cut es en parall le.

Ordonnancer ensuite les t ches sur les procs, en respectant les

contraintes de d pendances, ainsi que les contraintes mat rielles li es

larchitecture de la machine.

2

Remarque

(cid:1)

(cid:1)

(cid:1)

Un m me algo peut conduire plusieurs versions parall les

diff rentes suivant :

"

"

"

"

lacc s aux donn es,

le d coupage en t ches,

laffectation des t ches aux procs,

etc.

Certaines versions seront mieux adapt es une structure

dordinateurs.

Plusieurs facteurs peuvent influencer le choix de la meilleure (au sens

performances) version parmi toutes les versions parall les obtenues

pour la machine utilis e (voir plus tard).

3

2. Graphe de t ches

Publicité

2. Graphe de t ches

2. Graphe de t ches

2. Graphe de t ches

2.1. Notion de t che

(cid:1)

(cid:1)

(cid:1)

(cid:1)

t che est une unit de

Une

indivisible caract ris e

uniquement par son comportement ext rieur: entr es, sorties,

instructions et temps dex cution.

traitement

Le temps dex cution (ou dur e) dune t che est en g n ral la somme

de 2 termes: le temps de calcul et le temps de communications.

L tude des d pendances entre les t ches permet de construire un

syst me de pr c dence qui traduit le parall lisme interne lalgo.

Dans un tel syst me, 2 t ches sont soit li es par une relation de

leur ex cution est s quentielle) soit

pr c dence (dans ce cas

ind pendantes et leur ex cution peut tre effectu e en //.

4

2.2. Notion de granularit

Plusieurs d compositions diff rentes sont possibles pour un m me algo.

Exemple: Produit matriciel C=A*B

(cid:1)

Si nous prenons comme t ches les op rations l mentaires:

C(i,j) = C(i,j) + A(i,k) * B(k,j)

la granularit de la d composition est fine.

A B C

5

(cid:1)

Si chaque t che est le calcul dun l ment de C:

Pour k=1 n faire

C(i,j) = C(i,j) + A(i,k) * B(k,j)

la granularit de la d composition est moyenne.

A B C

6

(cid:1)

Si chaque t che correspond au calcul dune ligne ou dune colonne du

produit:

Pour j = 1 n faire

Pour k = 1 n faire

C(i,j) = C(i,j) + A(i,k) * B(k,j)

la granularit est grosse.

A B C

7

(cid:1)

Le choix de la meilleure d composition est un probl me difficile li aux

temps dex cution des t ches et larchitecture de la machine. Les

principaux facteurs de choix sont :

"

"

"

"

Le nombre de processeurs.

Le rapport entre unit de temps de communication et unit de

temps de calcul.

Les acc s m moire.

Etc.

8

2.3. Syst me de t ches

D finitions

(cid:1)

(cid:1)

Un syst me de t ches S=(T1,&,Tn,<<) est un ensemble de t ches

muni dune relation dordre partiel not e <<.

Ti << Tk (i`k) signifie que lex cution de la t che Ti doit tre termin e

avant que lex cution de Tk ne commence.

2 t ches Ti et Tk sont ind pendantes si elles ne modifient aucune

variable commune, sinon elles sont d pendantes.

Ti

Tk

ind pendantes

Ti

Tk

d pendantes

9

(cid:1)

(cid:1)

Les t ches Ti et Tk sont cons cutives sil nexiste aucune autre t che

Tj / Ti<<Tj<<Tk ou Tk<<Tj<<Ti.

Un syst me de t ches S=(T1,&,Tn,<<) est un syst me de pr c dence

si, pour tout couple de t ches cons cutives (Ti,Tk), une et une seule des

3 conditions suivantes est v rifi e :

"

"

"

Ti<<Tk.

Tk<<Ti.

Ti et Tk sont ind pendantes.

10

2.4. Graphe de pr c dence

D finition

(cid:1)

(cid:1)

(cid:1)

Le graphe de pr c dence G associ un syst me de pr c dence

S=(T1,&,Tn,<<) est d fini de la mani re suivante :

"

"

Publicité

Lensemble des sommets de G est lensemble des t ches de S.

Ti et Tk sont reli es par un arc ssi Ti et Tk sont cons cutives et

ordonn es par la relation <<.

Les contraintes de pr c dence qui lient les t ches ont un graphe de

connexion sans circuit (DAG : Directed Acyclic Graph).

En cas de d pendance, il faut respecter lordre s quentiel des t ches.

11

Construction du graphe de t ches

Exemple

Consid rons un algo compos de 8 t ches T1,&,T8 dont le syst me de

pr c dence associ est le suivant :

T1<<T3 T1<<T4 T1<<T5 T1<<T6 T1<<T7 T1<<T8

T2<<T3 T2<<T4 T2<<T5 T2<<T6 T2<<T7 T2<<T8

T3<<T7 T3<<T8

T4<<T6 T4<<T7 T4<<T8

T5<<T7

T6<<T8

12

En liminant les contraintes redondantes, on obtient lensemble de relations

suivantes:

T1<<T3 T1<<T4 T1<<T5

T2<<T3 T2<<T4 T2<<T5

T3<<T7 T3<<T8

T4<<T6 T4<<T7

T5<<T7

T6<<T8

13

Le graphe de pr c dence associ est le suivant :

T1 T2

T3 T4 T5

T6 T7

T8

14

3. Ordonnancement de t ches

3. Ordonnancement de t ches

3. Ordonnancement de t ches

3. Ordonnancement de t ches

3.1. Le probl me

(cid:1)

(cid:1)

(cid:1)

Dans un contexte

t ches (sous-

programmes, processus, fils dex cution, &) revient affecter chaque

t che :

informatique, ordonnancer des

Une date dex cution

Un processeur

"

"

(Sous contraintes de ressources ou non)

Le probl me de lallocation des t ches dun prog // un ensemble de

procs est tr s difficile.

On suppose ici quon connaisse les t ches (en particulier leur temps

dex cution ou une estimation de co t) et les relations de pr c dence

qui les lient entre elles.

15

3.2. Mod le de r f rence

(cid:1)

(cid:1)

Les t ches Tj (j=1..n) sont caract ris es par une dur e dex cution, et

ventuellement par une date au plut t ou une date au plus tard.

On sinterdit la pr emption: possibilit dinterrompre lex cution dune

t che commenc e.

3.3. Objectif

(cid:1)

Le plus courant objectif r aliser est de minimiser la fonction qui

repr sente le temps dex cution total (le makespan).

16

Exemple pr c dent avec p=3 et t ches identiques

un 1er ordonnancement peut tre repr sent par le diagramme de Gantt suivant :

T1 T2

Processeurs

T3 T4 T5

P3 T5 T7

T6 T7

P2 T2 T4 T6

Temps libre

(temps dinactivit )

P1 T1 T3 T8

Temps

Makespan (Cmax)

T8

Graphe de t ches Diagramme de Gantt associ

17

Exercice

Soit le code suivant :

For i=1,n

T che Ti : X(i) = B(i)/A(i,i)

For j=i+1,n

T che Ti,j : B(j) = B(j) A(j,i) * X(i)

Fin

Fin

1. Que fait-il un tel programme?

2. D terminer lordre s quentiel des t ches

3. Repr senter le graphe des t ches

18

des algorithmes parall lesleslesles

4. Complexit des algorithmes parall

4. Complexit

des algorithmes parall

des algorithmes parall

Publicité

4. Complexit

4. Complexit

(cid:1)

(cid:1)

(cid:1)

La complexit a t connue tre la plus importante mesure de

performances dun algorithme.

Lanalyse de la complexit // permet de mesurer lefficacit des algos //s

et de les comparer.

influen ant

la performance peuvent tre mesur s

Les crit res

quantitativement comme suit:

Temps dex cution.

"

Nombre de processeurs.

"

Le co t de lalgorithme ( = temps dex cution * nombre de

"

processeurs) .

19

(cid:1)

(cid:1)

Le type darchitecture // quon a suppos (MIMD m moire partag e)

est id alis au sens o pour valuer la vitesse dun algo //, on n glige

les temps de transfert des donn es.

On dit, sous ces hypoth ses, quun algo est optimal si son temps

dex cution est minimal parmi toutes les versions possibles.

Remarques

(cid:1)

Il peut exister plusieurs algos n cessitant des nombres diff rents de

procs qui sex cutent en temps optimal.

(cid:1)

//,

En algorithmique

suppl mentaire du Pb.

le nombre p de procs est un param tre

20

D finitions fondamentales

(cid:1)

(cid:1)

(cid:1)

(cid:1)

Le probl me fondamental de la parall lisation dune m thode de calcul

est de trouver un ordonnancement optimal pour affecter les t ches aux

procs en respectant le graphe de pr c dence, de telle fa on que lalgo

// sex cute en temps minimal (que lon note topt) sur un nombre infini de

procs.

Dans une phase ult rieure, d terminer le nombre minimum de procs

(popt) n cessaires pour effectuer lalgo en topt.

Enfin, tant donn un nombre p fix de procs, on doit tre en mesure

de trouver un algo optimal.

Les r sultats asymptotiques sont obtenus quand n -> (n tant la taille

du probl me).

21

(cid:1)

(cid:1)

On dit quun algo est asymptotiquement optimal quand E est max (E

tant lefficacit asymptotique).

Pour concevoir des algorithmes parall les fficaces, on doit consid rer

les r gles g n rales suivantes:

"

"

"

Le nombre de processeurs doit tre born par la taille du probl me.

Le temps dex cution parall le doit tre consid rablement inf rieur

au temps dex cution du meilleur algo s quentiel.

Le co t de lalgorithme est optimal. (attention: utiliser plus de

processeurs peut augmenter le co t de lalgo).

22

raux

sultats g nnnn raux

5. R5. R5. R5. R sultats g

raux

raux

sultats g

sultats g

5.1. D compositions du graphe de pr c dence

(cid:1)

(cid:1)

(cid:1)

(cid:1)

Supposons pour simplifier que toutes les t ches ont le m me temps

dex cution (on le prend gal 1). On parle alors de t ches UET (Unit

Execution Time).

Le temps dun chemin du graphe de pr c dence est la somme des

temps dex cution des t ches qui le composent.

Le plus long chemin du graphe de pr c dence est celui dont le temps

dex cution est le plus grand.

La hauteur H(G) du graphe des t ches est le nombre de t ches du plus

long chemin.

23

(cid:1)

On appellera d composition en niveaux du graphe des t ches,

lensemble :

D(G)={N1,&,NH(G)}

qui constitue une partition en H(G) sous-ensembles (niveaux) des

sommets de ce graphe v rifiant les conditions suivantes:

"

"

"

Le niveau 1 est constitu de t ches nayant aucun pr d cesseur.

Publicité

Le niveau k est constitu de t ches dont tous les pr d cesseurs sont

dans des niveaux inf rieurs et dont tous les successeurs sont dans

des niveaux sup rieurs.

Le niveau H(G) est constitu de t ches nayant aucun successeur.

Remarque

Un m me graphe peut admettre plusieurs d compositions en niveaux.

24

(cid:1) On

appellera d composition par pr d cesseur Dp(G)

la

d composition en niveaux suivante:

"

"

Le niveau 1 est constitu de toutes les t ches nayant aucun

pr d cesseur.

Pour k=2 H(G), le niveau k est constitu des t ches dont tous les

pr d cesseurs sont dans des niveaux inf rieurs et ayant au moins

un pr d cesseur dans le niveau k-1.

(cid:1)

Cette d composition est aussi appel e d composition au plus t t.

Exemple

Niveau(1) = {T1,T2}

Niveau(2) = {T3,T4,T5}

Niveau(3) = {T6,T7}

Niveau(4) = {T8}

25

(cid:1)

De m me, on appellera d composition par successeur Ds(G) la

d composition en niveaux suivante:

"

"

Le niveau H(G) est constitu des t ches nayant aucun successeur.

Pour k=H(G)-1 1, le niveau k est constitu des t ches dont tous les

successeurs sont dans des niveaux sup rieurs et ayant au moins un

successeur dans le niveau k+1.

Cette d composition est aussi appel e d composition au plus tard.

Exemple

Niveau(1) = {T1,T2}

Niveau(2) = {T4}

Niveau(3) = {T3,T5,T6}

Niveau(4) = {T7,T8}

26

Autres d compositions possibles :

Niveau(1) = {T1,T2}

Niveau(2) = {T3,T4}

Niveau(3) = {T5,T6}

Niveau(4) = {T7,T8}

Niveau(1) = {T1,T2}

Niveau(2) = {T4,T5}

Niveau(3) = {T3,T6}

Niveau(4) = {T7,T8}

27

(cid:1)

On appellera largeur dune d composition D(G) le maximum des

cardinaux des niveaux :

L(D) = max(|Nk|), pour k = 1..H(G)

(cid:1) On appellera en fin largeur L(G) du graphe le min des largeurs des

d compositions de G :

L(G) = min(L(D))

28

5.2. T ches UET

On tudie dans ce paragraphe le temps de calcul et le nombre de

processeurs optimaux (topt et popt) pour ex cuter un algo //.

D termination de topt et de popt

Th or me

(1) Avec un nombre illimit de procs, le temps topt dun algo // optimal est

gal au temps dex cution du plus long chemin du graphe des t ches,

c- -d H(G) (sans communications).

(2) Le nombre minimal de procs popt permettant de r aliser un algo

sex cutant en temps topt est gal la largeur L(G) du graphe des

t ches.

29

Exemple

Consid rons le graphe de t ches 8 t ches et supposons que toutes

les t ches sont UET.

Le plus long chemin (T1-T4-T6-T8 ou T2-T4-T6-T8) a un temps

dex cution = 4 et par cons quent topt = 4.

A chacune des 4 d compositions en niveaux correspond un algo //.

30

D composition par pr d cesseur D composition par successeur

sa largeur = 3

sa largeur = 3

P3 T5 T7

P2 T2 T4 T6

P3

T5 T7

P2 T2 T4 T6

P1 T1 T3 T8

P1 T1 T3 T8

31

Autres d compositions :

largeur = 2

largeur = 2

P2 T2 T4 T6 T8 P2 T2 T5 T6 T8

P1 T1 T3 T5 T7 P1 T1 T4 T3 T7

Do , popt = 2

32

Nombre fix de processeurs

(cid:1)

Probl me difficile (voir plus loin) !

33