La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Couplage à 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.

Présentations similaires


Présentation au sujet: "1 Couplage à 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."— Transcription de la présentation:

1 1 Couplage à 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

2 2 Contexte : 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 Dynamique Moléculaire Méthode du Continuum simulation moléculaire complexe [ARC SIMBIO 97-99] [ARC COUPLAGE 00-01]

3 3 Problé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 ?

4 4 Composant séquentiel process Composant parallèle process processus process Composant parallèle Composant séquentiel processus process intergiciel grappe Réseau haut débit grappe Réseau Supercomputer Visualisation Architecture logicielle Architecture matérielle Approche 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

5 5 Coordination 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 ?

6 6 Thè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)

7 7 Plan 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

8 8 Athapascan/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

9 9 « 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 programme ATHAPASCAN … Shared a, b, c; Fork ( a ); // a Shared_w Fork ( b ); // b Shared_w Fork ( c ); // c Shared_w Fork ( a, b ); // a, b Shared_r... Athapascan : exemple et exécution (1/2) … struct t1 { void operator( Shared_w p ) { … } }; … struct t4 { void operator( Shared_r p1, Shared_r p2) { … } };

10 10 ressource de calcul Interprétation abstraite à lexécution Ordonnancement t2 b t4 t1 a Repr é sentation de l ex é cution t3 c tâche version accès programme ATHAPASCAN … Shared a, b, c; Fork ( a ); // a Shared_w Fork ( b ); // b Shared_w Fork ( c ); // c Shared_w Fork ( a, b ); // a, b Shared_r... Athapascan : 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

11 11 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] accès en lecture accès en écriture version donnée partagée Par rapport à un ordre lexicographique Sémantique séquentielle mémoire partagée tâche X... Ordre

12 12 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 Athapascan : garantie de performances

13 13 accès en lecture accès en écriture version donnée partagée X mémoire partagée X... machine A machine B machine C mémoire partagée X... Distribution 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 ?

14 14 accès en lecture accès en écriture version donnée mémoire partagée X... Ordre tâche... flux de données Sé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 »

15 15 Plan 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

16 16 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 accès en lecture « Shared_r » accès en écriture « Shared_w » version donnée dans la mémoire mémoire partagée X... mémoire partagée X... « Shared » Définition Athapascan : objet partagé X = succession de versions Définition proposée: objet partagé X = ensemble daccès Temps Comment lever ces limitations ?

17 17 Collection 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é)

18 18 Exemples dutilisation Collection spatiale « SpaceCollection » - SpaceCollection x; // x ~ vecteur de T - Accès à un élément : x[i] = référence vers un objet partagé T – la donnée T nest pas directement accessible – Fork ( x[i] ) Collection temporelle « TimeCollection » - TimeCollection_w tc_w; // flux de sortie déléments T - TimeCollection_r tc_r; // flux dentrée déléments T - Accès à un élément : x[i] = référence vers un objet partagé T – la donnée T nest pas directement accessible – Fork ( tc_w.get_next() ) – Fork ( tc_r.get_next() )

19 19 Conclusion 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

20 20 Plan 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

21 21 HOMA Exemple : 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é] Pilote Visualisation Bordeaux Dynamique Moléculaire Méthode du Continuum Nancy Grenoble Bordeaux CORBA... flux de données... flux de données RMIs

22 22 Lalgorithme de couplage = une séquence de RMIs Extraction automatique de parallélisme sur les RMIs Gestion automatique des communications parallèles HOMA 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 code du pilote server-1 server-2 server-3 RMI données en entrée données en sortie RMI Problématique

23 23 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 HOMA 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 code du pilote ressource de calcul Calcul en ligne des d é pendance Ordonnancement t2 b t4 t1 a DAG associé t3 c Approche dHOMA

24 24 HOMA ClientServeur attente Invocation bloquante Serveur réception réponse Client Invocation non-bloquante résultats continuation création de tâche Invocation-par-Continuation « HOMA » Invocation synchrone « CORBA » réception résultats réponse Point critique I : recouvrement des RMIs Invocation de RMI => 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

25 25 HOMA Serveur-CServeur-P Client Protocole standard « CORBA » données Acq. Serveur-C Serveur-P Client Communication-par-n é cessité « HOMA » Acq. données requête référence requête Point 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

26 26 HOMA POA Objet Bus logiciel (ORB) Serveur Squelette Objet Client compilateur IDL interface server1{ void m3( T in a, T in b ); } Stub Description dinterface Fonctionnement 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

27 27 HOMA POA Objet Bus logiciel (ORB) Serveur Squelette Objet Client compilateur IDL Stub compilateur HOMA interface étendu Stub étendu Squelette étendu interface server1{ void m3( T in a, T in b ); } Description dinterface Fonctionnement 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

28 28 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 T HOMA = Tp = O( T1 / p + T + h( C1 / p + C ) ) + O( ) Mieux que CORBA qui séquentialise les appels RMI distants T CORBA = O( T1 + h C1 ) + O( ) Pour un programme très parallèle (T << T1) impliquant un grand volume de données (C << C1) exécuté sur P machines T HOMA = T CORBA / P Exécution séquentielle Communication via client HOMA Résultats théoriques

29 29 Plan 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

30 30 HOMA Mesures 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, MB, réseau fast-ethernet 100Mb/s

31 31 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( N*K ), C = O( 1 ) HOMA :T HOMA = T N = O( K ) CORBA : T CORBA = O( N*K ) HOMA for i=1 to N do SP[i]->ms ( x[i] ); // x en sortie SC[i]->mc ( x[i] ); // x en entrée code du pilote en CORBA SP[1].ms x[1] Ex é cution du programme Athapascan SC[1].mc SP[N].ms x[N] SC[N].mc HOMA Mesures élémentaires II

32 32 Résultats expérimentaux II HOMA Nombre de serveurs

33 33 Bande passante cumulée HOMA Le bande passante pair-à-pair moyenne HOMA = 9.5 Mbytes/s, MPI (TCP) = 11 Mbytes/s, PACO de 9.1 à 11.3MBytes/s

34 34 HOMA Retour à lapplication SIMBIO Un code « Pilote » contrôle la simulation Pilote Dynamique Moléculaire Méthode du Continuum serverMC serverDM CORBA RMIs

35 35 HOMA 1.for(int k=0; k computeFF(P in, Fmd out ); 3.if (cmstep( k )){ 4.md->computeRhs(P in, b out ); 5.cm->computeA(S in,P in,V inout ); 6.cm->computePol(b in,Fcm out ); 7.} 8.md->mix(Fcm in,Fg out,Fmd inout ); 9.md->integrate(V inout,Fmd in,P inout ); 10.if (cmstep( k )) 11.cm->integrate(S inout,Fg in ); 12.} Dépendances complexes ! Pilote de SIMBIO Pilote de SIMBIO en CORBA

36 36 Résultats expérimentaux - II HOMA Lapplication SIMBIO Le temps dexécution sur p machines Taille de données gaine 2.98 gaine 10.57

37 37 Conclusion 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-continuation » - Communication parallèle par « communication-par-nécessité » En se basant sur le développement dun compilateur IDL vers Athapascan/Kaapi - Transparence à lutilisation

38 38 Perspectives 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

39 39 Merci

40 40 Collection 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

41 41 Résultats expérimentaux I HOMA

42 42 Implantation sur intergiciel de communication mémoire partagée X... processus process processus process consommateur... TimeCollection_wTimeCollection_r flux de données Intergiciel receive producteur mémoire partagée X... send estampille

43 43 gain entre 10% à 20% Résultats expérimentaux Comparaison par rapport à laccès direct à un flux de données (FIFO) iCluster-II de lINRIA Itanium bi-processeurs 900MHz, 3GB

44 44 Retour à lapplication SIMBIO Les serveurs sont des objets CORBA Modèle communication est RMI Pilote Dynamique Moléculaire MPI + Threads Méthode du Continuum OpenMP ORBORB serverDM serverMC client HOMA

45 45 Exemples dutilisation Collection spatiale « SpaceCollection » - SpaceCollection x; // x ~ vecteur de T - Accès à un élément : x[i] = référence vers un objet partagé T – la donnée T nest pas directement accessible – Fork ( x[i] ) Collection temporelle « TimeCollection » - TimeCollection_w tc_w; // flux de sortie déléments T - TimeCollection_r tc_r; // flux dentrée déléments T - Accès à un élément : x[i] = référence vers un objet partagé T – la donnée T nest pas directement accessible – Fork ( tc_w.get_next() ) – Fork ( tc_r.get_next() )

46 46 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 * sémantique précise + interface de programmation dans le mémoire de thèse Illustration et extensions mémoire partagée X accès en lecture accès en écriture version donnée partagée X machine A machine B machine C « SpaceCollection»

47 47 Extension - 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 accès en lecture accès en écriture version donnée partagée mémoire partagée X... « TimeCollection_r » « TimeCollection_w » Temps entrelacement

48 48 Probl é matique - II Extraction du parallélisme sur les invocations Dépendances sur paramètres effectifs Dépendances sur états partagés dans une server … server_1 -> m1( a ); server_2 -> m2( b ); server_1 -> m4( f ); server_3 -> m3( a, b );... ex. de code client temps m1 m2 m3 server-1 server-2 server-3 client attent m4 attent temps m1 m2 m3 server-1 server-2 server-3 client attent m4 ex. CORBA Notre approauch Solutions existants: « Request Sequencing » de NetSolve/Ninf « ? « de DIET L explicite et à la charge de utilisateur 3-

49 49 Collection spatiale dans SIMBIO Tous les objets serveurs et données sont distribués sur plusieurs machines ATHAPASCAN DM-> computeFF ( A, F ) A SpaceCollection ATHAPASCAN for i=1 to N do DM[i]-> computeFF (A[i],F[I]) A SpaceCollection MAP : (f,C) -> {f(c[i])} HOMA

50 50 Mod è le I: probl é matique - III Exploitation des données parallèles redistribution de données entre les codes Client parallèle Server parallèl... Pserver->foo( A )... le code client A foo( A ) A A A A Pserver Prédiction de l'exécution redistribution des données ordonnancement de tâches Notre approauch :exploiter les solutions existants dans la communication directe 4- Solutions existants: objet parallèle de PARDIS, PaCO, PaCO++ (SPMD et implicite) « Data Parallel CORBA » de OMG (MPMD et explicite) L le client reste toujours le glot detronglement de communication 5- Notre approauch : construction on-line de graphe de flot de données HOMA

51 51 Interpré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 HOMA POA Objet modèle SPMD Bus logiciel (ORB) Serveur Client / Pilot Stub Code stub Homa stub Homa gestion de flot de données ( Athapascan ) Skeleton POA Skeleton étendu Objet proxy HOMA Stub POA Skeleton étendu Objet Skeleton Serveur recompilé non-changé


Télécharger ppt "1 Couplage à 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."

Présentations similaires


Annonces Google