Une plateforme de Calcul Java pour Grille d ordinateurs



Documents pareils
DG-ADAJ: Une plateforme Desktop Grid

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Architecture de la grille

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Software Engineering and Middleware A Roadmap

Grid5000 aujourd'hui : Architecture & utilisation

Conception des systèmes répartis

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

CORBA haute performance

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

JOnAS Day 5.1. Clustering

Cours de Génie Logiciel

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Conception et contrôle des SMA tolérants aux fautes

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Laboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux

Prise en compte des ressources dans les composants logiciels parallèles

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Présentation Alfresco

Vérifier la qualité de vos applications logicielle de manière continue

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

RFID: Middleware et intégration avec le système d'information Olivier Liechti

Solutions informatiques (SI) Semestre 1

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Les environnements de calcul distribué

Ricco Rakotomalala R.R. Université Lyon 2

Architecture et Extensions d ArcGIS Server

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Architectures n-tiers Intergiciels à objets et services web

Plan du cours. Incarnations/applications du Grid Computing. Super-calcul virtuel

Guide d installation de MEGA Desktop Application MEGA 2009 SP4

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes.

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

Fribourg. Une démarche de spécification, de. d applications à base de services Web auto-adaptables*

Mise en place d'un gestionnaire de données léger, pluridisciplinaire et national pour les données scientifiques

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

MEAD : temps réel et tolérance aux pannes pour CORBA

Mécanismes pour la migration de processus

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Vulgarisation Java EE Java EE, c est quoi?

Formation Symantec Veritas Cluster Server 6.x pour Unix

CAHIER DES CHARGES D IMPLANTATION

Administration de Citrix NetScaler 10.5 CNS-205-1I

Fouillez facilement dans votre système Big Data. Olivier TAVARD

1. Introduction à la distribution des traitements et des données

WEA Un Gérant d'objets Persistants pour des environnements distribués

Cluster High Availability. Holger Hennig, HA-Cluster Specialist

Patrons de Conception (Design Patterns)

Projet Active Object

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Threads. Threads. USTL routier 1

Architecture distribuée

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Détection d'intrusions en environnement haute performance

Le cloud computing au service des applications cartographiques à haute disponibilité

CORBA. (Common Request Broker Architecture)

JOnAS 5. Serveur d application d

La carte à puce. Jean-Philippe Babau

Armelin ASIMANE. Services RDS. de Windows Server 2012 R2. Remote Desktop Services : Installation et administration

Sybase High Avalaibility

Rapport d activité. Mathieu Souchaud Juin 2007

JASMINe. Outils de gestion et supervision d'infrastructure intergicielle.

Passage à l échelle d applications java distribuées auto-adaptatives


Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

VMware vsphere 5 Préparation à la certification VMware Certified Professional 5 Data Center Virtualization (VCP5-DCV) - Examen VCP510

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Virtual Data Center d Interoute. Prenez la main sur votre Cloud.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Consolidation. Grid Infrastructure avec la 11gR2

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Cloud Computing. Introduction. ! Explosion du nombre et du volume de données

Projet ViSaGe : implémentation de l administration et du monitoring de ViSaGe (Virtualisation du Stockage appliquée aux Grilles informatiques)

Remote Method Invocation Les classes implémentant Serializable

Change the game with smart innovation

Planifier la migration des applications d entreprise dans le nuage

Equilibrage de charge (Load

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

La continuité de service

Les réseaux de campus. F. Nolot

Vérification formelle de la plate-forme Java Card

Transcription:

Une plateforme de Calcul Java pour Grille d ordinateurs R. Olejnik, V. Fiolet, I. Alshabani, G. Lefait, B. Toursel ENST, Paris 6 Avril 2006 Laboratoire d informatique de Lille

Plan Introduction Environnement DG-ADAJ Framework CCADAJ Système d information Contexte du projet DisDaMin Déploiement sur grilles Conclusions et Perspectives

Introduction Projet DG-ADAJ : Plateforme middleware pour Grille Java Computing Observation et Equilibrage de charge Framework de composants Open source Projet DisDaMin (DIStributed Data MINing): Data Mining : processus d extraction de connaissances Domaines divers : Banque, assurances, biologie, médecine.. Haute Performance (i.e. parallèle et distribué). Classification non supervisée (clustering) Experimentations sur Grid5000

GRID 5000 Projet GRID 5000 plateforme expérimentale configurable, contrôlable, monitorable 9 sites géographiquement distribués en France Bordeaux, Grenoble, Lille, Lyon, Nancy, Orsay, Rennes, Sophia- Antipolis, Toulouse 9 clusters comportant chacun de 100 à 1000 nœuds => 5000 CPUs Interconnexion par le réseau d éducation et de recherche RENATER Chaque cluster est connecté à Renater à 1 Gb/s (10 Gb/s dans un futur proche)

Environnement DG- ADAJ

Introduction à DG-ADAJ Contexte Objectifs Caractéristiques principales de DG-ADAJ Architecture & Environnement Allocation statique optimisée Equilibrage de charge dynamique Framework CCADAJ Conclusion

DG-ADAJ : Applications Java Distribuées Composées d objets répartis sur les noeuds d une grille de stations de travail (Desktop Grid). Existence de plusieurs tâches (flots de contrôle) dans l application. Avec des besoins différents en calcul. Avec des communications intertâches Possibilité d assigner les tâches à l une ou l autre des JVMs installées sur les noeuds.

Autres projets en Java IBIS Système pour calcul distribué sur grille Fast RMI, communication de groupe, replication d objets Proactive Librairie d API basé sur MOP(Meta-Object Protocol) Composants et déploiement Fractal MOCCA/H2O MOCCA : plateforme de composants distribués CCA H2O : plateforme de partage de ressources en Java Disribution et équilibrage des composants sur la plateforme

Caractéristiques de DG-ADAJ Image unique de la grille (Single System Image). Mécanismes spéciaux de niveau middleware : Adaptation dynamique et automatique aux variations du calcul et de la disponibilité des noeuds. Placement initial optimisé sur les nœuds. Bibliothèque de programmation et/ou de composants pour exprimer le parallélisme et la distribution. Mise en oeuvre de JavaParty Framework de composants pour Grille de Calcul

Projet Java Party Université de Karlsruhe (Allemagne) Plateforme spécifique pour les applications distribuées Extention du langage Java : mot-clé remote pour déclarer les classes distribuées Utilisation d un pré-compilateur Transparence de l appel des méthodes pour accéder aux attributs Migration des objets non-actifs

Architecture de DG-ADAJ D-GRID Node Center Application CFDA framework CCA-components D-GRID Node Center DG-ADAJ control components, observation + distribution Java + communication JavaParty RMI JVM JVM network

Environnement DG-ADAJ D-Grid Node 1 Center (desktop system) Desktop Grid environment D-Grid Node 3 Center (cluster) Desktop Grid environment CFDA framework CFDA framework CCA component DG-ADAJ RMI RMI DG-ADAJ CCA component CCA compo nent CCA component CCA compo nent CCA component D-Grid Node 2 Center (SMP) Desktop Grid environment LAN / WAN Desktop Grid environment CFDA framework CFDA framework CCA component CCA compo nent CCA component DG-ADAJ RMI RMI DG-ADAJ CCA compo nent Application deploying D-Grid Host Server Desktop Grid server infrastructure CCA component CCA component Submitting a Java Application resource monitoring & management placement optimizer

DG-ADAJ: Optimisation statique Code : TASK 1 if flag == true then A = A + B Res1 = A x C Res2 = B x D else A = A + C Res1 = A x B Res2 = C x D endif TASK 2 if flag == true then E = E + F Res3 = E x G Res4 = F x H else E = E + G Res3 = E x F Res4 = G x H endif Control/Data Dependency Graph (CDDG) of a method: 0 aload_0 1 getfield #8 <MatrixMult/NumOperTask.flag> 4 ifeq 93 (+89) 7 aload_0 8 getfield #4 <MatrixMult/NumOperTask.A> 11 aload_0 12 getfield #4 <MatrixMult/NumOperTask.A> 15 aload_0 16 getfield #3 <MatrixMult/NumOperTask.B> 19 invokestatic #12 <MatrixMult/MatrixOps.add> 22 new #13 <MatrixMult/SingleMul> 25 dup 26 aload_0 27 getfield #5 <MatrixMult/NumOperTask.O> 30 aload_0 31 getfield #4 <MatrixMult/NumOperTask.A> 34 aload_0 35 getfield #2 <MatrixMult/NumOperTask.C> 38 aconst_null 39 invokespecial #14 <MatrixMult/SingleMul.<init>> 42 astore_1 43 new #13 <MatrixMult/SingleMul> 46 dup 47 aload_0 48 getfield #7 <MatrixMult/NumOperTask.Q> 51 aload_0 52 getfield #3 <MatrixMult/NumOperTask.B> 55 aload_0 56 getfield #6 <MatrixMult/NumOperTask.D> 59 aconst_null 60 invokespecial #14 <MatrixMult/SingleMul.<init>> 63 astore_2 64 new #15 <java/lang/thread> 67 dup 68 aload_1 69 ldc #16 <mul ac> 71 invokespecial #17 <java/lang/thread.<init>> 74 invokevirtual #18 <java/lang/thread.start> 77 new #15 <java/lang/thread> 80 dup 81 aload_2 82 ldc #19 <mul bd> 84 invokespecial #17 <java/lang/thread.<init>> 87 invokevirtual #18 <java/lang/thread.start> 90 goto 176 (+86) 93 aload_0 94 getfield #4 <MatrixMult/NumOperTask.A> 97 aload_0 98 getfield #4 <MatrixMult/NumOperTask.A> 101 aload_0 102 getfield #2 <MatrixMult/NumOperTask.C> 105 invokestatic #12 <MatrixMult/MatrixOps.add> 3 6 9 11 5 5 5 data dependencies method call

DG-ADAJ: Phase de regroupement Dans la phase de regroupement (clustering), des macronoeuds sont construits à partir des blocs élémentaires provenant du graphe CDDG. PAR go() COND flag COND flag true false true false A+B A+C E+F E+G PAR PAR PAR PAR A C B D A B C D E G F H E F G H

DG-ADAJ: Phase de mappage JVM0 JVM1 JVM2 JVM3 Les macronoeuds sont mappés sur les JVMs. Les Macronoeuds appartenant à des branches conditionnelles en mutuelle exclusion sont mappés en parallèle sur la même JVM. Legend thread spawn condition time

DG-ADAJ: Equilibrage dynamique de la charge La charge est calculée en fonction de l intensité des invocations de méthodes. Un algorithme en 2-phase est appliqué concurrement avec l exécution de l application : Détecte les déséquilibres dans la distribution Corrige ces déséquilibres. Les objets sont transférés des machines surchargées vers des machines sous-chargées. Mécanisme d observation des relations entre objet

Système de gestion des informations DG-ADAJ distribue l application JXTA construit le réseau des pairs Les mesures locales sont propagées pour obtenir des décisions globales

Fonctionnement JXTA Rendezvous Peer Location Server 1. Le réseau de pairs locaux choisit un pair de rendezvous. 2. Le pair rendezvous contacte le serveur location. 3. Le serveur note l endroit du rendezvous. Edge Peers 4. Le serveur envoie l information des autres pairs de rendezvous au rendezvous

JXTA & DG-ADAJ Mesures des charges: Les pairs mesurent leurs charges et évaluent les graphes d objets. Ils envoient les informations à leurs Rendezvous Les Rendezvous communiquent leurs valeurs. Les déséquilibre de charge sont détectés. Equilibrage de charge: Basé sur les mécanismes de migration d objets de DG- ADAJ. Le travail échangé se fait de pair à pair.

Framework CCADAJ

CCADAJ Framework Control Components Application Builder Framework Services C C A Tools for expression of parallelism Load Balancing System Migration of active objects A D A J JavaParty Transparency JVM RMI JVM Distant Access Portability System I System II Network

Common Components Architecture: Composants et Ports Composants et Ports Les composants interagissent au travers de ports Un composant peut fournir un port (service) L implémentation de l interface du port le service que le composant offre Le composant peut utiliser un port L appel de la méthode dans le port le besoin du composant à utiliser Connecter les composant à travers les ports provides-uses

Framework CCA: Frameworks Un moyen de manipuler les composants Les composer pour en créer des applications Échanges entre les ports sans exposer les détails de l implémentation du composant Fournir un minimum de services standards Le framework lui-même est un composant et ses services sont des ports Pour les connexions entre les autres framework Un composant implémente l interface Component C est le code d interaction avec le framework de l intérieur du composant

Code d interaction du framework setservices CCA.Services provides MultiplierPort uses AdderPort Multiplier Code MultiplierComponent MultiplierPort AdderPort MultiplierComponent Interface Component { void setservices(cca.services svc) } Le framework instancie le composant Le framework appelle la méthode setservices du composant Il passe l objet Services setservices declare les ports utilisés et fournis par le composant Le composant ne sais rien du monde extérieur L objet Services assure la communication avec le framework Le framework maintenant sais comment le composant se connecte à d autres composants

CCA: Interaction entre composants GoPort MultiplierPort MultiplierPort AdderPort AdderPort StarterComponent MultiplierComponent AdderComponent GoPort Un port provides spécial pour «exécuter» le composant Implémente la méthode go() qui commence l execution du composant Le framework recherche les port go et les utilise UsesPort (multiplierport, AdderPort) Appelle getport pour obtenir le port de l objet Services Appelle la méthode dur le port Ex: x=multiplierport.getproduct(y,z); Connection ports uses/provides Pas de uses/uses ou provides/provides Les ports sont connecté par types Les types des port doivent se correspondre Les noms de ports sont uniques à l intérieur d un composant Le framework met de l information sur le composant fournisseur dans l objet Service du composant utilisateur connect StarterComponent MultiplierPort MultiplierComponent MultiplierPort connect MultiplierComponent AdderPort AdderComponent AdderPort

GoPort Composition (super-component) ProvidesPort InnerProvides SuperComponent UsesPort InnerUses InnerComponent InUses2 InnerComp2 Some Additional Services Super composant Un composant A des ports provides, uses et/ou go Services supplémentaire (framework) Instanciation des composants intérieurs Mécanisme d exposition des composants intérieurs vers l extérieur Activation des composants intérieurs Connections des composants intérieurs

Remote Container

Composants de Contrôle Aider l utilisateur à construire une application parallèle à partir des composants Fonctionnalité pour la programmation parallèle Super-composant Composant Pipeline Composant Parallèle Distributeur Collecteur

Pipeline Computing1 Computing2 invokeport event getobjectport goport Data buffer thread data data data Data source Stage1 Stage2 Data consumer framework

Distributeur Composant parallèle Distribuer un tableau de données sur plusieurs composant pour faire du calcul Utiliser un port multiple connecté à plusieurs ports de même type d autres composants Collecteur Collecter les données de plusieurs composant de calcul et les mettre dans un tableau. Utiliser un port multiple

Composant Parallèle (suite)

Exemple: Composant Parallèle

Conclusion DG-ADAJ DG-ADAJ est un middleware permettant un équilibrage de charge statique et dynamique, optimisé sur Grille. Une analyse statique est utilisée comme une étape preliminaire pour répartir les objets de l application. Un mécanisme d équilibrage dynamique est basé sur 3 types d information: une information sur la charge et la performance des noeuds, une information sur les relations dynamiques entre objets et une information deduit de l analyse statique de code. L optimisation concerne les dépendences statiques et dynamiques entre les objets et leurs méthodes. Possibilité de construire des applications distribuées à base de composants.

Travail en cours & Perspectives DG-ADAJ en OpenSource Aspects tolérance aux fautes Système de management des informations Expérimentation sur des problèmes réels Expérimentation sur Grid 5000 Projet Européen GOTI (15 partenaires)?