25
26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 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

26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

Embed Size (px)

Citation preview

Page 1: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Jean-Yves COGNARD

Pierre VERPEAUX

Calcul parallèle haute performance dans CAST3M

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

Page 2: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

1 – Problématique

Page 3: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

(KKi qi = Ri ) Test de convergence

2 – Résolution parallèle de problèmes non linéaires d’évolution

13

2

Tt k-1 tk

sksk-1

Page 4: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Cout des simulations non linéaires

Non-linéarités matériaux 1 cycle de chargement 50 incréments 280 itérations (Newton) 1 factorisationWall-clock time (hour)

0

5

10

15

20

25

30

35

40

0 100000 200000 300000

Number of DOF

RESO

INTG

TOTA

Contrainte équivalente de Mises

Traction - torsion Comportement viscoplastique

2 – Résolution parallèle de problèmes non linéaires d’évolution

Temps « horloge » (heures)

Nombre de DDL

Non-linéarités matériaux &

géométriques Chargement monotone 80 incréments 270 itérations (Newton) 80 factorisationsWall-clock time (hour)

0

2

4

6

8

10

12

14

0 25000 50000 75000 100000

Number of DOF

RESO

INTG

TOTA

Temps « horloge » (heures)

Nombre de DDL

Résolution des problèmes globaux linéaires & Intégration de la loi de comportement

Page 5: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 6: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 7: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Intégration en parallèle de la loi de comportement

Déformation plastique cumulée & temps CPU par élément (par incrément)

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 8: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Intégration en parallèle de la loi de comportement

Temps CPU par élément & temps CPU par sous structure (par incrément)

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 9: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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)

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 10: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Intégration en parallèle de la loi de comportement

Coût numérique pour 8 processeurs

Décomposition

de domaine

Blocs

d’éléments

Relative Total CPU Time

0

1

2

3

4

5

6

7

8

Sequential Domains Blocs

inc 10inc 9inc 8inc 7inc 6inc 5inc 4inc 3inc 2inc 1

Séquentiel Décomposition Blocs

de domaine d’éléments

Temps horloge total normalisé

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 11: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Temps horloge normalisé

0.0

0.5

1.0

1.5

2.0

2.5

1 2 3 4

Numero du processeur

Sous-domainesSous-domaines

Intégration en parallèle de la loi de comportement

Problème 3D Décomposeur automatique 4 processeurs

Equilibrage

des calculs ? 1/1 1/2

1/8

Temps horloge normalisé

0.0

0.5

1.0

1.5

2.0

2.5

1 2 3 4

Numéro du processeur

Sous-domainesSous-domainesBlocs d'éléments

Blocs d’éléments

Utilisation d’un second découpage :

Blocs d’éléments

2 – Résolution parallèle de problèmes non linéaires d’évolution

Page 12: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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élisationParallélisation

Fortran 77 + Extensions + Gestion de la mémoire Langage de commande : GIBIANE ParallélisationParallélisation

Boucles, tests, procédures

3 – Environnement de programmation parallèle

Page 13: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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)

3 – Environnement de programmation parallèle

Page 14: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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é

3 – Environnement de programmation parallèle

Page 15: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Application A2Application A1

SEGACT PSEG*MOD (PSEG utilisé par A2) Travail…

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 »

SEGDES PSEG

(PSEG : A2 « écriture ») surveillance de PSEG Travail… … Etude PSEG queue A1 peut continuer Travail…

SEGACT PSEG*MOD Mode « attente »

Propriétaire de PSEG Travail…

3 – Environnement de programmation parallèle

Page 16: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

4 – Résolution de problèmes linéaires de grande taille

Page 17: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

Nombre d’éléments Temps CPU pour la factorisation

number of elements

1,0E+07

1,0E+08

1,0E+09

1,0E+10

1,0E+04 1,0E+05 1,0E+06 1,0E+07

number of dof

Nested

Cuthill

CPU time (s)

1,0E+02

1,0E+03

1,0E+04

1,0E+05

1,0E+04 1,0E+05 1,0E+06 1,0E+07

number of dof

Nested

Cuthill

4 – Résolution de problèmes linéaires de grande taille

Nombre de ddlNombre de ddl

Nombre d’élémentsTemps CPU (s)

Page 18: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Eprouvette de traction-torsion

Remplissage Cuthill-McKee Nested dissection

number of elements

1,0E+06

1,0E+07

1,0E+08

1,0E+09

1,0E+10

1,0E+04 1,0E+05 1,0E+06

number of dof

Nested

Cuthill

4 – Résolution de problèmes linéaires de grande taille

Nombre d’éléments

Nombre de ddl

Page 19: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Assistant 2

Assistant 1CAST3M

Serveur

ESOPE

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

* Travail pour A1 et A2

OBJ3 = ‘ASSI’ 1 ‘OPE1’ OBJ1;

….

* Attente automatique

OBJ6 = OBJ3 ‘ET’ OBJ5 ;

‘OPE1’ OBJ1;

‘OPE2’ OBJ2;

OBJ4 = ‘ASSI’ 1 ‘OPE2’ OBJ3;

OBJ5 = ‘ASSI’ 2 ‘OPE2’ OBJ2;

Validation résultats

‘OPE2’ OBJ3;

Validation résultats

Validation résultats….

Mode « DataFlow » : Lancer l’opération – ne pas attendre le résultat

Mode « Data Parallèle » : Option ‘TOUS’ (Sous structuration)

5 – Problèmes non linéaires de grande taille

Page 20: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Implémentation parallèle pour une itérationMaître - Séquentiel Maître – Assistant (n° I1)

Gestion des calculs Pb Complet Pb Interface Décomp Dom Blocs Elém

Correction du vecteur déplacementFEQ1 = ‘ASSI’ ‘SUPE’ … RES1 ; RES1

FEQ1 . i1 Condensation du second membreFEQ2 = ‘ET’ FEQ1 ;DEP2 = ‘RESO’ RIG2 FEQ2 ; Montée - Descente

FEQ1FEQ2DEP2

DEP3 = ‘ASSI’ ‘SUPE’ … DEP2 ; DEP2

DEP3 . i1 Remontée Accélération de convergence

DEP4 = ‘ASSI’ ‘TOUS’ …. ; DEP4 . i1 DEP0 = DEP0 ‘+’ DEP4 ; Déplacement

DEP4 DEP0

Intégration de la loi de comportement & Test de convergenceSIG1 EPS1= ‘ASSI’ ‘ECOU’ DEP0; FIN1 = ‘ASSI’ ‘BSIG’ SIG1 ;

DEP0

EPS1 . i1SIG1 . i1FIN1 . i1

Contribution des forces internes

FIN2 = ‘ET’ FIN1 ; Assemblage des forces internes

FIN1 FIN2

RES1 = ‘ASSI’ ‘’ FEX1 FIN2 ; FIN2

RES1 . i1 Contribution des forces résiduelles

5 – Problèmes non linéaires de grande taille

Page 21: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - ParisContrainte équivalente de Mises

Traction - torsion

Eprouvette de traction-torsion – Chargement cyclique

Génération du maillage& Renumérotation

factorisation parallèle

Incréments“élastiques”

Incréments“plastiques”

Une augmentation de la taille du problème permet de réduire les phases séquentielles

Comportement de la stratégie & Influence du type d’ordinateur PC 8 processeurs (quad-core) 16 Go mémoire partagée Linux

5 – Problèmes non linéaires de grande taille

IBM POWER5+ 16 processeurs (dual-core) 64 Go mémoire partagée AIX (optimisation des paramètres)

Speed-up (temps horloge)

0

2

4

6

8

10

12

14

16

0 4 8 12 16

Nombre de processeurs

IdéalFactorisation50 incréments

Speed-up (temps horloge)

0

1

2

3

4

5

6

7

8

0 2 4 6 8

Nombre de processeurs

IdéalFactorisation50 incréments

Page 22: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Eprouvette CT

Eprouvette CT & Modèle Etudes expérimentales Propagation de fissures Comportement Visco-plastic complexe

Front de fissure

Fissure

Conditionsde symétrie Fissure

Système de fixation(lien avec la machine

de traction)

5 – Problèmes non linéaires de grande taille

Page 23: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

Eprouvette CT

Sous domaines

Blocs d’éléments

Décomposeur de maillage

automatique

(numérotation du solveur)

5 – Problèmes non linéaires de grande taille

Page 24: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 Club CAST3M - Paris

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

Eprouvette CT

Speed-up (temps horloge)

0

2

4

6

8

10

12

14

16

0 4 8 12 16

Nombre of processeurs

Idéal

Factorisation

Incrément

Temps par itération (s)

0

50

100

150

200

0 20000 40000 60000 80000

Nombre d'éléments

Incrémentsansmanagement

Incrément

Influence de la taille du modèle 1 100 000 DDL

80 000 éléments

2 160 000 pts int.

Speed up d’environ 10

pour la simulation

non-linéaire complète

avec 16 processeurs

5 – Problèmes non linéaires de grande taille

Nombre de processeurs

Page 25: 26 Novembre 2009 Club CAST3M - Paris Jean-Yves COGNARD Pierre VERPEAUX Calcul parallèle haute performance dans CAST3M 1 – Problématique 2 – Résolution

26 Novembre 2009 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)