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

Post on 13-Jan-2016

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

P0 P2P1

Importance du partitionnement :

P0

P1

P2

P0

P1

P2

P0

P1

P2

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.

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.

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

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

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

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.

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

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

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é.

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 :

Vitesse de convergence de l’algorithme suivant différents

paramètres

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

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)

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.

illustrations

S=1

S=8

S=4S=2

S=1

S=1

S=1

S=1

P(e)=1000

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

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

Exemple d ’applicationExemple d ’application

Vue des domaines non connexes.

Exemple d ’applicationExemple d ’application

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

sinon inversion des corridors.

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

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

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

La seconde se termine lorsque : ni

n

une illustration :

43

21

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.

Un exemple 2D

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

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.

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

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

Un test et des comparaisons

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)

top related