Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs.
description
Transcript of 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
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)