Title: Couplage
1Couplage à hautes performances de codes
parallèles et distribués
Hamid-Reza HAMIDI Thèse préparée dans le
projet APACHE puis le projet MOAIS au sein du
laboratoire ID-IMAG et financée par lIran et la
France (SFERE) 5 Oct 2005 Montbonnot - France
2Contexte calcul scientifique
- But Etude de phénomènes complexes impliquant
plusieurs modèles déjà étudiés - Nécessite lexécution de plusieurs codes
- différents langages de programmation (C, F90,
HPF, OpenMP, ) - différents paradigmes de communication (RPC/RMI,
MPI, ...) - besoin très important de puissance (calcul,
stockage, visualisation)
Visualisation
Méthode du Continuum
simulation moléculaire complexe ARC SIMBIO
97-99 ARC COUPLAGE 00-01
Dynamique Moléculaire
3Problématique Couplage de codes
- Construction dapplications distribuées
- certains codes sont parallélisés
- Des objectifs complémentaires
- Calcul parallèle
- Exploitation de larchitecture
- Performances
- Systèmes distribués
- Réutilisation de codes existants
- Hétérogénéité du logiciel et du matériel
?
4Approche orientée composant
- Un modèle  structuré de programmation
- concept structurant objets ou composants
- composants sont interconnectés par un intergiciel
- CORBA, PACO, Pardis, FlowVR
- besoin dun modèle/langage de  coordinationÂ
- assemblage des composants
5Coordination de composants
- Séparation de la partie calculatoire et de la
partie contrôle - Définition des composants le calcul
- interface, cycle de vie, déploiement, ...
- Description des interactions entre composants
le contrôle - flux de données, dépendance écrivain-lecteur,
expression, ... - Problèmes
- Deux langages
- un langage (parallèle) pour la description du
code des composants - un langage pour la description de la coordination
entre composants - Ordonnancement sur une architecture distribuée
- quel modèle dexécution ?
6Thèse coordination pour le couplage de codes
- Quel langage de coordination permettant à la fois
- exécution parallèle
- passage à léchelle
- adaptation aux ressources
- ordonnancement
- Il existe des langages parallèles pour ces deux
points - Linda, Stampede, FlowVR, Athapascan
- Contribution
-  Athapascan comme langage de coordination
- deux extensions
- HOMA compilateur CORBA support exécutif
- application au couplage de codes dans une grille
RPC (CORBA)
7Plan
- Athapascan  flot de données macroscopiqueÂ
- Modèle de programmation et dexécution
- Limitations pour la coordination
- Extension dAthapascan comme un langage de
coordination - Collection temporelle
- Collection spatiale
- HOMA compilateur de CORBA pour une coordination
efficace - Dédié  grille de calcul RPCÂ
- Implémentation sur Athapascan
- Evaluations expérimentales
- Mesures élémentaires
- Mesures sur une application réelle SIMBIO
- Conclusion et perspectives
8Athapascan/Kaapi
- Une API de haut niveau Athapascan98
- Permet de construire une représentation de
lexécution par interprétation de certaines
instructions - Expression explicite du parallélisme et contrôle
implicite des interactions - une tâche dans le programme une succession
dinstructions - création dune tâche mot clé  ForkÂ
- une donnée dans la mémoire une succession de
valeurs (versions) - création dune donnée et laccès initial
déclaration  Shared - Représentation de lexécution graphe de flot de
données - Objet important pour le calcul dun
ordonnancement - Connaissance des précédences et des
communications - Modèle algorithmique de coût prédictif
- Un support exécutif KAAPI Kaapi04
- Ordonnancement en ligne
- Bonnes performances
- Grille hétérogène
9Athapascan exemple et exécution (1/2)
-  Fork création de tâche
-  Shared création de donnée
-  Shared_w accès en écriture
-  Shared_r accès en lecture
- Programme indépendant de larchitecture
struct t1 void operator( Shared_wltintgt p )
struct t4 void operator(
Shared_rltintgt p1, Shared_rltintgt p2)
10Athapascan exemple et exécution (2/2)
- Calcul en ligne des dépendances
- anticipation du futur de lexécution
- meilleur contrôle sur
- mouvement des données
- ordonnancement des tâches
- libération automatique de la mémoire
Interprétation abstraite à lexécution
Ordonnancement
ressource de calcul
11Sémantique séquentielle
- Quelles sont les versions retournées lors des
accès en lecture ? - Sémantique Athapascan séquentielle un accès en
lecture retourne la dernière version produite - Adapté au calcul scientifique
- Lisibilité Performance Doreille 99, Maillard
02, Revire 04
Par rapport à un ordre lexicographique
donnée partagée
version
accès en lecture
accès en écriture
12Athapascan garantie de performances
- Un modèle algorithmique de coût
- Le temps dexécution parallèle sur P machines
- Tp O(T1 / p T? h( C1 / p C? ))
O( ? ) - les temps de calcul sans communication (modèle
PRAM) - T1 la somme de temps dexécution de toutes les
tâches - T? le temps dexécution dun chemin critique
- les temps de communication sur architecture
homogène - C1 (latence séquentielle) la somme de tailles
de toutes les données - C? (latence parallèle) la somme de tailles de
données sur un chemin critique - h le coût denvoi dune unité de données
- ? le coût de lalgorithme dordonnancement
Exécution parallèle
Communication parallèle
13Distribution spatiale des données et limitation 1
- Athapascan différentes versions dune donnée
sont distribuées sur plusieurs machines -
- ex. X est un vecteur
- Limitation 1 pas de support direct pour les
 données parallèles - Comment exprimer la distribution dune version de
donnée sur plusieurs machines ?
mémoire partagée
donnée partagée X
...
version
...
X
accès en lecture
accès en écriture
machine A
machine B
machine C
mémoire partagée
...
...
X
14Sémantique séquentielle et limitation 2
- Limitation-2 besoin de synchronisations  flux
de données - un accès en lecture retourne la valeur produite
par une écriture selon - un type dentrelacement donné
- des conditions à lexécution
- Exemple flux FIFO Â
tâche
tâche
tâche
tâche
tâche
tâche
tâche
mémoire partagée
...
...
X
donnée
version
accès en lecture
Ordre
accès en écriture
Ordre
15Plan
- Athapascan  flot de données macroscopiqueÂ
- Modèle de programmation et dexécution
- Limitations pour la coordination
- Extension dAthapascan comme un langage de
coordination - Collection temporelle
- Collection spatiale
- HOMA compilateur de CORBA pour une coordination
efficace - Dédié  grille de calcul RPCÂ
- Implémentation sur Athapascan
- Evaluations expérimentales
- Mesures élémentaires
- Mesures sur une application réelle SIMBIO
- Conclusion et perspectives
16Comment lever ces limitations ?
- Se baser sur une nouvelle définition des objets
partagés - Intérêt
- Conserve le modèle de programmation et le support
dexécution
Définition Athapascan objet partagé X
succession de versions
Définition proposée objet partagé X ensemble
daccès
mémoire partagée
mémoire partagée
...
...
...
...
X
X
 SharedÂ
Temps
Temps
 SharedÂ
donnée dans la mémoire
version
accès en lecture  Shared_rÂ
accès en écriture  Shared_wÂ
17Collection spatiale et collection temporelle
- Collection spatiale  SpaceCollectionÂ
- But  données parallèle distribution dune
version sur plusieurs machines - Définition ensemble daccès fonction
dindexation - accès à la i-ème partie dune version distribuée
- Collection temporelle  TimeCollectionÂ
- But description de synchronisations de type
 flux de données - Definition ensemble daccès un ordre
explicite - un ordre explicite donné par
- un type dentrelacement donné (FIFO,
Last-Received, ...) - des conditions à l exécution (ex. tampon borné)
18Exemples dutilisation
- Collection spatiale  SpaceCollectionÂ
- SpaceCollectionltTgt x // x vecteur de T
- Accès à un élément xi référence vers un
objet partagé T - la donnée T nest pas directement accessible
- ForkltUtilisation dun élémentgt( xi )
- Collection temporelle  TimeCollectionÂ
- TimeCollection_wltTgt tc_w // flux de sortie
déléments T - TimeCollection_rltTgt tc_r // flux dentrée
déléments T - Accès à un élément xi référence vers un
objet partagé T - la donnée T nest pas directement accessible
- ForkltEcriture dun élémentgt( tc_w.get_next() )
- ForkltLecture dun élémentgt( tc_r.get_next() )
19Conclusion
- Résultat
- Un langage de coordination avec une implantation
efficace - Extensions à Athapascan pour exprimer des
synchronisations complexes - Implémentation efficace sur le support exécutif
dAthapascan - Comment utiliser ce langage pour des applications
effectives ? - HOMA un compilateur pour des applications
décrites en CORBA
20Plan
- Athapascan  flot de données macroscopiqueÂ
- Modèle de programmation et dexécution
- Limitations pour la coordination
- Extension dAthapascan comme un langage de
coordination - Collection temporelle
- Collection spatiale
- HOMA compilateur de CORBA pour une coordination
efficace - Dédié  grille de calcul RPCÂ
- Implémentation sur Athapascan
- Evaluations expérimentales
- Mesures élémentaires
- Mesures sur une application réelle SIMBIO
- Conclusion et perspectives
21Exemple SIMBIO (INRIA 97-99)
- Code de simulation numérique de système
moléculaire complexe impliquant plusieurs modèles
physiques - Les codes sont des objets CORBA
- Un code  Pilote contrôle la simulation
- Deux modèles dinteraction
- Invocation de méthode à distance (RMI)
- Flux de données non traité
22Problématique
- Lalgorithme de couplage une séquence de RMIs
- Extraction automatique de parallélisme sur les
RMIs - Gestion automatique des communications parallèles
server-1
code du pilote
int a, b, c server-1.m1 ( a ) // a en
out server-2.m2 ( b ) // a en out server-1.m3 (
c ) // c en inout server-3.m4 ( a, b ) // a, b
en in
RMI
RMI
server-2
RMI
server-3
données en sortie
données en entrée
23Approche dHOMA
- Passage du code dun pilote à un ordonnancement
global distribué de lapplication - Deux étapes
- 1. Compilation IDL vers Athapascan
- 1 invocation 1 tâche
- 1 paramètre 1 donnée partagée
- 2. Ordonnancement et exécution
- Dynamique, par le runtime Athapascan
- Points critiques
- Recouvrement des latences des RMIs
- Optimisation des transferts de données
DAG associé
code du pilote
int a, b, c server-1.m1 ( a ) // a en
out server-2.m2 ( a ) // a en out server-1.m3 (
c ) // c en inout server-3.m4 ( a, b ) // a, b
en in
t1
t2
t3
Calcul en ligne des dépendance
a
b
c
t4
Ordonnancement
ressource de calcul
24Point critique I recouvrement des RMIs
- Invocation de RMI gt attente du retour de lappel
- Solution HOMAÂ transforme 1 invocation en 2
tâches - 1- une tâche prête qui invoque une méthode
non-bloquante - 2- la tâche  continuation qui met à jour les
données - Recouvrement possible grâce à lordonnancement
non préemptif des tâches Athapascan
Client
Serveur
Serveur
Client
création de tâche
Invocation bloquante
continuation
Invocation non-bloquante
réception
réception
attente
réponse
réponse
résultats
résultats
Invocation-par-Continuation  HOMA
Invocation synchrone  CORBA
25Point critique II communication parallèle
- Éviter le transfert inutile de données via client
- Solution communication lorsque nécessaire
(lecture ou écriture effective) -  Cache distribué pour éviter les
communications - 1- cache de données en sortie permettant la
communication parallèle - 2- cache de données en entrée évitant la
duplication des communication
Client
Client
requête
requête
données
référence
1
2
3
4
1
2
3
6
Acq.
référence
données
Acq.
4
référence
Serveur-C
Serveur-P
Serveur-C
Serveur-P
5
données
Protocole standard  CORBA
Communication-par-nécessité  HOMA
26Fonctionnement de CORBA
- Le compilateur IDL génère le  stub client et
le  squelette serveur -  stub client et  squelette serveur prend
en charge linvocation à distance
Description dinterface
interface server1 void m3( T in a, T in b
)
Serveur
Client
Objet
Objet
Squelette
compilateur IDL
Stub
POA
Bus logiciel (ORB)
27Fonctionnement de HOMA
- Le compilateur dHOMA génère un  stub étenduÂ
 squelette étendu - Lexécution dun stub étendu permet
- linterception les invocations de méthodes pour
créer des tâches Athapascan - Athapascan contrôle lordonnancement local des
tâches
Description dinterface
interface server1 void m3( T in a, T in b
)
Serveur
Client
Objet
Objet
compilateur HOMA
Squelette
Stub étendu
interface étendu
Squelette étendu
compilateur IDL
Stub
POA
Bus logiciel (ORB)
28Résultats théoriques
- HOMA génère un  bon programme Athapascan
- 1- les tâches sont non bloquantes
 invocation-par-continuation - 2- communication directe  communication-par-nec
éssité - Autorise lordonnancement local non préemptif
parallèle et efficace - Intérêt HOMA hérite du modèle de coût
Athapascan - Le temps dexécution dun code sur P machines
- THOMA Tp O( T1 / p T? h( C1 / p C? ) )
O( ? ) - Mieux que CORBA qui séquentialise les appels RMI
distants - TCORBA O( T1 h C1 ) O( ? )
- Pour un programme très parallèle (T? ltlt T1)
impliquant un grand volume de données (C? ltlt C1)
exécuté sur P machines - THOMA TCORBA / P
Exécution séquentielle
Communication via client
29Plan
- Athapascan  flot de données macroscopiqueÂ
- Modèle de programmation et dexécution
- Limitations pour la coordination
- Extension dAthapascan comme un langage de
coordination - Collection temporelle
- Collection spatiale
- HOMA compilateur de CORBA pour une coordination
efficace - Dédié  grille de calcul RPCÂ
- Implémentation sur Athapascan
- Evaluations expérimentales
- Mesures élémentaires
- Mesures sur une application réelle SIMBIO
- Conclusion et perspectives
30Mesures expérimentales
- Mesures élémentaires sur HOMA
- les surcoûts dinvocation de méthode non
présenté - communication parallèle dues aux invocations
parallèles - Une application réelle SIMBIO
- exécution parallèle
- Plate-forme expérimentale une grappe de PC
- OmniORB3 CORBA
- iCluster-I de lINRIA
- PC 733 Mhz,
- 256 MB, réseau fast-ethernet 100Mb/s
31Mesures élémentaires II
- Mesurer la communication parallèle
- Analyse du coût sur N machines
- K la taille de données
- N le nombre de pairs de serveurs
- T1 O( N ) , T? O( 1 )
- C1 O( NK ) , C? O( 1 )
- HOMA THOMA TN O( K )
- CORBA TCORBA O( NK )
code du pilote en CORBA
Exécution du programme Athapascan
for i1 to N do SPi-gtms ( xi ) // x en
sortie SCi-gtmc ( xi ) // x en entrée
HOMA
SP1.ms
SPN.ms
x1
xN
SC1.mc
SCN.mc
32Résultats expérimentaux II
Nombre de serveurs
33Bande passante cumulée
- Le bande passante pair-Ã -pair moyenne
- HOMA 9.5 Mbytes/s, MPI (TCP) 11 Mbytes/s,
PACO de 9.1 Ã 11.3MBytes/s
34Retour à lapplication SIMBIO
- Un code  Pilote contrôle la simulation
serverMC
Méthode du Continuum
CORBA
RMIs
Dynamique Moléculaire
Pilote
serverDM
35Pilote de SIMBIO
- Pilote de SIMBIO en CORBA
- for(int k0 k ltMaxTimeStep k)
- md-gtcomputeFF(Pin, Fmdout)
- if (cmstep( k ))
- md-gtcomputeRhs(Pin, bout)
- cm-gtcomputeA(Sin,Pin,Vinout)
- cm-gtcomputePol(bin,Fcmout)
-
- md-gtmix(Fcmin,Fgout,Fmdinout)
- md-gtintegrate(Vinout,Fmdin,Pinout)
- if (cmstep( k ))
- cm-gtintegrate(Sinout,Fgin)
36Résultats expérimentaux - II
Le temps dexécution sur p machines
gaine 2.98
gaine 10.57
Taille de données
37Conclusion
- Un même code pour décrire coordination
exécution - Vers un modèle unifié Athapascan/Kaapi FlowVR
- Athapascan un langage de coordination
- Description en ligne des dépendances
- Découpage de la déclaration dun accès de laccès
effectif aux données - Les extensions
- Collection temporelle donner une consistance
temporelle - Collection spatiale décrire des données
parallèles - Données irrégulières la distribution de données
nest pas connue à la compilation mais contrôlée
à lexécution - Utilisation dans une  grille RPC pour les
applications CORBA - Appliquer le modèle dexécution dAthapascan
- Exécution non-préemptive par  invocation-par-cont
inuation - Communication parallèle par  communication-par-né
cessité - En se basant sur le développement dun
compilateur IDL vers Athapascan/Kaapi - Transparence à lutilisation
38Perspectives
- Expérimentales
- Expérimentations sur grille hétérogène
- Intégration de bibliothèque de redistribution de
données distribuées - Ouverture de la technologie développée
- Ouverture vers dautre interface dintergiciel
- DCOM (Cape-Open/IFP)
- JavaRMI ?
- Intégration avec PACO / GridCCM
39Merci
40Collection temporelle intérêt pratique
- Comparaison sur lutilisation dun flux de
données (FIFO) - Expérience de type  calcul et communicationÂ
- Un processus calcule et communique ses résultats
- Un processus lit et calcule
- Programme en Athapscan
- Programme sans collection temporelle
- Lordre des communications suit lordre de
création des tâches - Programme avec collection temporelle
- Lordre des communications dépend uniquement de
la disponibilité des valeurs - Avantage
- Meilleure recouvrement calcul/communication
41Résultats expérimentaux I
42Implantation sur intergiciel de communication
TimeCollection_w
TimeCollection_r
process
process
processus
processus
processus
processus
processus
processus
processus
processus
producteur
consommateur
flux de données
mémoire partagée
mémoire partagée
...
...
...
...
X
X
estampille
receive
send
Intergiciel
43Résultats expérimentaux
- Comparaison par rapport à laccès direct à un
flux de données (FIFO) - iCluster-II de lINRIA Itanium bi-processeurs
900MHz, 3GB
gain entre 10 Ã 20
44Retour à lapplication SIMBIO
- Les serveurs sont des objets CORBA
- Modèle communication est RMI
serverDM
Dynamique Moléculaire MPI Threads
O R B
client
Pilote
serverMC
Méthode du Continuum OpenMP
45Exemples dutilisation
- Collection spatiale  SpaceCollectionÂ
- SpaceCollectionltTgt x // x vecteur de T
- Accès à un élément xi référence vers un
objet partagé T - la donnée T nest pas directement accessible
- ForkltUtilisation dun élémentgt( xi )
- Collection temporelle  TimeCollectionÂ
- TimeCollection_wltTgt tc_w // flux de sortie
déléments T - TimeCollection_rltTgt tc_r // flux dentrée
déléments T - Accès à un élément xi référence vers un
objet partagé T - la donnée T nest pas directement accessible
- ForkltEcriture dun élémentgt( tc_w.get_next() )
- ForkltLecture dun élémentgt( tc_r.get_next() )
46Illustration et extensions
- Ancien type dobjet partagé dAthapascan
 Shared accès - sémantique séquentielle une lecture est liée Ã
la dernière écriture - Extension - I Collection spatiale
 SpaceCollection accès - en plus de sémantique associé, les accès
possèdent une fonction dindexation - ex. SpaceCollection lt Shared gt
- sémantique précise
- interface de programmation
- dans le mémoire de thèse
mémoire partagée
...
...
X
donnée partagée X
version
accès en lecture
accès en écriture
machine A
1
2
3
machine B
machine C
 SpaceCollection
47Extension - II collection temporelle
- Collection temporelle  TimeCollectionÂ
accès - sémantique de type flux de données
- un ordre implicite donné par
- un type dentrelacement donné (FIFO,
Last-Received, ...) - les conditions à l exécution (ex. tampon borné)
-  TimeCollection_r accès en lecture
-  TimeCollection_w accès en écriture
-
- sémantique précise
- interface de programmation
- dans le mémoire de thèse
donnée partagée
mémoire partagée
...
...
version
X
accès en lecture
accès en écriture
Temps
Temps
entrelacement
 TimeCollection_wÂ
 TimeCollection_rÂ
48Problématique - II
- Extraction du parallélisme sur les
invocations - Dépendances sur paramètres effectifs
- Dépendances sur états partagés dans une server
3-
ex. de code client
server_1 -gt m1( a ) server_2 -gt m2( b
) server_1 -gt m4( f ) server_3 -gt m3( a, b
) ...
- Solutions existants
-  Request Sequencing de NetSolve/Ninf
- Â ? Â de DIET
- explicite et à la charge de utilisateur
server-3
m3
server-2
m2
ex. CORBA
server-1
m1
m4
attent
client
attent
attent
attent
temps
server-3
m3
server-2
m2
Notre approauch
server-1
m1
m4
client
attent
attent
temps
49Collection spatiale dans SIMBIO
- Tous les objets serveurs et données sont
distribués sur plusieurs machines
SpaceCollection
SpaceCollection
ATHAPASCAN
ATHAPASCAN
A
A
DM-gtcomputeFF( A, F )
for i1 to N do DMi-gt computeFF(Ai,FI)
MAP (f,C) -gt f(ci)
50Modèle I problématique - III
Exploitation des données parallèles redistr
ibution de données entre les codes
Server parallèl
Pserver
4-
foo( A )
A
foo( A )
A
Client parallèle
le code client
A
foo( A )
A
... Pserver-gtfoo( A ) ...
foo( A )
A
- Solutions existants
- objet parallèle de PARDIS, PaCO, PaCO (SPMD et
implicite) - Â Data Parallel CORBAÂ Â de OMG (MPMD et
explicite) - le client reste toujours le glot detronglement
de communication
Notre approauch exploiter les solutions
existants dans la communication directe
- Prédiction de l'exécution
- redistribution des données
- ordonnancement de tâches
5-
Notre approauch construction on-line
de graphe de flot de données
51Interprétation abstraite et larchitecture
- HOMA détecte le parallélisme et les dépendances Ã
lexécution - Le compilateur dHOMA génère le  stub HOMA de
linterface donné -  stub HOMA intercepte les invocations de
méthodes pour créer les tâches - La gestion des dépendances par Athapascan
Client / Pilot
Serveur
Serveur
proxy HOMA
recompilé
non-changé
modèle SPMD
Code
Code
Objet
Objet
Objet
stub Homa
stub Homa
Skeleton
Skeleton étendu
gestion de flot de données ( Athapascan )
Skeleton étendu
Skeleton
POA
POA
POA
Stub
Stub
Stub
Bus logiciel (ORB)