Upload
hakhue
View
216
Download
0
Embed Size (px)
Citation preview
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Contribution à la conception à base de composantslogiciels d'applications scienti�ques parallèles.
5 novembre 2012
Vincent PichonLIP/Avalon - EDF/SINETICS/I2AÉcole Normale Supérieure de Lyon
Encadrants : Christian Pérez et André Ribes
1/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Plan1 Contexte
Applications scienti�ques et ressources parallèlesComposition spatiale et temporelle
2 Plateforme SALOMÉVue d'ensembleComposition spatiale et temporelle
3 Décomposition de domaineAnalyseImplémentationÉvaluation
4 Ra�nement de maillage adaptatifAnalyseImplémentationÉvaluation
5 Décomposition de domaine et composition bas niveauAnalyseImplémentationÉvaluation
6 Conclusions et perspectives2/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Contexte
Applications scienti�ques
Simulationsnumériques
Parallèles
Structures
Couplage
Dynamique
Complexité croissante
3/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Ressources
Grappes de serveurs
Topologie réseau simple, homogène
GPU
Supercalculateurs
Large échelle, topologie réseau, GPU
Grilles de calcul
Fédération de ressources, hétérogène
Cloud computing
Coût, élasticité des ressources
4/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Modèles de programmation
Paradigmes
Multithread (Pthread, OpenMP)
GPU (CUDA, OpenAcc)
Passage de message (PVM, MPI)
Appel de méthode distante (GridRPC, CORBA)
Passage de documents (Web Services)
Complexité
Aucun modèle ne propose de solution adéquate
Combinaison MPI + OpenMP ... OpenAcc
Durée de vie d'un code ∼30 ans, d'une ressource ∼3 ans
Portage régulier d'une ressource à l'autre
Maintenance et évolution complexe
5/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Modèles de composition
McIlroy, Mass Produced SoftwareComponent, 1968
Composant
Unité binaire indépendante déployable
O�re des services
Déclare dépendances de services etcontexte
Assemblage
Primitif et composite
Spatiale ou/et temporelle
6/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composition spatiale
Évolution POO
Port - interfaces
Construction par composition
Corba Component Model (CCM)
Common Component Architecture(CCA)
Fractal
Grid Component Model (GCM)
Distributed Software Component(DSC)
interface hello {
void say_hello();
}
component B {
provides hello Bh;
}
component A {
uses hello Ah;
}
Implémentation:
pah = get_Ah_port();
pah->say_hello();
7/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composition temporelle
Flôt de données
Port in out
Flôt de contrôle
Dépendance temporelle
Structures de contrôle
Kepler, Triana, MOTEUR,ASSIST, YACS
component A {
dataout float FA;
}
component B {
datain float FB;
}
8/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composition spatiale et temporelle
Dépendance spatiale ettemporelle
ULCM, SALOME
9/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Plan1 Contexte
Applications scienti�ques et ressources parallèlesComposition spatiale et temporelle
2 Plateforme SALOMÉVue d'ensembleComposition spatiale et temporelle
3 Décomposition de domaineAnalyseImplémentationÉvaluation
4 Ra�nement de maillage adaptatifAnalyseImplémentationÉvaluation
5 Décomposition de domaine et composition bas niveauAnalyseImplémentationÉvaluation
6 Conclusions et perspectives10/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Plateforme SALOME
Plateforme Open Source d'intégration de solveurs numériques.
Développée par EDF et le CEA
Composition spatiale : modèle de composant DSC
Composition temporelle : modèle de work�ow YACS
11/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Distributed Software Component (DSC)
Module Kernel
Objet SALOMÉ
Objet CORBA
Cycle de vie dans SALOMÉ : Fabrique
Blibliothèque dynamique
Conteneur
Composant SALOMÉ
Ports uses/provides CORBA
Service
Fonctionnalité d'un code, méthode d'un object SALOMÉ
12/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Yet Another Coupling System (YACS)
Modèle
Work�ow : schéma decouplage
Noeud
Structures de contrôle
Data�ow, datastream
Superviseur
Exécution et contrôle
GUI
API Python
interface Composant1: Engine::Component
{
void C1(out string o2);
}
interface Composant2: Engine::Component
{
void C2(int string i3);
}
13/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Exemple de schéma YACS
14/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Problèmatique
SALOMÉ
Utilisée en production
Nombreuses applications
Étendre le modèle
Méthode
Exemple représentatif d'une classe.
Abstraction : décomposition de domaine.
Dynamicité : ra�nement de maillage adaptatif
15/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Décomposition de domaine1 Contexte
Applications scienti�ques et ressources parallèlesComposition spatiale et temporelle
2 Plateforme SALOMÉVue d'ensembleComposition spatiale et temporelle
3 Décomposition de domaineAnalyseImplémentationÉvaluation
4 Ra�nement de maillage adaptatifAnalyseImplémentationÉvaluation
5 Décomposition de domaine et composition bas niveauAnalyseImplémentationÉvaluation
6 Conclusions et perspectives16/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Décomposition de domaine
Simulation numérique
Précision
Finesse de maillage
Découpage du domaine
17/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Décomposition de domaine
Simulation numérique
Pécision
Finesse de maillage
Découpage du domaine
18/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Finite Element Tearing and Interconnect (FETI)
Farhat et Roux, 1991
Algorithme
Découpage du domaine desimulation
Étape de calcul
Étape de résolution duproblème aux interfaces
GC
19/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Implémentation de FETI
Code_ASTER
Simulation thermo-mécaniques
1,500,000 lignes (FORTRAN, Python, MPI)
Implementation dans Code_ASTER
Plusieurs années
Tâche complexe
Implementation avec SALOMÉ
Pas de modi�cation d'ASTER
Algorithme FETI dans un schéma de calcul YACS
Plusieurs mois
Performances identiques
Reconstruction de l'application pour chaque cas20/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Complexité de programmation
Paramètre : nb de sous-domaines
Nb de composants ASTER
Nb de ports
Reconstruction demandéerégulièrement
Tâche fastidieuse
Scripts (38 �chiers, 2350 lignes)
Manque d'expressivité
21/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Clonage de noeuds et ports
Extension du modèle deprogrammation
Cardinalité attachée à chaquenoeud
Clonage de noeuds
Propriété
Fixe le nombre de répliques
Clonage de ports
Propriété
Autorise le clonage
22/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Cas possibles
Con�gurations possibles
Type de connexion(datastream/data�ow)
Sens de la connexion
A noeud source, B noeud dedestination
Cas
cas NxM
cas 1.1-N.1
cas N.1-1.N
cas 1.N-N.1
cas 1.N-1.1
23/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Cas 1.1-N.1
Data�ow
Possible (broadcast)
Datastream
Possible (uses multiple)
24/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Cas N.1-1.N
Data�ow
Non supporté (demande une recompilation)
Datastream
Possible (création de ports DSC)
25/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Cas 1.N-N.1
Data�ow
Non supporté (demande une recompilation)
Datastream
Possible (création de ports DSC)
26/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Cas 1.N-1.1
Data�ow
Non valide (manque opérateur de réduction)
Datastream
Possible (provides multiples)
27/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Implémentation
Implémentation dans la branche principale de SALOMÉ
3 classes, ∼1000 lignes de C++ ajoutées
Fonctionnement
Interprété au chargement
Modi�cation intialisation
Port propriété
28/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Evaluation
Scripts inutiles
Schéma de calcul générique
Pas de recompilation
Performances égales
Clonage avant exécution (ms)
Gain d'expressivité
29/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Ra�nement de maillage adaptatif1 Contexte
Applications scienti�ques et ressources parallèlesComposition spatiale et temporelle
2 Plateforme SALOMÉVue d'ensembleComposition spatiale et temporelle
3 Décomposition de domaineAnalyseImplémentationÉvaluation
4 Ra�nement de maillage adaptatifAnalyseImplémentationÉvaluation
5 Décomposition de domaine et composition bas niveauAnalyseImplémentationÉvaluation
6 Conclusions et perspectives30/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Ra�nement de maillage adaptatif
Augmenter la précision augmente le nombre de calculs
Dans certains problèmes, l'erreur est localisée
Méthode AMR
Proposée par Berger et Oliger, 1984
Adapter la �nesse du maillage en fonction de l'erreur
Ra�nement par décomposition
31/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Exemple d'exécution : état initial
0
32/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Exemple d'exécution : étape 1
1
11
1
33/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Exemple d'exécution : étape 2
1
1
2 2
2 2
2
2
2
2
34/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Exemple d'exécution : étape 3
1
1
2 2
2 2
2
2
2
3 3
3 3
35/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
AMR et composants
Objectif
Étudier le support de l'AMR par les modèles de composants
Domaine 2D, quad-tree
Équation de la chaleur
Invariant : taille des données d'un composant
36/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
AMR et composants
Composant primitifs
Heat simule un domaine
Proxy redistribue les frontières
Interpol interpole les données
Average rassemble l'erreur
Heat
gradient
border
border
border
border
GData
Proxy
border
border
border
Interpol
GData
GData
Average
gradient
gradient
37/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composant HeatM
Heat
gradient
border
border
border
border
GData
0
38/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composant HeatM
HeatM
HeatM HeatM
HeatM
P
r
o
x
y
P
r
o
x
y
Proxy
ProxyAvg Itp
border
border
border
border
gradient GData
1
11
1
39/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Implémentation avec SALOME
Création de composants à la demande
API Python de YACS
Scripts
Calcul
Transmission de la requête de calcul aux feuilles de l'arbre
Recon�guration
Récupération de l'erreur
Modi�cation de l'architecture
Composant composite
Gestion de l'arbre de composants
40/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Évaluation
Objectifs
Scalabilité
Grid'5000
Évolution d'un scénario
Ra�nement d'un noeud du dernier niveau
20 niveaux de ra�nement
105 composants
100 itérations entre les étapes de ra�nement
41/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Évolution scénario
0
2
4
6
8
10
12
14
16
0 500 1000 1500 2000 2500
Tem
ps d
’execution (
secondes)
Nombre d’iterations
Localhost (secondes)Distributed (secondes)
42/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Temps de recon�guration
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 20 40 60 80 100 120
Tem
ps d
e r
econfigura
tion(m
s)
et cre
ation(s
)
Nombre de composants
Creation locale (secondes)Creation distribuee (secondes)
Reconfiguration (millisecondes)
43/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Temps d'exécution
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0 20 40 60 80 100 120
Tem
ps d
’execution e
ntr
e r
econfigura
tions (
secondes)
Nombre de composants
Execution locale (secondes)Execution distribuee (secondes)
44/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Conclusion
Faisabilité en dehors du modèle
Composant composite
Dynamicité
Déploiement séquentiel
Moteur de work�ow centralisé
Non supperposition des phases
45/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Décomposition de domaine et composition bas niveau1 Contexte
Applications scienti�ques et ressources parallèlesComposition spatiale et temporelle
2 Plateforme SALOMÉVue d'ensembleComposition spatiale et temporelle
3 Décomposition de domaineAnalyseImplémentationÉvaluation
4 Ra�nement de maillage adaptatifAnalyseImplémentationÉvaluation
5 Décomposition de domaine et composition bas niveauAnalyseImplémentationÉvaluation
6 Conclusions et perspectives46/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Composition bas niveau
Codes natifs
Di�érentes versions en fonctions des ressources visées.
Faible réutilisation de code
Modèles de composants
Abstraction des communications
Pénalité de performances (CCM, CCA, ...)
Modèle de composants bas niveau
47/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Low Level Component (L2C)
Julien Bigot et Christian Perez
Connecteurs : Composition native (C++, MPI, CORBA)
Création/destruction des composants
Con�guration (connexion)
Transfert du contrôle à un composant
Aucun code L2C entre les composants à l'exécution
Objectif
Réutilisabilité
Expressivité
Performance48/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Thread et MPI
Multi-coeurs Multi-noeuds
Multi-coeurs multi-noeuds (hiérarchique)
49/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Évaluation
Performance
-2 %
-1.5 %
-1 %
-0.5 %
0 %
0.5 %
1 %
1.5 %
2 %
512M
B
1GB
2GB
4GB
2cor
es
4cor
es
8cor
es
2cor
es
4cor
es
8cor
es
2nod
es
4nod
es
8nod
es
8nod
es x 2
8nod
es x 4
8nod
es x 8
Ove
rhe
ad
s
Monolithic DriverConnector basedMixed connectors
Hierarchic Multi node Multi process Multi threads Sequential
Complexité cyclomatique
Version Native ConnecteurSéquentiel 28 8Threaded 76 26
MPI 55 1350/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Analyse
Pas d'overhead
Augmente l'expressivité (possibilité de combiner MPI etThread)
Diminue la complexité cyclomatique (séparation des rôles)
L2C n'est pas pratique à écrire (XML)
Assemblage produit par un modèle de plus haut niveau
HLCM
Hiérarchique, génériqueavec connecteurs
Algorithme de choix
Modèle de ressources51/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Conclusion
Applications scienti�ques à base de composants logiciels
Décomposition de domaine avec SALOMÉ
Ajout du concept de clonage de noeuds/ports
Implémentation de l'extension
AMR
Réalisation de l'AMR avec SALOMÉ
Identi�cation des limites du modèle
Décomposition de domaine avec modèle bas niveau
Étude de performance avec L2C
Mêmes performances que les codes natifs
52/53
Contexte SALOMÉ Décomposition de domaine AMR Heat/L2C Conclusion
Perspectives
SALOMÉ
Augmentation du niveau d'abstraction
Composite
Généricité
Dynamicité
Création de composants à la demande
HLCM
Généricité
Algorithme de choix
Modèles de ressource
Dynamicité
53/53