Grid Computing. Plan du cours. Plan. Composants d une Grille. Nouredine.Melab@lifl.fr. Besoin d intergiciels robustes



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

INFO-F-404 : Techniques avancées de systèmes d exploitation

3A-IIC - Parallélisme & Grid GRID : Middleware

Architecture de la grille

Introduction à la Programmation Parallèle: MPI

Middleware et services de la grille

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

Systèmes parallèles et distribués

Introduction au Grid computing. Introduction au Grid computing. Grid-Computing. 1-Introduction Motivations Différents objectifs Leçons du passé

Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24

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

Vulgarisation Java EE Java EE, c est quoi?

Software Engineering and Middleware A Roadmap

Travaux Pratiques sur GRID 5000

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

Services de la grille

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

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

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

Rapport d activité. Mathieu Souchaud Juin 2007

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

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

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

PRODIGUER un noeud français de distribution de données GIEC/IPCC

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

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

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

Introduction to Parallel Programming with MPI

Le modèle client-serveur

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Le cadre des Web Services Partie 1 : Introduction

Grid5000 aujourd'hui : Architecture & utilisation

SysFera-DS : vers une solution de portail scientifique collaboratif chez EDF. Benjamin Depardon

DG-ADAJ: Une plateforme Desktop Grid

Mobile OGSI.NET: Grid Computing on Mobile Devices

DEPARTEMENT D'INFORMATIQUE MEMOIRE. Présenté par. K AR A M O S TE F A M o ha mme d Ilye s. Pour obtenir LE DIPLOME DE MAGISTER

La sécurité dans les grilles

Oracle Maximum Availability Architecture

Programmation parallèle et distribuée

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair

Gestion de données dans les NES

GRIDKIT: Pluggable Overlay Networks for Grid Computing

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

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

Open Source Job Scheduler. Installation(s)

Communications performantes par passage de message entre machines virtuelles co-hébergées

Module pour la solution e-commerce Magento

Conception des systèmes répartis

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

Support d organisations virtuelles au sein d un système d exploitation pour la grille

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

DIRAC : cadre et composants pour créer des systèmes de calcul distribués

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

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

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

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

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Le moteur de workflow JBPM

Composants Logiciels. Le modèle de composant de CORBA. Plan

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

VMware View Virtualisation des postes de travail (architecture, déploiement, bonnes pratiques...)

TechSoftware Présentations

Le Cloud Open-Mind! Emilien Macchi

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Patrons de Conception (Design Patterns)

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

<Insert Picture Here> Solaris pour la base de donnés Oracle

CORBA haute performance

Tour d'horizon des Middlewares de Grille

Exchange 2007 : Améliorations et nouvelles fonctionnalités Atelier 136. Société GRICS

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

1. Formation F5 - Local Traffic Manager Configuring (LTM)

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

Installation du service glite SE/DPM

Les environnements de calcul distribué

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Messagerie asynchrone et Services Web

NFP111 Systèmes et Applications Réparties

Virtualisation du Stockage dans les Grilles informatiques

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

MapCenter : un modèle ouvert pour la découverte, la supervision et la visualisation des environnements distribués à large échelle

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Supervision de réseau

Infrastructures Parallèles de Calcul

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Hyper-V (version 3) et System Center Virtual Machine Manager Technologie de virtualisation sous Windows Server 2012 R2

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

CONCEPTION ET DÉPLOIEMENT D UNE GRILLE DE CONTRÔLE DE PROCESSUS PHYSIQUES MÉMOIRE EN INFORMATIQUE. SABATIER Fabrice Soutenu à Metz le 6 septembre 2004

Hébergement de sites Web

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Remote Method Invocation en Java (RMI)

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

Java Aspect Components (JAC)

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Chapitre 1 Windows Server

Consolidation. Grid Infrastructure avec la 11gR2

OS Réseaux et Programmation Système - C5

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Transcription:

Grid Computing Plan du cours Nouredine.Melab@lifl.fr Les grilles informatiques : concepts et infrastructures La grille nationale Grid5000 Modèles de programmation et intergiciels pour le grilles Etude de cas :, MPICH-G2 et GridRPC Taxinomie et applications des grilles Besoin d intergiciels robustes Besoin de modèles et environnements de programmation Accéder à son PC ou à la Grille avec la même facilité Développer sur la Grille aussi facilement que sur une grappe locale PC local PC local Grid Problèmes à résoudre : Authentification unique et politique de sécurité Tolérance aux pannes Découverte et analyse dynamique de ressources Equilibrage de charge dynamique Gérés par le middleware de Grille Fonctionnalités souhaitées : Déploiement dynamique (du pgm) sur la Grille Recouvrement des calculs et des comms. Communications synchrones et asynchrones Accès au monitoring de la grille Fonctionnalités supportées par l environnement de développement Composants d une Grille MPI-G Env. de dev. Middleware générique de Grille Superstructure Organisations Virtuelles Applications distribuées Environnement de développement Middleware de Grille Routage, contrôle, supervision réseau Infrastructure réseau Infrastructure rsrc rsrc rsrc rsrc ProActive Env. de dev. GridRPC Middleware ProActive middl. spécifique DIET middl. JavaRMI + JVM Middleware générique Corba + VPN Plan Intergiciels : La boîte à outils Construction d une grille virtuelle Modèles de programmation : Passage de messages sur la grille basé sur MPICH-G2 1

Toolkit The Toolkit The Project Argonne National Laboratory USC Information Sciences Institute http://www.globus.org C est un toolkit open source pour la gestion de problèmes techniques pour le développement d outils, services et applications pour les grilles qui fournit un bag of technologies une implémentation standard de services, protocoles et APIs pour les grilles Caractéristiques majeures des grilles Multi-domaine d administration Sécurité (passage de pare-feu), différents systèmes d ordonnancement,... Grande échelle Délais de communication et de transfert de données importants, Volatile (disponibilité variable et pannes des machines) Découverte de ressources, tolérance aux pannes, reordonnancement,... Hétérogène (systèmes, réseaux, machines, etc.) Equilibrage de charge, intégration de données, mesure de performances,... Différents services - Sécurité Différentes classes de services Sécurité, gestion des données, contrôle d exécution, services d information, support d exécution Sécurité Prise en compte de la nature multi-domaine d administration Mécanismes Authentification, autorisation (individus, collections d individus), délégation, protection de messages Infrastructure support Autorité de certification, gestion de clés et certificats (proxies, ), Service : Grid Security Infrastructure (GSI) Technologies à clés publiques, SSL, X.509, GSS-API (Generic Security API) Service de gestion de données Service de contrôle d exécution Prise en compte de l échelle, de la nature volatile et hétérogène de la grille Mécanismes Intégration et accès aux données, réplication de données, localisation de réplicas, transfert de données Data Access and Integration service (OGSA-DAI), Resource Location Service (RLS), GridFTP, Reliable File Transfert (RFT) Déploiement d applications avec prise en compte de toutes les caractéristiques de la grille Mécanismes Télé-contrôle (gestion d instruments à distance), ordonnancement de tâches, gestion de workspaces, allocation et gestion de ressources Grid Resource Allocation and Management (GRAM), transfert d exécutables (GASS) 2

d information et support d exécution Toolkit version 2 (GT2) d information Obtention d information sur les ressources et services disponibles dans un contexte volatile (absence d omniscience) Mécanismes Web Components Description des ressources et services, collecte de l information sur les ressources et services disponibles WebMDS (Monitoring and Discovery Service), Index (registre), Trigger Pre-WS Authentication GridFTP Grid Resource Alloc. Mgmt (GRAM) Monitoring & Discovery (MDS) C Common Libraries Non-WS Components RSL (Resource Specification Language), WSRF (Web Service Resource Framework) Support d exécution commun pour Python, C, Java Sécurité Gest. de données Contrôle d info. Support Community Data Access & Integration WS Authentication Pre-WS Authentication Toolkit version 3 (GT3) Reliable File Transfer GridFTP Replica Location Grid Resource Alloc. Mgmt (WS GRAM) Grid Resource Alloc. Mgmt (GRAM) MDS3 Monitoring & Discovery (MDS) Java WS Core C Common Libraries extensible IO (XIO) Web Components Non-WS Components Credential Mgmt Community Authentication Toolkit 4: Open Source Grid Infrastructure Data Replication Replica Location Community Data Access Delegation Scheduling WebMDS & Integration Framework Reliable File Transfer GridFTP Grid Telecontrol Protocol Workspace Management Grid Resource Allocation & Management Toolkit v4 www.globus.org Trigger Index Python Runtime C Runtime Java Runtime Sécurité Gest. de données Contrôle d info. Support Sécurité Gest. de données Contrôle d info. Support Exemple d utilisation de Exemples pratiques Web Browser Users work with client applications CHEF Certificate Authority Data Viewer Tool CHEF Chat Teamlet MyProxy Simulation Tool Application services organize VOs & enable access to other services Index Service RLS Collective services aggregate &/or virtualize resources GRAM GRAM DAI DAI DAI Compute Server Compute Server Database service Database service Database service Resources implement standard access & management interfaces globus-url-copy gsiftp://chti-10.lille.grid5000.fr/etc/group gsiftp://node-137.sophia.grid5000.fr/tmp/from-chti-10 globusrun-ws machine d exécution -F https://chti- 10.lille.grid5000.fr:8443/wsrf/services/ManagedJobFactoryService -submit -c /bin/echo message exécutable à lancer globusrun-ws -submit -J -S -f exemple.rsl <job> <executable>/bin/echo</executable> <argument>message</argument> <directory>/tmp</directory> <stdout>stdout</stdout> </job> exemple.rsl machine source machine destination exécution en utilisant un fichier RSL 3

Pour plus d information Project www.globus.org Grid Forum www.gridforum.org Livre (Morgan Kaufman) www.mkp.com/grids Introduction Plan Intergiciels : La boîte à outils Construction d une grille virtuelle Modèles de programmation : Passage de messages sur la grille basé sur MPICH-G2 Grille virtuelle (Maître-Esclave) Le nœud maître fournit une autorité de certification un système de monitoring et de découverte de ressources (Monitoring and Discovery System ou MDS) et les droits utilisateurs d accès aux ressources Chaque noeud esclave contient un environnement prêt à être activé un service MDS activé GRAM activé pour la soumission de jobs locaux (fork) RFT et GridFTP activés un service de sécurité (GIS) activé Construction d une image 4 Installation de GT4 sur un noeud Java (1.4.2), Apache Ant (1.5+), gcc, GNU make/tar, gestionnaire de bases de données (e.g. Postgres) pour les services RLS et RFT Archivage de l image avec g5k-tar qui fait appel à tar Réservation avec OAR-Grid Récupération du fichier de machines I want 20 nodes node-1 node-4 node-x oargridsub -q default t deploy -w 08:00:00 chti:rdef= /nodes=10,bordemer:rdef= /nodes=5,azur:rdef= /nodes=5 [OAR_GRIDSUB] Reservation success on chti : batchid = 1995, nbnodes = 10, weight = 0, properties = "", queue = default... [OAR_GRIDSUB] Grid reservation id = 1879 oargridstat -l 1879 > mynodes 4

Déploiement de l image sur chaque grappe Choix du maître avec copie du pool de machines image image Master griddeploy node-1 node-4 node-x griddeploy node-1 node-4 node-x griddeploy.sh mynodes globus4 ou kadeploy e globus4 f mynodes p sda3 sur chaque grappe scp mynodes root@<master>: Configuration de la grille virtuelle Transfert des données sur le maître image Master Master griddeploy node-1 node-4 node-x ssh root@<master>./globus/install.sh mynodes Configuration : installation des certificats, configuration des proxies, Sur le maître scp r frontale.lille.grid5000.fr:<your_data_dir>. Stage-in/Stage-out : transfert des exécutables sur les nœuds Exécution de l application Master Master globusrun-ws -submit -J -S -f toto.rsl globusrun-ws -submit -J -S -f toto.rsl 5

Modèles de programmation pour le Grid Computing (1) Introduction Plan Intergiciels : La boîte à outils Construction d une grille virtuelle Modèles de programmation : Passage de messages sur la grille basé sur MPICH-G2 Le modèle de passage de messages MPICH-G2 basé sur Le modèle RPC RPC sur grille : GridRPC Quelques implémentations (ex. Ninf-G) sont basées sur Modèles de programmation pour le Grid Computing (2) Modèle orienté objet (RMI) Grid-enabled CORBA NASA Lewis, Rutgers, ANL, etc. Wrappers CORBA pour les protocoles de grilles Un certain succès Legion University of Virginia Modèle objet pour les composants de grille On s intéresse à MPICH-G2 et GridRPC et leur middleware associé Basés sur Modèles de programmation pour le Grid Computing Le modèle de passage de messages MPICH-G2 basé sur Le modèle RPC RPC sur grille : GridRPC Quelques implémentations (ex. Ninf-G) sont basées sur La bibliothèque MPI MPI est une bibliothèque (pas un langage) Fournit des primitives de communication point-à-point et collectives Support des langages : C, C++, Fortran Différentes implémentations (LAM, MPICH, ) Déploiement d applications avec mpirun (exemple : mpirun np 10 prog) Adresses utiles www.mcs.anl.gov/mpi/index.html www.mpi-forum.org/ #include <mpi.h> Exemple un vers tous point à point main(int argc, char *argv[]) { int my_rank, source, dest, tag=10, namelen, p; char message[100], processor_name[mpi_max_processor_name]; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); MPI_Comm_size(MPI_COMM_WORLD, &p); MPI_Get_processor_name(processor_name,&namelen); printf("processus de rang %d sur %s \n", my_rank, processor_name); if (my_rank == 0) { sprintf(message, "Bonjour du processus de rang %d!", my_rank); for (dest=1; dest<p; dest++) { MPI_Send(message, strlen(message)+1, MPI_CHAR, dest, tag, MPI_COMM_WORLD); else { MPI_Recv(message, 100, MPI_CHAR, 0, tag, MPI_COMM_WORLD, &status); printf("processus de rang %d : %s\n", my_rank, message); MPI_Finalize(); 6

MPI sur grille : MPICH-G2 L environnement grille () Authentification et autorisation (GSI) Transfert d exécutables entre sites (GASS) Systèmes et politiques d ordonnancement différents (GRAM ordonnanceurs locaux) Allocation de ressources sur différents sites (DUROC+GRAM) Méthodes de communication différentes MPICH-G2 permet de cacher l environnement de la grille d utiliser les services fournis par Comment MPICH-G2 marche (1) (GSI) (fichier RSL) GSI: Grid Security Infrastructure GASS: Global Access to Secondary Storage MDS: Monitoring and Directory Service GRAM: Grid Resource Allocation and Management DUROC: Dynamically-Updated Request Online Co-allocator RSL: Resource Specification Language Comment MPICH-G2 marche (2) Comment MPICH-G2 marche (3) Génération de certificats (grid-proxy-init ) Obtenir avec GSI un certificat permettant l accès aux ressources de chaque domaine d administration (site) Sélection éventuelle de ressources avec MDS Génération manuelle ou avec mpirun d un script RSL Un script par site Spécification de ressources (processeurs, ) et besoins (CPU, mémoire, ) et paramètres (localisation des exécutables, variables d environnement,.) Appel à DUROC Déploiement à l aide de fichiers RSL des tâches de l application en utilisant des appels à GRAM Déploiement de tâches avec GRAM Chargement éventuel d exécutables GASS Communication entre processus via IO ou autre (primitives MPI) Modèles de programmation pour le Grid Computing Gridification du modèle RPC - GridRPC Le modèle de passage de messages MPICH-G2 basé sur Le modèle RPC RPC sur grille : GridRPC Quelques implémentations (ex. Ninf-G) sont basées sur GridRPC est défini par le groupe de recherche : Advanced Programming Models (APM) Projets Netsolve (Univ. of Tennessee) et Ninf-G (Univ. of Tsukuba) Objectifs Définir un standard simple et une API portable Unification des accès des clients à la grille (ex. Netsolve, Ninf-G et DIET) Avoir un modèle indépendant de l implémentation Une standardisation complète (API et protocoles) au sein du Global Grid Forum (GGF) 7

GridRPC - Caractéristiques Dédié aux applications à gros grain et grain moyen Programmation parallèle asynchrone Ordonnancement et découverte dynamique de ressources Gestion IDL uniquement au niveau du serveur (non pas au niveau client) GridRPC Fondements «Handle»de fonction - grpc_function_handle_t Association d un nom de fonction à une instance de fonction sur un serveur particulier Une fois le «handle» créé, des appels RPC sont effectués sur la fonction associée Identificateur de session - grpc_sessionid_t Un identifiant est associé à chaque appel RPC non bloquant Permet de vérifier le statut, d annuler, d attendre et d obtenir le code d erreur d un appel RPC non bloquant Code d erreur - grpc_error_t L API GridRPC Initialisation & Terminaison grpc_initialize, grpc_finalize Gestion de handles de fonctions initialize, destroy, get Types d appels RPC Bloquant, non bloquant Contrôle et attente asynchrones de fonctions probe, cancel, wait, wait_and, wait_or, wait_any. Rapport d erreur Strings, etc. Exemple : Calcul de PI par la méthode Monte Carlo (1) #include "grpc.h" #define NUM_HOSTS 8 char * hosts[] = {"host00", "host01", "host02", "host03", "host04", "host05", "host06", "host07"; grpc_function_handle_t handles[num_hosts]; int port = 4000; main(int argc, char ** argv){ double pi; long times, count[num_hosts], sum; char * config_file; int i, ids[num_hosts]; if (argc < 3){ fprintf(stderr,"usage: %s CONFIG_FILE TIMES \n",argv[0]); exit(2); config_file = argv[1]; times = atol(argv[2]) / NUM_HOSTS; Exemple : Calcul de PI par la méthode Monte Carlo (2) Exemple : Calcul de PI par la méthode Monte Carlo (3) if (grpc_initialize(config_file)!= GRPC_OK) { grpc_perror("grpc_initialize"); exit(2); /* pi_trial : File containing the code of PI computation function */ for (i = 0; i < NUM_HOSTS; i++) grpc_function_handle_init(&handles[i], hosts[i], port, "pi/pi_trial"); for (i = 0; i < NUM_HOSTS; i++) if ( gprc_call_async(&handles[i], &ids[i], i, times, &count[i]) == GRPC_ERROR ) { grpc_perror("pi_trial"); exit(2); if (grpc_wait_all() == GRPC_ERROR){ grpc_perror("wait_all"); exit(2); for (i = 0, sum = 0; i < NUM_HOSTS; i++) sum += count[i]; pi = 4.0 * ( sum / ((double) times * NUM_HOSTS)); printf("pi = %f\n", pi); grpc_finalize(); 8

PI_trial : Calcul de PI long pi_trial(int seed, long times) { long l, long counter = 0; srandom(seed); for (l = 0; l < times; l++) { double x = (double)random() / RAND_MAX; double y = (double)random() / RAND_MAX; if (x * x + y * y < 1.0) counter++; return counter; Implémentation dans NetSolve Netsolve (Univ. Tennessee) NINF (Univ. Tsukuba, Japan) DIET (ENS Lyon/INRIA) Implémentation dans Ninf-G Implémentation dans DIET Client Interface Request Interface Reply Côté Client Invoke Executable Connect back GRAM Côté Serveur IDL file -IO fork Numerical Library IDL Compiler Generate Remote Library Executable Client A, B, C Answer (C) Request AGENT(s) S2! Op(C, A, B) S1 S2 S3 S4 GRIS retrieve Interface Information LDIF File http://graal.ens-lyon.fr/~diet 9