42
École CEA/EDF/INRIA 08/11/2006 Page 1 [email protected] [email protected] [email protected]

École CEA/EDF/INRIA08/11/2006Page 1 [email protected] [email protected] [email protected]

Embed Size (px)

Citation preview

Page 1: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 1

[email protected]@[email protected]

Page 2: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 2

Plan exposé

• Présentation• Le fonctionnement général• Les notions de base• Exemple d’un code d’hydrodynamique• Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 3: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 3

Présentation

• Arcane est une plate-forme de développement pour les codes de simulations volumes/éléments finis 2D/3D parallèles

• 2 objectifs permanents :• Simplifier et accélérer au maximum l’écriture des modules

numériques et d’environnement en prenant en charge les aspects informatiques

• Utilisation d’objets métiers de haut niveau : variables, maillage…

• Fourniture d’outils de mise au point, temps de compilation réduits, simplicité de mise en œuvre

• Favoriser la réutilisation

• Obtenir de bonnes performances • En séquentiel et …

• … sur machines parallèles (grappes de SMP)

Page 4: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 4

Fonctionnalités

• Arcane prend en charge les services suivants:• gestion des structures liées au maillage• gestion des variables (Température, Pression, …) à

travers une base de donnée• parallélisme• gestion des modules et de leurs interactions• options de configuration des modules (jeu de données)• protections / reprises• fourniture de fonctions utilitaires (mathématiques, listing,

temps d’exécution, …)• outils d’analyse et d’aide à la mise au point• retour-arrière• sorties spécifiques de dépouillement

• courbes

• historiques

Page 5: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 5

Maillage

• Arcane gère les maillages non-structurés 2D et 3D;• les différents éléments du maillage sont appelés des entités;• il existe 5 genres d’entités:

• nœuds (0D), arêtes (1D), faces (2D);• mailles (2D ou 3D);• particules

• plusieurs types d’entités:• triangle, quadrangle, pentagone, hexagone (2D);• tétraèdre, pyramide, prisme, hexaèdre, heptaèdre,

octaèdre (3D);• possibilité d’ajouter d’autres types d’entités.

Page 6: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 6

Plan exposé

• Présentation• Le fonctionnement général• Les notions de base• Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 7: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 7

Fonctionnement général

Gestionnaire demodules

Structures maillage

Gestionnaire devariables

Parallélisme

Architecture ARCANE

Autres codes Protections

Calcul des forces

Calcul impulsion

Déplacement noeuds

Calcul énergie

Calcul pression

Boucle entemps

Modules de sortie

Modulesd’entrée

<?xmlversion='1.0' encoding='ISO-8859-1'?><cas codeversion='1.4' codename=’ Code 3D' xml:lang='fr'><arcane>

<titre>Implosion d’une aiguille : ablateurpartiel + DT-cryo

</titre><boucle-en-temps>Hydro</boucle-en-temps>

</arcane>

<maillage><fichier format="unf">lmj1.unf</fichier>

</maillage>…

<hydrodynamique><methode-calcul-cqs>Pracht</methode-calcul-cqs><recalcul- masse-nodale>false</recalcul- masse-nodale>

</conditions-aux-limites><bloquage-interface>

<bloquage-en- temperature><interface>INTERFACE1</interface><temperature>0.05</temperature><synchrone>true</synchrone>

<hydro-seule>true</hydro-seule></bloquage-en- temperature>

….

Page 8: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 8

Plan exposé

• Présentation• Le fonctionnement général• Les notions de base• Exemple d’un code d’hydrodynamique• Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 9: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 9

Concepts

• Le code est constitué d’un ensemble de modules• hydrodynamique• thermique• post-traitement• …

• Chaque module est indépendant et possède• ses variables, qui représentent les données traitées par le

module (ex: température, vitesse, t)• ses options de configuration (jeu de données)• ses points d’entrée, qui représentent les opérations

effectuées par le module (ex: calcul des forces, déplacement des nœuds)

• Les modules peuvent partager du code via les services• Les modules peuvent partager des données via les variables

Page 10: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 10

Module

• Un module est un composant logiciel. Il comporte du code source et un fichier de définition (XML), appelé descripteur de module, qui contient :• la liste des variables,• la liste des points d’entrée,• les options de configuration.

• A partir du descripteur de module, Arcane génère• une classe de base pour le module• une classe pour accéder aux options de jeu de données

concernant le module

• Les modules communiquent via les variables : deux modules utilisant une variable publique de même nom partagent sa valeur

Page 11: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 11

Exemple de génération de module

<module name=‘Hydrodynamique’><variables><variable field-name=‘velocity’ name=‘Velocity’ data-type=‘real3’

item-kind=‘node’ dim=‘0’/><variable field-name=‘density’ name=‘Density’ data-type=‘real’

item-kind=‘cell’ dim=‘0’/></variables><entry-points><entry-point method-name=‘computeForces’ name=‘CalculDesForces’

where=‘compute-loop’ /><entry-point method-name=‘moveNodes’ name=‘DeplacementDesNoeuds’

where=‘compute-loop’ /></entry-points><options><simple name=‘cfl’ type=‘real’ default=‘0.5’><description>Définition de la CFL</description>

</simple></options>

</module>

void HydroModule::moveNodes()

{

ENUMERATE_NODE(i_node,allNodes()){

const Node& node = *i_node;

m_node_coord[node] += m_deltat() * m_velocity[node]}

ArcaneHydroObject

m_density : VariableCellRealm_velocity : VariableNodeReal

computeForces()modeNodes()

CaseOptionsHydro

cfl : double

HydroModule

computeForces()modeNodes()

descripteur de module

génération

développement

Page 12: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 12

Variable

• Une variable est caractérisée par :• son nom,• son type de donnée,

• entier,• réel, coordonnées 2D, coordonnées 3D, tenseur 2x2, tenseur 3x3• chaîne de caractères

• son support,• aucun,• nœud, arête, face ou maille

• sa dimension,• scalaire (0)• tableau (1)• tableau 2D avec deuxième dimension variable (2).

• Il est possible de créer des dépendances entre variables• Pour chaque variable, Arcane gère :

• la mémoire• les protections / reprises• la prise en charge du retour-arrière• le traitement du parallélisme

Page 13: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 13

Points d’entrée

• L’enchaînement des calculs du code est décrit par une succession de points d’entrée: la boucle en temps.

• Les boucles en temps sont décrites dans un fichier de configuration externe (ne nécessite pas de recompilation)

• Exemple: boucle en temps «HydroThermique»:

Nom du point d’entrée Module

CalculDesForces Hydro

ContributionPression Hydro

ContributionPressionThermique Thermique

PseudoViscosité Hydro

ConditionsAuxLimites Hydro

DéplacementDesNoeuds Hydro

MiseAJourDesVolumes Hydro

DiffusionNonLinéaire Thermique

SortiesDépouillement PostTraitement

Page 14: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 14

Service

• Un service est un plug-in implémentant une interface• technique

• lecture et structure du maillage

• sorties pour le dépouillement

• algorithme de repartitionnement

• fonctionnel• vecteur, matrice, solveur

• trajectographie

• schéma numérique

• Présente les mêmes caractéristiques que le module excepté les points d’entrée

• Se configure comme un module

Page 15: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 15

Avantages de la conception

• Les interfaces entre les modules sont• explicites: boucle en temps• distinctes: réduction de la complexité du code

• Compilation et tests par module/service

• Ajouter/modifier un module/service ne perturbe par les autres

• Plusieurs versions d’un même module/service peuvent

coexister (namespace)

• Un module/service qui n’est pas utilisé n’est pas créé et ne

prend aucune ressource (variables non allouées, …)

Page 16: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 16

Exemple d’un code hydrodynamique

• Code d’hydrodynamique simplifié• lagrangien• Un seul module

• hydrodynamique

• Fluide de type gaz, selon deux modèles• Gaz parfait

• Gaz de type «stiffened»

• Fonctionnement sur des tubes à choc.

Page 17: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 17

Exemple d’un code hydrodynamique : boucle en temps

• La boucle en temps contient uniquement des points d’entrées du module hydrodynamique

• Ordre des opérations:

Description Nom point d’entrée

Calcul des forces aux noeuds ComputePressureForce

Calcul de la vitesse ComputeVelocity

Application des conditions aux limites ApplyBoundaryCondition

Déplacement des nœuds MoveNodes

Calcul des nouvelles informations géométriques (volumes, positions, …)

ComputeGeometricValues

Mise à jour de la densité UpdateDensity

Application de l’équation d’état ApplyEquationOfState

Calcul du nouveau deltat ComputeDeltaT

Page 18: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 18

Exemple d’un code hydrodynamique : liste des variables

• Variables aux mailles• Pression, Volume, Energie interne, Masse, vitesse du son,

résultante

• Variables aux nœuds• Position, Force, Vitesse, Masse nodale

• La masse aux mailles et aux nœuds est constante (lagrange)

qscsmevp

,,,,,

MVFX ,,,

Page 19: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 19

Exemple d’un code hydrodynamique : code généré

<variable field-name=‘density’ name=‘Density’ data-type=‘real’ item-kind=‘cell’ dim=‘0’ /><variable field-name=‘velocity’ name=‘Velocity’ data-type=‘real3’ item-kind=‘node’ dim=‘0’ /><entry-point method-name=‘computeVelocity’ name=‘ComputeVelocity’ where=‘compute-loop’ /><entry-point method-name=‘moveNodes’ name=‘MoveNodes’ where=‘compute-loop’ />

descripteur de module

génération

Page 20: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 20

Calcul des forces

• Calcul des forces: contribution de la pression sur la force aux nœuds:

cell

qsip cpF

.,

• Application du principe de la dynamique, puis calcul de la vitesse

FAM

FM

tVV nn

1

ENUMERATE_CELL(icell,allCells()){ Real pressure = m_pressure[icell]; for( NodeEnumerator inode(icell.nodes()); inode.hasNext(); ++inode ) force[inode] += pressure * cell_cqs[icell] [inode.index()]; }

ENUMERATE_NODE(inode, allNodes()){ Real node_mass = m_node_mass[inode]; Real3 old_velocity = velocity[inode]; velocity[inode] = velocity[inode] + (global_deltat/node_mass) * force[inode]; }

Page 21: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 21

Déplacement des nœuds

• Application des conditions aux limites • Vitesse normale nulle sur les faces frontières

• Déplacement des nœuds:

• Calcul des nouvelles informations géométriques:• Mise à jour des volumes• Calcul des résultantes

• Application de l’équation d’état• Calcul du nouveau pas de temps

• Application des contraintes CFL

VtXX nn

.1

Page 22: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 22

Application des équations d’état

ps

ep

)1(

)/11(1

)1(1

)1(5.0

vrx

vrxe

xV

m

Gaz Parfait:

Gaz « stiffened »:

)(

)1(

s

s

Tps

Tep

• Calcul de la densité, énergie interne, pression et vitesse du son

Page 23: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 23

• Un service respecte un contract, défini par une interface• en C++, une classe ne contenant que des méthodes

publiques virtuelles pures• Pour le service d’équation d’état:

Utilisation d’un service pour les équations d’état

IEquationOfStateInterface

Methods

applyEOS

OtherGazEquationOfStateClass

Methods

applyEOS

PerfectGazEquationOfStateClass

Methods

applyEOS

StiffenedGazEquationOfStateClass

Methods

applyEOS

IEquationOfStateIEquationOfState IEquationOfState

Page 24: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 24

Utilisation des services

<options> <service type=‘IEquationOfState’ name=‘eos’ default=‘PerfectGaz’ /></options>

descripteur de module

génération

void HydroModule::applyEquationOfState(){ … options.eos.applyEos(); …}

Page 25: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 25

Utilisation des services

<service name=‘PerfectGaz’/> <interface name=‘IEquationOfState’ /> <options> <simple type=‘real’ name=‘adiabatic-constant’/> </options></service>

Gaz

parfait

<service name=‘StiffenedGaz’/> <interface name=‘IEquationOfState’ /> <options> <simple type=‘real’ name=‘adiabatic-constant’/> <simple type=‘real’ name=‘limit-tension’/> </options></service>

Gaz

‘stiffened’

<hydro> <eos name=‘PerfectGaz’> <options> <adiabatic-constant>1.4</adiabatic-constant> </options></hydro>

<hydro> <eos name=‘StiffenedGaz’> <options> <adiabatic-constant>1.4</adiabatic-constant><limit-tension>1.4</limit-tension> </options></hydro>

Descripteur de service Jeu de données

Page 26: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 26

Plan exposé

• Présentation de Arcane• Le fonctionnement général• Les notions de base• Exemple d’un code d’hydrodynamique • Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 27: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 27

Stratégie de parallélisme

• Le parallélisme est géré par échange de messages.

• le maillage est partitionné en n sous-domaines.• chaque sous-domaine est

éventuellement complété d’une ou plusieurs couches de mailles fantômes

• ces mailles fantômes représentent une duplication d’entités pour lesquelles il faudra effectuer une synchronisation

• chaque processeur effectue les calculs sur un sous-domaine et synchronise ses variables régulièrement avec d’autres processeurs

• le code s’exécute en parallèle comme en mode séquentiel avec des synchronisations et des réductions explicites

Page 28: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 28

Partitionnement

• Deux possibilités pour le partitionnement :

• comme un outil externe séquentiel (interne DIF/DSSI/SNEC)

• plusieurs algorithmes (Métis, Chaco, Party, …)

• plusieurs niveaux de couches fantômes

• fournit les informations nécessaires pour les communications entre sous-domaines

• pas de pondération pour orienter le partitionnement

• comme un service d’Arcane• algorithme de partitionnement parallèle

• utilisable pour l’équilibrage de la charge des processeurs (algorithmes de diffusion de mailles)

Page 29: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 29

Prise en charge du parallélisme

• Sous certaines conditions, la conception de l’architecture assure que le résultat d’un calcul ne dépend ni du partitionnement ni du nombre de sous-domaine :• exécution déterministe• mise au point plus aisée• développement d’un outil permettant de vérifier que les

exécutions parallèles et séquentielles donne exactement les mêmes résultats (comparaison bit à bit).

• Le développeur utilise les services génériques d’Arcane• synchronisation des valeurs d’une variable sur l’ensemble

des sous-domaines• réductions

m_temperature.synchronize();

m_delta_t.reduce(Parallel::ReduceMin);

Page 30: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 30

Autres services de parallélisme

• Services génériques pouvant être implémentés avec différentes bibliothèques de parallélisme (actuellement uniquement MPI)• barrières• envois / réceptions (send / recv)• regroupements (gather)• réductions• diffusion (broadcast)• sérialisation (pack / unpack)

• Statistiques d’exécutions• liste et nombre des appels parallèles• pourcentage du temps de calcul par rapport au temps des

communications

Page 31: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 31

Performance code hydro

Performance code hydro

0

500

1000

1500

2000

2500

0 500 1000 1500 2000 2500

Nombre de processeurs

Sp

ee

d-U

p

Speed-Up

Speed-Up nominal

Page 32: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 32

Plan exposé

• Présentation de Arcane• Le fonctionnement général• Les notions de base• Exemple d’un code d’hydrodynamique• Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 33: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 33

Équilibrage de charge

• Arcane fournit des mécanismes permettant de réaliser un équilibrage dynamique de charge :• analyse du déséquilibre de charge• migration des entités et des variables d’un sous-domaine

vers un autre• calcul des entités fantômes• incorporation d’algorithmes d’équilibrage de charge

(ex: ParMetis, Zoltan) avec plusieurs contraintes

Page 34: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 34

Simulation Monte-Carlo

Matériau lourd

Matériau léger Exemple de décomposition en 64 sous-domaines

Flux entrant

• Test difficile pour l’extensibilité • Répartition dynamique de charge par échange de mailles• Mailles >350000, 30M de particules, 8/32/64 processeurs

Page 35: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 35

Évolution du sous domaine du processeur 1/32

2

4

1

3

Page 36: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 36

Speed up et efficacité

Nombre de processeurs

Speed up Efficacité

8 6.84 0.855

32* 24.31 0.75

64 41.07 0.64

• La simulation est arrêtée lorsque le tiers du tube est “chaud”

* Speed up sans répartition dynamique de la charge : 7.41(dépendant du partitionnement initial)

Page 37: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 37

Test d’extensibilité Monte Carlo

• Description du test :• Transport et interaction de particules (Monte Carlo)

• A T0, tous les processeurs gèrent le même nombre de mailles

Dépôt d’énergie sur la surface

Page 38: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 38

Test d’extensibilité Monte Carlo

Nombre de processeurs

User time (s)

Itanium 2

Speed : 1.5GHz

User time (s)

Alpha EV68

Speed : 1Ghz

Nombre de mailles

1 908* 1110 8500

(330000 particules)

16 1096 * 1313 136000

(5M particules)

32 1116 * 1299 272200

(10M particules)

80 1210 * na 680000

(20M particules)

256 1318 * 1424 2,16 M

(80M particules)

1024 1467* 1632 8.7 M

(350M particules)

* Ces résultats sont obtenus sans option de compilation spécifique INTEL et sans directive #pragma

Page 39: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 39

Plan exposé

• Présentation de Arcane• Le fonctionnement général• Les notions de base• Exemple d’un code d’hydrodynamique• Le traitement du parallélisme• L’équilibrage de charge• Évolutions et conclusion

Page 40: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 40

Évolutions prévues

• 3 directions d’évolution respectant les 2 objectifs (cf. transparent 3)

Arcane core

Optimisations IA64Amélioration du load balancing

Parallélisme multi niveauxRaffinement/Déraffinement (AMR)

Arcane tools

Langages de compilation à la voléeTests unitaires

Bibliothèques de profiling

Arcane numeric tools

Matrices, vecteurs Solveur

Composant Newton

Page 41: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 41

Évolutions prévues

• Utilisation de langages de compilation à la volée (C#)• plus simple d’utilisation que le C++• développement rapide

• compilation

• environnement de programmation

• performances correctes• Parallélisme multi-niveaux

• Code hybride MPI/pthread• Code uniquement pthread

Page 42: École CEA/EDF/INRIA08/11/2006Page 1 laurent.colombet@cea.fr gilles.grospellier@cea.fr benoit.lelandais@cea.fr

École CEA/EDF/INRIA 08/11/2006 Page 42

Évolutions prévues

• Collaboration avec l’Institut Français du pétrole (IFP)• support pour les éléments de maillage d’ordre 2• algorithme de glissement/impact en 3D en parallèle• environnement de test• documentation• portage