26 Novembre 2009 Club CAST3M

publicité
Calcul parallèle haute performance dans
CAST3M
Jean-Yves COGNARD
Pierre VERPEAUX
1 – Problématique
2 – Résolution parallèle de problèmes non linéaires d’évolution
3 – Environnement de programmation parallèle
4 – Résolution des problèmes linéaires de grande taille
5 – Problèmes non linéaires de grande taille
6 – Conclusions
26 Novembre 2009
Club CAST3M - Paris
1 – Problématique
Développement d’applications parallèles



Ordinateurs puissants  Architecture parallèle (INTEL, AMD ...)
 Développements complexes
 Performance / Portabilité
 Différentes architectures : Langage de programmation ?
 Utiliser les codes existants
Développement d’applications parallèles
 Algorithmes parallèles “Mécanique”
 Bonnes performances & Bon équilibrage des charges
 Environnement de programmation parallèle
 Système indépendant du type d’ordinateur
 Assurer la cohérence des données
 Compatibilité des versions séquentielle et parallèle
Le but est de résoudre « rapidement » des problèmes de grande taille
 Large classe de problèmes non linéaire en quasi-statique
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Problème à résoudre

Le problème à résoudre est non linéaire et d’évolution
 Découpage de l’intervalle de temps en incréments

Problème non linéaire et stationnaire par incrément
 Algorithme de type NEWTON
 Procédure à deux étapes
 Etape 1: Intégration de la loi de comportement
 Problème non-linéaire local
(point d’intégration)
 Etape 2: Correction en déplacement
 Problème linéaire global
(Ki qi = Ri )
 Test de convergence
1
3
sk-1 s k
2
t k-1 t k
26 Novembre 2009
Club CAST3M - Paris
T
2 – Résolution parallèle de problèmes non linéaires d’évolution
Cout des simulations non linéaires

40
35




Wall-clock
time »(hour)
Temps
« horloge
(heures)
30
25
20
15
10
5
0
14
viscoplastique
Chargement monotone
80 incréments
270 itérations (Newton)
80 factorisations
Wall-clock
time (hour)
Temps
« horloge
» (heures)
RESO
12
INTG
10
RESO
INTG
TOTA
8
TOTA
6
4
Nombre
deofDDL
Number
DOF
2
Nombre
Numberde
of DDL
DOF
0
0

Traction
- torsion matériaux
Comportement

Non-linéarités
& géométriques
Non-linéarités matériaux
 1 cycle de chargement
 50 incréments
 280 itérations (Newton)
 1 factorisation
100000
200000
300000
0
25000
50000
75000 100000
Contrainte
équivalente
de Mises
Résolution des problèmes globaux linéaires & Intégration de la loi de comportement
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Résolution parallèle de problèmes non linéaires d’évolution

Approche Mécanique : 2 principaux points
 Résolution des problèmes linéaires globaux
 Techniques de type décomposition de domaine (choix?)
 Algorithmes de type Quasi-Newton pour réduire le coût numérique
Utilisation des déplacements précédents  une meilleure solution
déplacements vérifiant « bien » les conditions cinématiques
Choix : résolution directe du problème condensé
 Intégration de la relation de comportement (problème local non linéaire)
 Bon équilibrage des calculs
 Limiter les rééquilibrages dynamiques
 Limiter les communications
Choix : utilisation d’un second découpage
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement

Modèle viscoplastique anisotherme
 Modèle de Chaboche avec écrouissage cinématique et isotrope
 Chargement découpé en 10 incréments
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement

Déformation plastique cumulée & temps CPU par élément (par incrément)
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement

Temps CPU par élément & temps CPU par sous structure (par incrément)
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement

Temps CPU par élément & temps CPU par blocs d’éléments (par incrément)
26 Novembre 2009
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement

8
Coût numérique pour 8 processeurs
Temps
horloge
total Time
normalisé
Relative
Total CPU
7
6
5
4
3
2
inc 10
inc 9
inc 8
inc 7
inc 6
inc 5
inc 4
inc 3
inc 2
inc 1
Décomposition
de domaine
1
0
Sequential Décomposition
Domains
Séquentiel
de domaine
26 Novembre 2009
Blocs
Blocs
d’éléments
Blocs
d’éléments
Club CAST3M - Paris
2 – Résolution parallèle de problèmes non linéaires d’évolution
Intégration en parallèle de la loi de comportement


Problème 3D
 Décomposeur automatique
 4 processeurs
Temps horloge normalisé
2.5
Equilibrage
Sous-domaines
Sous-domaines
Sous-domaines
Sous-domaines
des calculs ?
Blocs d'éléments
2.0
Blocs d’éléments
1/1
1/2
1.5
1.0
0.5
Numéro
Numero du processeur
0.0
1
2
44
33
Utilisation d’un second découpage :
Blocs d’éléments
26 Novembre 2009
Club CAST3M - Paris
1/8
3 – Environnement de programmation parallèle
Code Eléments Finis CAST3M

Code Eléments Finis orienté « objets »
 Différentes applications : Structure, Fluide…
 But : Faciliter le développement de nouveaux algorithmes

Entités
 Objets dans la base de données  NOM, TYPE, VALEUR
MAILLAGE, MODELE, CHAMPS (Nœuds, Eléments), ...
 OPERATEURS  +, -, SURF, RESO, TRAC, …
RESULTATS = OPERATEUR OPERANDES ;
 PROCEDURES  fonctions utilisées comme les OPERATEURS

Regroupement d’opérations sur les objets
Interface utilisateur
 Langage de programmation : ESOPE
 Parallélisation
 Fortran 77 + Extensions + Gestion de la mémoire
 Langage de commande : GIBIANE
 Parallélisation
 Boucles, tests, procédures
26 Novembre 2009
Club CAST3M - Paris
3 – Environnement de programmation parallèle
ESOPE : Mémoire Virtuelle Programmée

Structuration des données (C, F90, …) : FORTRAN 77 + Extensions …
SEGMENT PSEG
Allocation Pseudo-dynamique de la mémoire
INTEGER LIST(N1)
SEGMENT : 1 pointeur
REAL*8 TAB(N1,N2)
END SEGMENT
N1 = 10 ; N2 = 15
SEGINI PSEG
initialisation
LIST(1) = 0
(PSEG.LIST(1)=0)
SEGDES PSEG
mode « inactif »
SEGACT PSEG
mode « actif »
SEGSUP PSEG
libération de la mémoire

Peut déplacer un SEGMENT non utilisé de la Mémoire vers le Disque
(mode « inactif » : SEGDES)
Rappel des SEGMENTS si nécessaire  sans demande explicite de l’utilisateur
(activation de l’objet : SEGACT)

26 Novembre 2009
Club CAST3M - Paris
3 – Environnement de programmation parallèle
ESOPE Parallèle : Mémoire Virtuelle Partagée Programmée

Ré-utilisation directe du code séquentiel (ESOPE)
 Tous les segments sont partagés
 Limiter le nombre de nouvelles instructions

Limiter les phases d’attente et d’éventuels blocages
 SEGACT PSEG
mode « lecture seule »
 SEGACT PSEG*MOD mode « écriture »
Implémentation de dialogues complexes entre applications
 SEGACT PSEG*(MOD,R=N1,W=N2) activations conditionnelles
possible après N1 SEGACT PSEG
N2 SEGACT PSEG*MOD
par une autre application
Assurer la cohérence des données & Cacher le transfert des données
 Utiliser les propriétés des Segments en mode « lecture seule » et « écriture »
 Segment en mode « écriture »

une seule copie
 Segment en mode « lecture seule »

plusieurs copies
 Transfert en une seule opération du bloc de données demandé


26 Novembre 2009
Club CAST3M - Paris
3 – Environnement de programmation parallèle
ESOPE 2000 : Mémoire Partagée (SMP)
 Les applications partagent la même mémoire
 Synchronisation en utilisant les « pthreads »
 Exemple : requête en mode « écriture »
Application A1
SEGACT PSEG*MOD   (PSEG : A2 « écriture »)
Mode « attente »
surveillance de PSEG
Travail…
…
Etude PSEG queue 
Propriétaire de PSEG   A1 peut continuer
Travail…
Travail…
26 Novembre 2009
Application A2
SEGACT PSEG*MOD
(PSEG utilisé par A2)
Travail…
 SEGDES PSEG
Club CAST3M - Paris
4 – Résolution de problèmes linéaires de grande taille
Résolution de problèmes linéaires de grande taille

Limiter le coût numérique lorsque le nombre de DDL augmente (plus de 105)
 Limiter le remplissage de la matrice de rigidité lors de la factorisation
 Encombrement de la matrice factorisée pour un cube avec N nœuds
N 1.67 pour une méthode de type Cuthill Mac Kee
N 1.34 pour une méthode de type Nested dissection
 Nested dissection


 Partition récursive du maillage en 2 zones
Numérotation des nœuds : zone 1, zone 2, interface
 Minimiser l’encombrement de la matrice :
Equilibrage des zones & minimiser la taille des interfaces
Problème d’optimisation résolu par une méthode de Monte Carlo
Similaire à une technique de décomposition de domaine
Solveur direct parallèle :
version “Multithreads” en mémoire partagée
26 Novembre 2009
Club CAST3M - Paris
4 – Résolution de problèmes linéaires de grande taille
Le cube

Remplissage de la matrice factorisée & Coût de la factorisation
Cuthill-McKee :
minimisation de la
largeur de bande
Nested dissection :
limiter le remplissage
de la matrice
1,0E+10
1,0E+05
Nombre
d’éléments
Temps CPU pour la factorisation
Nombre
d’éléments
num ber of
elem ents
CPU timCPU
e (s) (s)
Temps
Nested
Cuthill
Nested
1,0E+09
1,0E+04
1,0E+08
1,0E+03
num ber
dof
Nombre
deofddl
1,0E+07
1,0E+04
1,0E+05
26 Novembre 2009
1,0E+06
1,0E+07
Cuthill
num ber
dof
Nombre
deofddl
1,0E+02
1,0E+04
1,0E+05
1,0E+06
1,0E+07
Club CAST3M - Paris
4 – Résolution de problèmes linéaires de grande taille
Eprouvette de traction-torsion

Remplissage
Nested dissection
Cuthill-McKee
1,0E+10
num
ber of d’éléments
elem ents
Nombre
1,0E+09
Nested
Cuthill
1,0E+08
1,0E+07
Nombre
deofddl
num ber
dof
1,0E+06
1,0E+04
26 Novembre 2009
1,0E+05
1,0E+06
Club CAST3M - Paris
5 – Problèmes non linéaires de grande taille
Distribution des calculs - GIBIANE

Opérateur ASSIstant (parallélisation au niveau utilisateur)
 Soumettre un travail « élémentaire » à un « ASSISTANT »
 Assurer la cohérence des données & Limiter les phases d’attente
 Développé à partir de l’environnement de programmation ESOPE
Assistant 1
CAST3M
‘OPE1’ OBJ1;
Validation résultats
‘OPE2’ OBJ3;
* Travail pour A1 et A2
OBJ3 = ‘ASSI’ 1 ‘OPE1’ OBJ1;
OBJ4 = ‘ASSI’ 1 ‘OPE2’ OBJ3;
OBJ5 = ‘ASSI’ 2 ‘OPE2’ OBJ2;
….
* Attente automatique
OBJ6 = OBJ3 ‘ET’ OBJ5 ;
….


Serveur
ESOPE
Validation résultats
Assistant 2
‘OPE2’ OBJ2;
Validation résultats
Mode « DataFlow » : Lancer l’opération – ne pas attendre le résultat
Mode « Data Parallèle » : Option ‘TOUS’ (Sous structuration)
26 Novembre 2009
Club CAST3M - Paris
5 – Problèmes non linéaires de grande taille
Implémentation parallèle pour une itération
Maître - Séquentiel
Gestion des calculs
Pb Complet
Maître – Assistant (n° I1)
Pb Interface Décomp Dom Blocs Elém
Correction du vecteur déplacement
FEQ1 = ‘ASSI’ ‘SUPE’ … RES1 ;
 RES1
FEQ1 . i1
Condensation du second membre
FEQ2 = ‘ET’ FEQ1 ;
 FEQ1
DEP2 = ‘RESO’ RIG2 FEQ2 ;
FEQ2
Montée - Descente
DEP2
DEP3 = ‘ASSI’ ‘SUPE’ … DEP2 ;
 DEP2
Remontée
DEP3 . i1
Accélération de convergence
DEP4 = ‘ASSI’ ‘TOUS’ …. ;
DEP4 . i1
DEP0 = DEP0 ‘+’ DEP4 ;
 DEP4
Déplacement
DEP0
Intégration de la loi de comportement & Test de convergence
SIG1 EPS1= ‘ASSI’ ‘ECOU’ DEP0;
 DEP0
FIN1 = ‘ASSI’ ‘BSIG’ SIG1 ;
EPS1 . i1
SIG1 . i1
Contribution des forces internes
FIN1 . i1
FIN2 = ‘ET’ FIN1 ;
 FIN1
Assemblage des forces internes
FIN2
 FIN2
RES1 = ‘ASSI’ ‘-’ FEX1 FIN2 ;
Contribution
des 2009
forces résiduelles
RES1
. i1 - Paris
26 Novembre
Club
CAST3M
5 – Problèmes non linéaires de grande taille
Eprouvette de traction-torsion – Chargement cyclique

Comportement de la stratégie & Influence du type d’ordinateur
Traction
- torsion
 PC
 du
IBM
POWER5+
Génération
maillage
Incréments
 8 processeurs (quad-core) & Renumérotation
 16 processeurs “élastiques”
(dual-core)
Incréments
factorisation
 16 Go mémoire partagée

64 Go mémoire partagée
“plastiques”
 Linux
 parallèle
AIX (optimisation des paramètres)
Speed-up (temps horloge)
8
7
16
14
Idéal
Factorisation
50 incréments
6
5
12
10
4
8
3
2
1
6
4
2
0
Nombre de processeurs
0
0
2
4
6
Speed-up (temps horloge)
Idéal
Factorisation
50 incréments
Nombre de processeurs
de la8 taille du12problème
8 Une augmentation
0
4
16
Contrainte
équivalente
de Mises
permet de réduire
les phases
séquentielles
26 Novembre 2009
Club CAST3M - Paris
5 – Problèmes non linéaires de grande taille
Eprouvette CT

Eprouvette CT & Modèle
 Etudes expérimentales
 Propagation de fissures
 Comportement Visco-plastic complexe
Front de
fissure
Fissure
Système de fixation
(lien avec la machine
de traction)
Conditions
de symétrie
Fissure
26 Novembre 2009
Club CAST3M - Paris
5 – Problèmes non linéaires de grande taille
Eprouvette CT


Sous domaines
Blocs d’éléments
Décomposeur de maillage
automatique
(numérotation du solveur)
26 Novembre 2009
Club CAST3M - Paris
5 – Problèmes non linéaires de grande taille
Eprouvette CT

Speed up d’environ 10
pour la simulation
non-linéaire complète
avec 16 processeurs
Calculateur IBM
 16 processeurs (dual-core POWER5+)
 64 Go mémoire partagée
240 000 DDL - 18 000 éléments
500 000 points d’intégration
16
14
Speed-up (temps horloge)
Idéal
Factorisation
12
10
Influence de la taille du modèle 1 100 000 DDL
80 000 éléments
200 Temps par itération (s)
2 160 000 pts int.
Incrément
150
sans
management
100
Incrément
Incrément
8
6
4
2
0
50
Nombre
Nombredeofprocesseurs
processeurs
0
4
26 Novembre 2009
8
12
16
Nombre d'éléments
0
0
20000
40000
60000
80000
Club CAST3M - Paris
Conclusions




Réduction du coût numérique des simulations non linéaires en Eléments Finis
 Environnement de programmation parallèle
 Approche parallèle pour une large classe de problèmes non linéaires
Environnement de programmation adapté au parallélisme
 Cacher le transfert des données & Assurer la cohérence des données
 Deux niveaux de développement (programmation & utilisation)
 Le programmeur peut focaliser son attention l’organisation du programme
 Système compatible avec l’architecture des ordinateurs modernes
Approche parallèle pour les simulations non linéaires
 L’utilisation de deux découpages donne un bon équilibrage
 Résultats encourageants en 3D
Les performances de l’approche peuvent être augmentées
Démarches utilisées en « Production » (version utilisateur de CAST3M)
Augmenter les performances et les possibilités du système
Réduction du coût de la gestion des objets (mémoire distribuée)
26 Novembre 2009
Club CAST3M - Paris
Téléchargement