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

Technologies pour le Metacomputing Thierry Priol IRISA/INRIA.

Présentations similaires


Présentation au sujet: "Technologies pour le Metacomputing Thierry Priol IRISA/INRIA."— Transcription de la présentation:

1 Technologies pour le Metacomputing Thierry Priol IRISA/INRIA

2 Métacomputing üIntroduction, définition et applications üTechnologies pour le Metacomputing üCobra: un environnement fondé sur CORBA w Un exécutif pour des grappes de PC w Concept dobjet CORBA parallèle üQuelques applications en cours de réalisation wTraitement du signal wRéalité virtuelle

3 Introduction, définitions üMetacomputer (métacalculateur) wCollection de calculateurs/supercalculateurs wDispersion géographique des calculateurs/supercalculateurs wConnexion par un réseau à très haut-débit wVision logique dune seule machine: le métacalculateur Il y a 15 ans, cela sappelait tout simplement un système distribué ! üMetacomputing (métacalcul) wProgrammation des métacalculateurs (systèmes, éxécutifs, langages, outils, applications)

4 Meta application üUne application qui ne peut sexécuter sur une seule machine wlimitation des ressources (puissance des processeurs, mémoire, disque) wabsence de certains types de ressources (visualisation, …) üUne application qui est une collection de modules relativement indépendants pouvant sexécuter de façon asynchrone üLe parallélisme est présent à lintérieur dun module üExemple dune méta application: conception dun satellite wAnalyse de structure, dynamique, thermique, optique,...

5 Métacomputing: vers linformatique de demain ? üUn accroissement sensible de la demande en ressources de calculs wGénéralisation des outils de simulation à tous les niveaux de lindustrie (Petites, Moyennes et Grandes Entreprises) üCalculateurs de plus en plus complexes à utiliser üCalculateurs de plus en plus chers à maintenir üUn regard sur le passé wAnalogie avec lénergie électrique...

6 Energie

7 Informatique

8 Applications du Métacomputing üVisualisation à distance wSystèmes de réalité virtuelle (CAVE, …) üSimulation distribuée (ou Problem Solving Environment) wLa puissance de calcul disponible sur un simple PC permet denvisager le couplage de codes de simulation üTravail coopératif wFaire travailler plusieurs experts simultanément sur les résultats dune simulation

9 Problèmes liés au Metacomputing üMetacomputer : une collection de machine wenvironnement logiciel hétérogène (système dexploitation, exécutif) wpas de partage de fichiers possible wrègles de sécurité différentes dans chaque site üLes problèmes à résoudre wAllocation de ressources wCommunication wGestion des données distribuées wSécurité wTolérance aux défaillances

10 Allocation de ressources: problèmes üAutonomie des sites participants wdifférentes organisations avec leurs propres règles (allocation, sécurité, …) üGestionnaire de ressources hétérogènes wCondor, NQE, CODINE, EASY, LSF, PBS, LoadLeveler,… üExtensibilité wajout de nouvelles ressources, impact sur les autres sites ? üAllocation simultanée des ressources distribuées wCertaines applications nécessitent une co-allocation (allocation simultanée de ressources sur plusieurs sites)

11 Communication üContraintes wTechnologies réseaux variées (ATM, HIPPI, Gigabit, …) wPerformance (TCP/IP ?) wInteropérabilité üDifférentes approches: wEchange de message (PVM, MPI) wRPC (DCE, …) wObjet distribué (CORBA, …)

12 Gestion de données distribuées: problèmes üLa distribution dune application, sous forme de composants, pose le problème de laccès aux données wChaque composant consomme et produit des données (fichiers) wEchange de données (transfert de fichiers entre machines) üMécanismes de mouvement et daccès aux données wLimitation des solutions existantes (NFS, MPI-IO, WWW, …) wContraintes de conception: Doit nécessiter peu de modifications dans les applications Ne doit pas imposer de fortes contraintes à linstallation Doit pouvoir exploiter le maximum de performance offerte par le réseau

13 Sécurité üUtilisation de plusieurs machines avec ses propres règles de sécurité wImpossible de transférer des fichiers de façon transparente (mot de passe!) üConfidentialité des données wTransfert de données confidentielles à léchelle de l Internet wCryptage des données

14 Tolérance aux défaillances üMeta application: une application distribuée! wQue faire si un composant de lapplication tombe en panne ? üTechniques wCheckpointing problème de la définition dun état cohérent nécessite souvent la modification des logiciels (définition dun état) sauvegarde des états wRéplication impossibilité de répliquer tous les modules quel module choisir ?

15 Quelques exemples denvironnements pour le Metacomputing üApproche par échange de messages wGlobus üApproche par RPC (Remote Procedure Call) wNetsolve wNinf üApproche orientée objet distribué wPardis wCobra

16 Approche par échange de messages

17 Globus I. Foster et C. Kesselman üUne boite à outils plutôt quun environnement de metacomputing üUn ensemble de services: wAllocation de ressources (GRAM) wCommunication unicast/multicast (Nexus) wGestion de linformation, état du système (MDS) wSécurité (GSI) wMonitoring (HBM) wAccès aux données à distance (GASS) wGestion des exécutables (GEM)

18 Architecture de Globus

19 Allocation de ressource (GRAM) üConcept de gestionnaire local des ressources wOffrir une vision homogène de lallocation des ressources quelque soit le gestionnaire de ressource utilisé (NQE, LSF, CODINE, …) üService dinformation wDisponibilité, caractéristiques, propriétés des ressources üLangage de spécification de ressources (RSL) wLangage pour exprimer un besoin particulier en ressources Exemple: &(executable=myprog) (|(&(count=5)(mempry>=64)) (&(count=10)(memory>=32))) üCourtier de ressources wSpécialisation: transformation de requêtes RSL en requêtes plus simples avec lajout dun nom de machine identifiant le gestionnaire de ressource

20 Allocation de ressources (GRAM)

21 Accès aux données (GASS) üGASS: Global Access to Secondary Storage üUn mécanisme de mouvement et daccès aux données wOptimisé pour les patrons daccès des applications de metacomputing wImplémentation de nécessitant pas de services particuliers wContrôle de lutilisateur pour optimiser les transferts de données cache de donnée, filtrage, … üProblèmes à résoudre: wNommage, API, authentification, communication, performance...

22 Accès aux données (GASS) üNommage par URL wx-gass://host:port/filename wftp://host/filename üInterface de programmation: proche de celle dUNIX wglobus_gass_open() wglobus_gass_close() wglobus_gass_cache() üSémantique wcopie vers le cache à louverture wmise à jour du fichier à la fermeture si modification üPerformance: optimisation pour des patrons daccès (via un cache) wlecture-seulement (à partir du cache local) wécriture-seulement (vers le cache local) wlecture-écriture (à partir/vers le cache local) wécriture-seulement, ajout (vers le serveur à distance) üSupport de GASS dans GRAM w&(executable=x-gass://quad:12/file) (stdin = x-gass://quad:12/myin) (stdout = /home/bester/output) (stderr = x-gass://qd:1/dev/stdout)

23 Accès aux données (GASS)

24 Approches par RPC

25 Netsolve (Univ. Tennessee) H. Casanova & J. Dongarra üConcept de librairie étendu à léchelle dInternet ou dun Intranet w« Librairie virtuelle » wEviter linstallation de logiciels üConcepts de base waccès à distance à des ressources de calcul (client/serveur) wEspace de nommage wDonnées du problème sont transmises à un serveur wInterfaces avec C, Fortran, Matlab, Java, … wEquilibrage des charges entre serveurs

26 NetSolve: programmation üDu coté du client wTransparence de la localisation des serveurs (réseau transparent) wAccès à la « librairie virtuelle » par identificateur wAppel synchrone/asynchrone parameter (MAX=100) double precision A(MAX,MAX),B(MAX) integer IPIV(MAX),N,INFO,LWORK integer NSINFO cSolve linear equations call DGESV(N,1,A,MAX,IPIV,B,MAX,INFO) call NETSL(DGESV(),NSINFO, N,1,1,MAX,IPIV,B,MAX,INFO)

27 NetSolve: accès aux logiciels üDu coté du serveur wGestion du matériel et du logiciel wInterface avec les logiciels scientifiques installés sur le serveur BLAS, LAPACK, ItPack, FitPack, FFTPack, NAG Software, … wOutils pour linstallation de nouveaux logiciels (Compilateur NetSolve) üDu coté de lagent wCourtier en ressources wStocke linformation concernant la disponibilité des machines sur le réseau et des logiciels scientifiques disponibles wEquilibrage des charges par prédiction des temps dexécution performance du réseau performance du serveur (LINPACK) et de sa charge Temps dexécution du logiciel en fonction de la taille du problème

28 Ninf (Electronical Lab., Tsukuba) Nakada et al. üNinf wNetwork Infrastructure for Global Computing üAccès aux serveurs par RPC wprotocole dynamique + interopérabilité üInterface de programmation wRPC synchrone/asynchrone wTransaction wCallback üLangage de description dinterface wLangage IDL spécifique üEquilibrage dynamique des charges wallocation dynamique des ressources MetaServer C Client NumericalRoutine Ninf Server Ninf Server NumericalRoutine Ninf Server Ninf Server NumericalRoutine Ninf Server Ninf Server Mathematica Client Java Client Excel Client

29 Ninf: Interface de programmation üCaractéristiques: wLangage cible: C, C++, Fortran, Java, Lisp …,Mathematica, Excel Nommage des fonctions: ninf://HOST:PORT/ENTRY_NAME üAppel synchrone/asynchrone: double A[n][n],B[n][n],C[n][n]; /* multiplication de matrice */ Ninf_call(«ninf://etlhpc.etl.go.jp:3000/dmmul»,n,A,B,C); id = Ninf_call_async(«dmmul»,n,A,B,C); Ninf_wait(id);

30 Ninf: Interface de programmation üTransaction: wexploitation du parallélisme au niveau du réseau wanalyse de dépendance à lexécution wexécution de type dataflow double A[n][n],B[n][n],C[n][n]; Ninf_transaction_start(); Ninf_call(«dmmul»,n,A,B,E); Ninf_call(«dmmul»,n,C,D,F); Ninf_call(«dmmul»,n,E,F,G); Ninf_transaction_end(); dmmul ABCD EF G

31 Ninf: Interface de programmation üCallback: wnotification du client par le serveur wexécution dune fonction du client par le serveur Void CallbackFunc(…) { /* corps de la fonction */ } Ninf_call(« func », arg, …, CallbackFunc); Ninf_c all ClientServeur CallbcakFu nc

32 Ninf: Langage de description dinterface Define dmmul(long mode_in int n, mode_in double A[n][n], mode_in double B[n][n], mode_out double C[n][n]) description Required libXXX.o CalcOrder n^3 Calls C dmmul(n,A,B,C); üSpécifications: wFonctions et arguments (mode) wLibrairies associées aux fonctions wComplexité wSpécification du langage dimplémentation Ninf Procedure IDL File Ninf Stub Generator Stub Program Ninf Computational Server Ninf Executable

33 Ninf: équilibrage des charges üComment répartir les calculs afin dexploiter au mieux les ressources de calcul ? wChangement dynamique de la charge (réseau, serveurs) wInformations distribuées üInformations nécessaires pour une répartition équitable de la charge wCaractéristiques des serveurs wEtat des serveurs (charge, …) wEtat des réseaux (latence, débit) wCaractéristiques des applications (complexité, taille du problème, …)

34 Ninf: équilibrage des charges Client Client Side Server Side Client Server Directory Service Directory Service Scheduler Data Throughput Measurement Load query Schedule query Client Proxy Client Proxy Server Proxy Server Proxy Server Probe Module Server Probe Module Server Proxy Server Proxy Server Proxy Server Proxy MetaServer

35 Approche orientée objet distribué

36 CORBA et le Metacomputing üCORBA est un standard pour la conception dapplications distribuées proposé par lOMG (Object Management Group) wOrienté objet wMécanisme dinvocation à distance (RPC) wIndépendance vis à vis du matériel, des systèmes dexploitation et des langages de programmation wIndépendance vis à vis des implémentations (interoperabilité) wConcept de bus logiciel üComposants principaux: wInterface Description Language (IDL) wObject Request Broker (ORB): communication entre objets wEnsemble de services (nommage, événement, …)

37 Architecture de CORBA DII IDL stub IDL skeleton DSI Adaptateur dobjet ORB interface Implémentation de lobjet client ORB core operation() in args out args + return value GIOP / IIOP / ESIOP Répertoire dimplémentation Répertoire dinterface

38 Exemple de spécification IDL interface MatOps { typedef long vect[100]; typedef long mat[100][100]; void MatVect( in mat A, in vect B, out vect C ); }; Object Request Broker (ORB) IDL skeleton IDL stubObject Adapter Implémentation de lobjet Invocation de lobjet Compilateur IDL server->MatVect( A, B, C); Client Serveur

39 Pardis (Univ. Indiana) K. Keahey et D. Gannon üUne approche « à la CORBA » wreprend les même concepts: ORB + IDL wa priori non interopérable avec des implémentations de CORBA üIntégration du parallélisme wConcept dobjet SPMD wConcept de séquence distribuée üSupport de lasynchronisme grâce au future wAssocié à lappel non bloquant dune opération wfuture = valeur + sémaphore wExemples dutilisation Traitement des résultats intermédiaires (visualisation, mise au point, …) Couplage de codes (synchronisation lâche)

40 Pardis: concept dobjet SPMD typedef dsequence diff_array; interface diff_object { void diffusion(in long timestep, inout diff_array darray); }; Application A diff_object diff_object* diff = diff_object::_spmd_bind(example, HOST1); diff->diffusion(64, my_diff_array); spmd_bind Application B diffusion IDL (du service) C++ (client)

41 Pardis: les futures interface direct { void solve(in mat A, in vec B, out vec X); }; interface iterative { void solve(in double tol, mat A, in vec B, out vec X); }; IDL service BIDL service A direct_var = d_solver = direct::_spmd_bind(direct_solver, HOST_1); iterative_var = i_solver = iterative::_spmd_bind(itrt_solver, HOST_2);... PARDIS::future X1; vec_var X1_real, X2_real; i_solver->solve_nb(tolerance, A, B, X1); d_solver->solve_nb(A,B,X2_real) X1_real = X1; double diff = compute_diff(X1_real, X2_real); C++ (client) Client AB

42 Cobra: un environnement fondé sur CORBA üUn environnement à léchelle dun Intranet wProblem Solving Environment wApplication de type client/serveur ou serveur/serveur (couplage de codes) üAdoption de standards wCORBA: communication entre composants wMPI: communication au sein dun composant üCobra wun gestionnaire de ressources pour un réseau de PC/stations de travail wune extension de CORBA pour supporter le parallélisme (SPMD)

43 CORBA et le parallélisme SPMD üUn programme parallèle SPMD est un ensemble de processus identique üComment encapsuler un tel programme au sein dun objet CORBA parallèle ? proc obj. proc IDL Objet CORBA Programme Parallèle Extended-IDL Objet CORBA parallèle obj. MPI Programme Parallèle Processus SPMD

44 Concept dobjet CORBA parallèle Talon IDL Courtier dobjet (ORB) Process Serveur 1Serveur n Objet CORBA parallèle = Collection dobjets CORBA Service parallèle... Client Invocation objet Implémentation de lobjet Adaptateur dobjet Squelette IDL Implémentation de lobjet Adaptateur dobjet Squelette IDL

45 Objet CORBA parallèle mise en oeuvre üContraintes wNe pas modifier le courtier dobjets (ORB), rester compatible CORBA üGestion des données wDistribution ou réplication des valeurs de paramètres au sein de la collection dobjets üInvocation entre objets wObjet standard objet parallèle wObjet parallèle objet standard wObjet parallèle objet parallèle üInterface avec les services CORBA wnommage des services parallèles

46 Compilateur Extended-IDL üDéfinition de linterface dun service parallèle wDistinction entre service standard et service parallèle wDistribution des valeurs des paramètres lors dune invocation üGénération du talon wAppel simultané de chaque opération sur lensemble des objets de la collection wUtilisation dune librairie de communication (MPI) au sein du talon pour la distribution ou la redistribution des données üGénération du squelette wStockage de linformation sur la distribution des paramètres

47 interface [2^n] MatOps {... }; interface [*] Compute: MatOps {... }; Spécification du nombre dobjets au sein dune collection üPlusieurs possibilités offertes wun nombre indéterminé wUn nombre fixe wUne fonction üProblème de lhéritage dinterfaces interface [*] I1 {... }; interface [4] I2 {... }; interface [2.. 4] I3 {... }; interface [2^n] I4 {... }; interface [*] MatOps {... }; interface [2^n] Compute: MatOps {... };

48 Spécification de la distribution des paramètres üMode de distribution proche de celle dHPF void MatVect( in dist[BLOCK][*] mat A, in vect B, out dist[BLOCK] vect C ); void MatVect( const mat A, const vect B, vect C ); void MatVect( const darray_mat &A, const darray_vect &B, darray_vect &C ); Compilateur Extended-IDL TalonSquelette Nouveau type pour les paramètres distribués

49 A B C #2 A B C #1 wDistribution physique des données (mode in) wConstruction dune requête multiple wAssemblage des données distribuées (mode out) Requests A C pco->MatVect( A, B, C ); ORB B obj. 1 obj. 2 squel. talon Génération du talon void MatVect(in dist[BLOCK][*] mat A, in vect B, out dist[BLOCK] vect C ); objet Objet CORBA parallèle Objet CORBA client serveur

50 Génération du talon üLorsque lobjet appelant est parallèle et lappelé est séquentiel wElection dun objet pour linvocation wAssemblage des données üLorsque à la fois lobjet appelant et lobjet appelé sont parallèles wElection dun sous-ensemble dobjets pour l invocation wRedistribution des données en fonction de la distribution chez lappelant et celle de lappelé Objet CORBA parallèle ORB squel. obj. Objet CORBA squel. obj. 1 obj. p Objet CORBA parallèle client serveur obj. n talon obj. 2 talon obj. 1 talon squel. MPI

51 Génération du squelette wStockage de linformation sur la distribution associée à lobjet (distributed array). Objet 1 Objet 2 A B squel. A B talon Objet A B ORB squel. Objet ORB void op1( in vect A, in dist[BLOCK] vect B ); void op2( in vect C ); pco->op1( A, B ); co->op2( A ); co->op2( B ); talon MPI

52 Interface avec le service de nommage üLe service de nommage permet dassocier un nom à un objet OpMat_Impl* obj = new OpMat_Impl(); NamingService->join_collection("Matrice", obj);... NamingService->leave_collection("Matrice", obj); Serveur: objet de la collection objs = NamingService->resolve_collection("Matrice", obj); svr = OperationsMatricielles::_narrow(objs) /*... */ svr->multiplication(A,B,C); Client

53 Cobra: un éxécutif pour les objets CORBA parallèles üObjectifs wExécution des objets CORBA parallèles wAllocation de ressources aux utilisateurs wAdministration de la plate-forme üContraintes wServices accessibles sur le réseau üExécutif Cobra wUn ensemble de services CORBA pour une grappe de PCs interconnectés par SCI PC SMP 2 x Pentium Pro/II 128 Mo EDO RAM 2 Go Disk PCI-SCI Card Comm. SCI Grappe SCI Anneau SCI (200 MB/s) Nœud de calcul Nœud de service

54 Lexécutif Cobra üGestion de ressources wMachine parallèle virtuelle wRégion de mémoire partagée üAdministration wConfiguration wUtilisateurs üExtensibilité wPlusieurs nœuds de service

55 Application de traitement du signal üIDAHO: une application de traitement du signal (électromagnétisme) üUn modèle réduit davion est illuminé par un faisceau pour chaque angle de (de 0 à 360°) et pour des fréquences variant de 2 à 8 GHz üLexpérience dure 90 heures et génère 1Goctets de données Chambre Modèle réduit sur un socle pivotant

56 Architecture logicielle Services Cobra Objets CORBA Création de la VPM (2) proxy IDAHO Objet CORBA IDAHO Objet CORBA parallèle... Destruction de la VPM (6) Initialisation (3) Exécution (4) Visualisation (5) Applet Java Nœuds de service Nœuds de calculStation de travail Serveur WEB Apache Chargement de lapplet JAVA du serveur WEB (1)

57 üRADIOSITE: une étape de prétraitement pour calculer léchange dénergie entre objets dans une scène üLe calcul du radiosité est effectué de façon itérative üPlusieurs heures de calcul üNécessité de visualiser à chaque itération dans le cas dun processus doptimisation (placement de sources lumineuses) Applications de réalité virtuelle Résultats du calcul de radiosité

58 Réalité Virtuelle VRML Applet Nœud de calcul Nœud de service Services Cobra Objets CORBA Création de la VPM (2) proxy RADIOSITY Objet CORBA RADIOSITY Objet CORBA parallèle... Destruction de la VPM (6) Initialisation (3) Exécution (4) Visualisation (5) Serveur WEB Apache Chargement de lapplet JAVA du serveur WEB (1) Station de travail RADIOSITY

59 Conclusion & perspectives üMetacomputing wDe nombreux systèmes existent mais ne sont pas interopérables! wOn réinvente souvent la roue! wRéels besoins: à léchelle de lINTERNET ou de lINTRANET ? üNos travaux actuels et le futur proche wApproche: utilisation et extension de standards existants wConception dun ORB efficace (ESIOP) wSystème de gestion de données (service CORBA) wLangage de coordination pour la conception dapplications wApplications via des contrats (Aerospatiale, Esprit Jaco3, Soft-IT)


Télécharger ppt "Technologies pour le Metacomputing Thierry Priol IRISA/INRIA."

Présentations similaires


Annonces Google