calcul parallèle => partitionner les données en sous-groupes associés aux processeurs

31
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1

Upload: jesus

Post on 13-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P2. P1. P0. Importance du partitionnement :. P0. P0. P1. P1. P2. P2. P0. P1. P2. 1) Un algorithme de partitionnement/repartitionnement parallèle. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs.

P0 P2P1

Page 2: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Importance du partitionnement :

P0

P1

P2

P0

P1

P2

P0

P1

P2

Page 3: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

1) Un algorithme de partitionnement/repartitionnement parallèle.

2) Une méthode de parallélisation basée sur le repartitionnement et son application dans l’élaboration d ’un mailleur/remailleur parallèle.

Page 4: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Qualité d ’une partition :

- elle doit être équilibrée : le volume de calcul effectué par chaque processeur doit être sensiblement le même.

- elle doit minimiser les interfaces entre les sous-domaines de façon à minimiser le temps passé dans les communications.

Page 5: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

88865

8454

8433

8442

6531

54321\ qp

Exemple d ’une partition 2DExemple d ’une partition 2D

La partition

La charge des processeurs

Les communications

5857585857charge

54321domaine

Page 6: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Exemple d’une partition 3DExemple d’une partition 3D

La charge :La charge :

La partition :La partition : Les communications :Les communications :

52175806567760556055601952235049charge

87654321domaine

102943878

3581592167

10354131826

294354282125

35828501764

159131212503

387822

2161761

87654321\ qp

Page 7: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

La partition de La partition de maillage maillage

Sa vision simplifiée sousSa vision simplifiée sousforme de grapheforme de graphe

5252 2929

8888

200200502502

Un exempleUn exemple

Page 8: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

2 types de programmation :

- programmation maître-esclave

Un processeur dirige et donne du travail aux autres processeurs qui sont à ses ordres.

- programmation SPMD

Tous les processeurs exécutent le même programme. Il est cependant possible de simuler une programmation maître-esclave.

Page 9: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Principe généralPrincipe général : :

équilibrer les paires formées,

coupler les processeurs,

Étant donnée une partition :

Puis itérer.

5050

3434

101101

234234

5050

3434

101101

234234

142142

142142

6868

6767 142142

142142

6767

6868

Page 10: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

AlgorithmeAlgorithme général

Initialisation : un ensemble de personnes avec leur personnalitéUne variable logique : espoir tant que ( espoir ) faire pour chaque personne faire construction de son entourage recherche d ’une âme sœur dans son entourage

à l ’aide d ’une fonction amitié si âme sœur alors vie commune si pas de changement de sa personnalité alors déçu sinon déçu fin pour plus d ’espoir si toutes les personnes sont déçuesfin tant que

Page 11: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Algorithme de couplageAlgorithme de couplage

En entrée : - moi - mon entourage

En sortie : une variable de situation (ma position) qui égale : - mon âme sœur si je suis marié(e) - seul(e) si je n’ai trouvé(e) personne.

La preuve de cet algorithme repose sur le fait que :

- amitié est symétrique ; - amitiéa(b)=amitié(a,b) est injective ; - l’espace image de amitié est totalement ordonné.

Page 12: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Tests d ’efficacité avec une fonction coût simplifiée

Avec comme fonction de couplage :

2)(

1

1

d

dc ml

nF

où d

dlnm

1

)()(

1),(

bdomadomllbaamitié ba

Ici on utilise une fonction coût basée uniquement sur la charge des différents domaines :

Page 13: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Vitesse de convergence de l’algorithme suivant différents

paramètres

Page 14: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

La fonction coût générale

Avec comme fonction de couplage :

2)(

1

1

d

dc

l mln

F

où d

dlnm

1

)()(

1 ),( , bdomadom

llcbaamitié baba

nc

c

C.

.1

p

pii cc ,

)( CfFF cl

c La fonction coût devient :

Avec :

et

,

: une fonction de dans nR Rf

Page 15: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Précision sur la charge de travail :

La charge de travail d ’un processeur correspond à :p

pp s

dl

Où représente le nombre d ’opérations à effectuer,

et la vitesse du processeur.

pd

ps

Le nombre d ’opérations étant défini par :

noeudneleme

p ndedd )()(

)(ed )(nd (resp. ) étant le nombre d ’opérations associé à un élément (resp. à un nœud)

Page 16: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

R(e,n) est une relation élément-nœud donnant +/- de cohésion entre «e » et « n »

n2

n1

n3

e

R(e,n1)

R(e,n2)

R(e,n3)

100

1

1

Précision sur les communications :

Les communications sont représentées par un coût de communication élément-nœud :

))(()()())((, bEaNbNaEC ba

)(EOù E (resp N) représente l ’ensemble des éléments (resp nœuds) d ’un domaine. Et l ’ensemble des nœuds apparaissant dans l ’ensemble d ’éléments E.

Page 17: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

illustrations

S=1

S=8

S=4S=2

S=1

S=1

S=1

S=1

P(e)=1000

P(e)=1P(e)=1

Page 18: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Suppression des Suppression des composantes non connexes composantes non connexes

Une composante :

Sélection des éléments nœuds à migrer :

)()(

1),(

bdomadomnbnbbaamitié comp

abcomp

ba

Redéfinition de amitié :

-un ensemble d ’éléments et de nœuds ;-une taille (nb éléments + nb nœuds) ;

-un processeur hôte et un d ’accueil.

compE

compab

compba EE

Rq : la composante la plus grande d ’un domaine représentera ce domaine

compppE

Page 19: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Exemple d ’applicationExemple d ’application

Vue des domaines non connexes.

Page 20: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Exemple d ’applicationExemple d ’application

Un cas où la demi étape est nécessaire,

sinon inversion des corridors.

Page 21: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Suppression des corridors Suppression des corridors

Un corridor :

Sélection des éléments nœuds à migrer :

)()(

1),(

bdomadomnbnbbaamitié cor

abcor

ba

Redéfinition de amitié :

-un ensemble d ’éléments et de nœuds ;-une taille (nb éléments + nb nœuds) ;

-un processeur hôte et un d ’accueil.

corE

cor

baERq : un corridor de b dans a ne l ’est plus forcément après échange des corridors de a dans b, d’où l ’étape 1/2

corabE 2/1

Suivie parSuivie par

Page 22: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Deux méthodes de parallélisation :

- Une directe qui consiste à développé une version parallèle des opérateurs locaux ;

- Une autre itérative qui modifie la partition de façon à rendre actifs les opérateurs n’ayant pu être exécutés

ep

e OO

p

newp tq i

ni

Page 23: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Méthode de parallelisation Méthode de parallelisation d ’algorithmes locaux d ’algorithmes locaux

eO

)( ee

eOO

e

L ’algorithme à paralléliser :

où : est un opérateur élémentaire à support local .

p

p

Soit une partition du domaine :

peep O ,

peei pO ,les autres :1 2i

Page 24: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

La seconde se termine lorsque : ni

n

une illustration :

43

21

Page 25: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Utilisation du repartitionneur pourUtilisation du repartitionneur pourun mailleur/remailleur parallèleun mailleur/remailleur parallèle

Partitionner le domaine

Remailler à interfaces fixées chacun des sous-domaines

But : repartitionner le domaine de façonà équilibrer les sous-domaines et à bouger les interfaces, puis itérer.

Page 26: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Un exemple 2D

Page 27: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Un test en 3D

Raffinement uniforme par un facteur 2 d ’une barre .

Le but est atteint :

- la partition est identique ;

- la taille de maille divisée par 2

# proc 1 2 4 8 16

remeshing time (s) 1253 701 446 259 167repartitionning tme (s) 0 7 21 23 25total time (s) 1253 708 467 262 192speed-up 1 1,79 2,68 4,78 6,52efficiency 1 0,88 0,67 0,6 0,4

Page 28: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

En génération

maillage et partition initiaux :

un point relié à toutes les faces frontières.

maillage et partition intermédiaires :

la minimisation du volume n’est pas terminée.

Maillage final

conforme.

Page 29: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Un disque de frein ventilé

Maillage \ sousdomaine

Min Max Total

initial 7 756 9 504 106 046intermédiaire 40 843 47 332 516 000final 249 773 277 339 3 250 000

Page 30: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

Cas tests Conrod Pipe Connector Tap fitting Version originale 5820 43500 54500 Version avec DRAMA 4620 34040 36066

Un test et des comparaisons

Page 31: Calcul parallèle  => partitionner les données en sous-groupes associés aux processeurs

BibliographieBibliographie

Sur la programmation parallèle :

- PVM : « PVM3 user’s guide and reference manual » (1994)- MPI : « The Complete Reference Vol 1 (1995) et Vol 2 (1998) »- open MP : « The OpenMp application program interface (API) specification »  (1997)

Sur les méthodes numériques parallèles utilisées au CEMEF

- la thèse de Stéphane Marie « Un modèle de parallélisation SPMD pour la simulation numérique de procédés de mise en forme des matériaux » (1997)- la thèse d’Etienne Perchat « Mini-Elémént et factorisation incomplètes pour la parallélisation d’un solveur de Stokes 2D. Application au forgeage » (2000)