• Aucun résultat trouvé

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

N/A
N/A
Protected

Academic year: 2022

Partager "C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n"

Copied!
9
0
0

Texte intégral

(1)

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

Machine UMANoeud SMP Probmesde gros grain

1 wwwid.imag.fr/Laboratoire/Membres/Roch_JeanLouis/perso.html/enseignement.html/

Fichiercompressé Fichieren entrée

Compressionà la voe Gzip séquentiel

Partition dynamique en blocs

C o m m en t p ar al lé lis er g zi p ?

Parallélisation

Blocscompressés Compressionparallèle Partition en blocs

2 Comment choisir les blocs ?

Objectif cours 2: programme parallèle tel que Tp ≈ (Tseq/ p ) +ε Base : algo parallèle + ordt “glouton” [cours 1] Tp < (T1 / p ) + T∞ ... mais T1

>

> Tseq

Techniques pour limiter le surcoût dû auparallélisme

3

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

I. Introduction

II. Contrôle de la granulari

III. Mise en oeuvre de l’ordonnancement

IV. Application: recherche arborescente Contrôle de l’espace mémoire

4 Machine UMANoeud SMP Probmesde gros grain

(2)

1 . C o n tr ô le d e la g ra n u la rit é

Limiter le surcoût dû au parallélisme :

T1 : temps de l’algorithme paralle

Tseq : temps du « meilleur » algo séquentiel

Objectif : T1 = Tseq

Mais en gardant T aussi petit que possible

5 C. Leiserson : « A minicourse on multithreaded algorithms »supertech.lcs.mit.edu/cilk/papers ftp://theory.lcs.mit.edu/pub/cilk/minicourse.ps.gz

J.L. Roch : « Parallel efficient algorithms and their programming »wwwid.imag.fr/~jlroch/perso.html/ps/polycopalgopar.ps.gz p.422

A d ap te r l a g ra n u la rit é

Utiliser un algorithme séquentiel pour limiter le parallélisme

Découpe récursive parallèle

=> Stopper la découpe récursive à un seuil K

Exemple : produit itéré en Cilk

Cilk void ParProduit (int i, int j, int& res ) { if ( ji < K ) { res = SeqProduit(i,j) ; } else { int r1, r2 ; spawn ParProduit ( i, (i+j)/2, r1 ) ; spawn ParProduit ( (i+j)/2+1; j , r2 ) ; sync ; res = r1 * r2 ; } } int SeqProduit (int i, int j) { int r = 1; for (int s = i ; s <j; s++ ) r = r*s ; return r ; }

6

C h o ix d u s eu il K

Compromis séquentiel/parallèle

Expérimentalement

Théoriquement :

K le plus grand possible sans perte de parallisme

K qui minimise T1 ) avec T )=Θ(T )

Exemple : produit ité

7

E x em p le 2 : P ré fix e p ar al lè le

Entrée : X[0..n−1] un tableau d’éléments * : loi associative

Sortie : Π[0..n−1] avecΠ[k] = X[0] * ... *X[k]

Démarche :

1/ Algorithme quentiel de rence : SeqPrefixe

2/ Parallisation : algorithme ParPref13/ Adaptation de granularité : algorithme ParPrefK4/ Choix de K : compromis théorie pratique

8

(3)

E x em p le 3 : g zi p

TailleBloc := ... ;for( i=0; i<n/TailleBloc ; i++) Fork<gzip>( Fich[i*TailleBloc ... min (n, (i+1)*TailleBloc 1 ] ;

Choix de K :

Expérimental

TailleBloc ~ 0.5 Mo

Théorique :

TailleBloc ~

Théorique :

TailleBloc ~

9 4 processors computer

0 10 20 30 40 50 60 70 80 90

1,1062,0892,2634,2606,7697,9058,96010,95715,96219,29821,914

Size of file (Ko)

Time (in seconds)

Sequential gzip

Athapascan gzip

E x em p le 4 : ex er ci ce T ri p ar f u si o n

10 C. Leiserson : « A minicourse on multithreaded algorithms » ftp://theory.lcs.mit.edu/pub/cilk/minicourse.ps.gz p 912

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

I. Introduction

II. Contrôle de la granularité => Généralisation : algorithmes en cacade

III. Mise en oeuvre de l’ordonnancement

IV. Application: recherche arborescente Contrôle de l’espace mémoire

11 Machine UMANoeud SMP Probmesde gros grain

Je u : C al cu le r l e m ax im u m

But : construire le circuit le plus rapide possiblepour calculer le maximum : Entrée : n éments a

Sortie : l’élément maximum i distincts (ordre total <)

Portes disponibles

Arité non−bornée : wireless comm: multiple access (SDMA/FDMA/CDMA) CRCW : Concurrent Read Concurrent Write AndOrMax< ?

12

(4)

C o û ts e t al g o rit h m es u ltr a− ra p id es

0 5E+42 1E+43 1,5E+43 2E+43 2,5E+43 3E+43

102030405060708090100 exp n

n

Log n

LogLog n

13

C ir cu it sé q u en tie l d e b as e

T1 = n #procs = n portes Max

Max

Max an a2 res :=a1 ;

For i :=2 .. n do res := Max ( res, an )

;Return res; a1a2

Circuitseq

14

C ir cu it p ar al lè le

T1 = log2 n #procs = n portes Function max2(ai .. ak ) { if (i == k) return ai ; else { PARALLEL { rl = max2(ai .. a(i+k)/2 ) ; rh = max2(a(i+k)/2+1 .. ak); } return Max( rl, rh ) ;} ana1a2a3a4

Max

Max

Max MaxMax

Max Max

Circuitpar

15

ak = Max(a1 .. an ) ak > ai i=1..n, i /= k

U n c ir cu it u ltr a− ra p id e p o u r t es te r s i u n é lé m en t a

k

e st le m ax

< ?< ?< ? aka1aka2 akan

Multiple Access OR

T1 (n) = O(1)

#portes = O(n)

Vrai ssi ak n’est pas maximum CircuitTest

16

(5)

A p p lic at io n : c al cu l d u m ax im u m

T1 (n) = O(1)

#portes = O(n 2)

CircuitTest a1

an

a1CircuitTest CircuitTest a1

ana1

ana2an

Seulement 1 écriture pour calculer le maximum

CircuitCste

17

U n c ir cu it re cu rs if u ltr a− ra p id e

Time(n) = Time(n0.5) + O(1) = loglog n

#procs (n) = n0.5.#procs(n0.5) = n loglog n CircuitRec a1

a n

CircuitRec CircuitRec a n+1

a2 nan n

an

CircuitRec Max(a1 a n)Max(a n+1

a2 n

)

Max(an n

an )

CircuitCste

on only sqrt(n) = n elts 0.5

18 Granularité : utiliser l’algo rapide pour accélérer

R éd u ct io n d u n o m b re d e p o rte s

Granularité: utiliser un algo économique pour réduire le nombre de portes

Circuitseq a1

a loglog n

Circuitseq Circuitseq a loglog n+1

a2 loglog nan loglog n an

CircuitUltra Max(a1

a loglog n) Max(aloglog n+1

a2loglog n

) Max(anloglog n an

)

Circuitrec on only n/loglog n elts

19

C o n cl u si o n : u n a lg o u ltr a− ra p id e

Algorithme final : temps = loglog n #portes=n

Technique utilisée : « cascading » mélange de 3 algorithmes pour construire uncompromis plus performant : temps et nombre de portes

Technique importante en parallélisme (adaptationde granularité)... et en génie logiciel −> nombreuses applications :[ATLAS, FFTW, ...]20

(6)

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

I. Introduction

II. Contrôle de la granularité

III. Mise en oeuvre de l’ordonnancement

IV. Application: recherche arborescente Contrôle de l’espace mémoire

21 Machine UMANoeud SMP Probmesde gros grain

P rin ci p e

Lancement de p threads

1 thread == processeur virtuel

Chaque thread :

While (not fin)

Attendre une tache t prete

L’exécuter

Liste centralisée + verrou :

Tp < (T1/ p ) + T + O(#sync)

22

S u rc o û t p o u r r éa lis er l o rd o n n an ce m en t

Contrôle : cation/placement/entrelacement desches gestion de la mémoire, mouvements de données

pemptivité, réactivité

Exemple : algorithme cursif dexploration

Ordonnancement glouton : théorique = OK

Mais réalisation ???

Nombre de ches ~ T1

Mémoire ~ 2h

en séquentiel ~ hh

23

W o rk st ea lin g D is tr ib u er le s s y n ch ro n is at io n s

1 liste de taches ptes par processeur :

Lorsqu’un thread ce une che, il l’ajoute à sa liste locale.

Lorsqu’un processeur est inactif :

Si il n’y a plus de tache pte localement

Choix d’un processeur victime

Lui voler une che pte

Choix : exemple [Cilk]

Processeur victime : au hasard

Accès à la liste desches ptes : verrou arithmétique

24

(7)

W o rk st ea lin g M in im is er le s u rc o û t d ’o rd t

=> Minimiser le nombre de vols

Programmes récursifs = graphe « sérieparalle »

Principe : exécution localement d’abord

=> sur chaque proc. : les vols sont sur un chemin critique #vols <p.T

Optimisation : création locale dégénérée en appel de fonction

Exemple : produit ité

25

Légende: SMP : due = f( seuil )

_ temps séquentiel _ pour 1 processeur _ pour 2 processeurs26

O rd o n n a n ce m en t S M P C o n cl u si o n

Théorique : si programme rieparalle[Blumofe98] Tp < (T1/ p ) + T + p.T

Pratique : contrôle automatique de granularité

Exemple : arbre ~106ches de grain 1

Sans dégénérescence séq[Ath1]

Avec dégénérescence séq[Cilk]

××Ath1 Cilk

C o u rs 2 . A lg o rit h m es P ar al lè le s s an s c o m m u n ic at io n

I. Introduction

II. Contrôle de la granularité

III. Mise en oeuvre de l’ordonnancement

IV. Application: recherche arborescente Contrôle de l’espace mémoire

27 Machine UMANoeud SMP Probmesde gros grain

P ar al lé lis m e et e x p lo si o n m ém o ir e

28 R. Blumofe C. Leiserson : « Space−efficient scheduling of multithreaded computations » SIAM Journal of computing, vol 27, Fév. 1998 p. 207229G. Narlikar : « Space−efficient scheduling for parallel multithreaded computations » thèse www2.cs.cmu.edu/~girija/publications.htmlF. Galilée : « Athapascan1 : Interptation distribuée du flot de donnée d’un programme paralle » Thèse de doctorat INPG P 113127 : wwwid.imag.fr/~jlroch/perso.html/ps/these−galilee_pages113151.ps.gz

(8)

U n e x em p le

void explore( nud n, ) { if { for (s =n.first(); s <n.last(); n++) { dopar explore( s, ) ; }

} h

T1 : temps séquentiel T= O(h)

S1 = O(h) Texec(p

) ~1 T /p

Sexec(p) ~S1 O(1) che

? ? ?

29

P ro g ra m m e sé rie − p ar al lè le

Work−stealing:

Si inactif : tirage au hasard d’un proc victime Pv

La che voe est la plus ancienne sur Pv

Chaque processeur vole des tâches sur unchemin critique : espace mémoire < S1 / proc Sp < p.S1

Exemple :

Cilk : Joueur d’échecs Socrates

Athapascan : Visualisateur Mandelbrot

30

E t l a co n so m m at io n m ém o ir e ?

Calcul récursif : Découpe en 4

découpes de l’image

découpes du calcul

affichageaffichageS1 = logn + un morceau d’image = 78 ko allocations

31

S2

= 548ko

S1

= 78ko

arbitraire

p0p1

seq loc seq glob

S2

= 143ko

S1

= 78ko

O rd re d ’e x éc u tio n d es tâ ch es p = 2

S1 = logn + un morceau d’image = 78 ko

32

Références

Documents relatifs

de 8 mm Option verre : fumé ou sablé 4 charnières Norme PMR avec passage libre de 90,5 cm. 2087 x 1020 x 71 cm (cabine en 2,17 m) 2002 x 1029 x 71 cm (cabine en 2,09 m)

Rappelons qu'un faisceau f sur X d'espaces vectoriels complexes de dimension finie est dit constructible s'il existe une stratification de Whitney Uiei X~ de Xtelle

Ne dépendant pas de l'accès à im réseau électrique, ü est très peu gourmand en énergie : il fonctionne à l'aide de trois piles standard AAA sur une puce Intel Strong/ARM

Au-delà d’un programme exceptionnel au niveau de la participation des groupes de danse, de chant et des sports traditionnels, le monde culturel vous ouvre aussi les portes

• C’est ce que nous essayons de proposer avec ce projet : habiter à proximité d’une gare pour celles et ceux qui se déplacent en train, avoir la possibilité de cultiver des

• On considère une roue de rayon R et dʼaxe OOʼ horizontal ; cette roue roule sans glisser sur un plan horizontal, et OOʼ (de longueur ρ ) tourne autour de lʼaxe Az

Using the Torelli-type theorem Kond¯ o proved in [Kon99] that the maximal order of a finite group of automorphisms of a K3 surface equals 3840.. Section 7 is devoted to deriving

In Section 9, we have proved the semi-uniform stabilization for the semilinear damped wave equation in the case of the disk with two holes. In Figure 9.1, we have seen that if the