DG-ADAJ: Une plateforme Desktop Grid



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

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

Cours de Génie Logiciel

Programmation Bas Niveau

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

Les environnements de calcul distribué

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

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

Architecture de la grille

CORBA haute performance

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

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

Conception des systèmes répartis

Présentation Alfresco

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

JOnAS Day 5.1. Clustering

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

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

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

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

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

Qualité du logiciel: Méthodes de test

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

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

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

Machines Virtuelles Cours 3 : La machine virtuelle Java

Eric Bertrand 08/11/06 Maître de conférence 1

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Sybase High Avalaibility

Introduction au Déploiement

CAHIER DES CHARGES D IMPLANTATION

Architecture distribuée

文 档 密 级 : 机 密 华 为 机 密, 未 经 许 可 不 得 扩 散

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Plan du cours. Historique du langage Nouveautés de Java 7

Software Engineering and Middleware A Roadmap

Le moteur de workflow JBPM

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

Formation Symantec Veritas Cluster Server 6.x pour Unix

Equilibrage de charge (Load

Mécanismes pour la migration de processus

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Le serveur HTTPd WASD. Jean-François Piéronne

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

GESTION DE LA PERFORMANCE. Albert Amar Avant-vente Middleware

Évaluation d une architecture de stockage RDF distribuée

Programmation parallèle et distribuée (Master 1 Info )

Quantification d incertitude et Tendances en HPC

La carte à puce. Jean-Philippe Babau

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

7 avantages à la virtualisation des applications stratégiques de votre entreprise

GESTION DU CYCLE DE VIE. Albert Amar Avant-vente Middleware

Vulgarisation Java EE Java EE, c est quoi?

Planifier la migration des applications d entreprise dans le nuage

Introduction à ElasticSearch

Threads. Threads. USTL routier 1

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

UE Programmation Impérative Licence 2ème Année

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Les classes de service pour les projets scientifiques

Conception de réseaux de télécommunications : optimisation et expérimentations

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

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

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

Mesure et modélisation de l énergie logicielle

Le modèle client-serveur

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

Big Data et Graphes : Quelques pistes de recherche

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

2. Comprendre les définitions de classes

La JVM. La machine virtuelle Java. La JVM. La JVM

Analyse de performance, monitoring

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Les BRMS Business Rules Management System. Groupe GENITECH

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

Un ordonnanceur stupide

OCL - Object Constraint Language

Ré-ordonnancement adaptatif de messages dans un réseau ad hoc de véhicules

StratusLab : Le projet et sa distribution cloud

Sébastien Geiger IPHC Strasbourg

Fiche Produit MediaSense Extensions

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

Ricco Rakotomalala R.R. Université Lyon 2

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

as Architecture des Systèmes d Information

Fiche Produit IPS Manager Assistant

Interoperabilité entre Observatoire Virtuel et Grilles de calcul

La continuité de service

Transcription:

DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3 59655 Villeneuve d Ascq Cédex {olejnik, toursel}@lifl.fr http://www.lifl.fr/paloma

Plan Contexte Objectifs Caractéristiques principales de DG-ADAJ Architecture & Environnement Framework DAJ Allocation statique optimisée Equilibrage de charge dynamique Conclusion 2

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 inter-tâches Possibilité d assigner les tâches à l une ou l autre des JVMs installées sur les noeuds. 3

Objectifs Efficacité de l exécution des applications parallèles et distribuées en Java sur des grilles d ordinateurs (Desktop Grid). Aspects d exécution : Placement transparent et optimisé des objets sur les nœuds de la grille selon des stratégies d équilibrage de charge dynamique. Aspects programmation : Contrôle transparent du parallélisme et collecte facile des résultats. 4

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 pour exprimer le parallélisme et la distribution. Framework de composants pour Grille de Calcul 5

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

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 DG-ADAJ RMI RMI DG-ADAJ compo nent compo nent D-Grid Node 2 Center (SMP) Desktop Grid environment LAN / WAN Desktop Grid environment CFDA framework CFDA framework compo nent DG-ADAJ RMI RMI DG-ADAJ Application deploying D-Grid Host Server compo nent Desktop Grid server infrastructure Submitting a Java Application resource monitoring & management placement optimizer 7

Framework DAJ Compatible Common Component Architecture http://www.cca-forum.org/ Services - Instantiation, Connection - Composition à niveaux multiples Librairie de composants de contrôle Contrôle parallèle/distribué Connection des composants permettant le parallélisme Echange de données entre composants: Explicite & Evènement Super composant 8

Optimisation statique Code : Control/Data Dependency Graph (CDDG) of a method: 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 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 9

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 10

Phase de mappage 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. JVM0 JVM1 JVM2 JVM3 Legend thread spawn condition time 11

Equilibrage dynamique de la 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. charge Les objets sont transférés des machines surchargées vers des machines sous-chargées. Mécanisme d observation des relations entre objet 12

Conclusion 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. 13

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)? 14