1 Intergiciel pour l'exécution efficace et fiable d'applications distribuées dans les grilles dynamiques de très grande taille Emmanuel Jeanvoine EDF R&D, INRIA/Équipe-projet PARIS 27 novembre 2007
2 Simulation numérique ● Consommation d'importants moyens de calculs ● Applications souvent patrimoniales ● Divers modèles d'applications distribuées – sac de tâches – maître/travailleurs – tâches fortement communicantes – couplage de codes – workflows Temp s
3 Évolutions technologiques ● Évolution de l'architecture des micro-processeurs ● Évolution des réseaux longue distance 100H z 4 x 3 Ghz 14 TBits/s300 Bits/s
4 Les grilles de calcul SAN WA N LAN SAN LAN Canberr a Barcelon a Oak Ridge Pari s
5Problématique SAN WA N LAN SAN LAN Canberr a Barcelon a Oak Ridge Pari s
6Problématique SAN WA N LAN SAN LAN Canberr a Barcelon a Oak Ridge Pari s LAN
7Problématique SAN WA N LAN SAN LAN Canberr a Barcelon a Oak Ridge Pari s
8 Comment soumettre mon application à la grille ? SA N WA N LA N SA N LA NProblématique
9 Il y a des ressources très différentes dans la grille, comment trouver celles qui sont nécessaires à mon application ? SA N WA N LA N Problématique SA N
10 Est-ce que mon application sera exécutée efficacement si d'autres personnes utilisent la grille en même temps que moi ? SA N WA N LA N Problématique SA N
11 Est-ce que mon application pourra être exécutée correctement dans cet environnement volatil ? SA N WA N LA N Problématique SA N
12 ● Simplicité d'utilisation ● Efficacité d'exécution ● Support de la volatilité SA N WA N LA N Problématique SA N
13 Quelques intergiciels de l'état de l'art
14 Quelques intergiciels de l'état de l'art
15 Quelques intergiciels de l'état de l'art
16 Quelques intergiciels de l'état de l'art
17 Quelques intergiciels de l'état de l'art
18Objectifs ● Système adapté à la grande échelle et à la dynamicité d'une grille ● Support générique pour l'exécution fiable et efficace d'applications de simulation numérique ● Accès simple à la puissance de calcul
19Contributions ● Système adapté à la grande échelle et à la dynamicité d'une grille – Système d'information fondé sur une infrastructure pair-à-pair – Service distribué de gestion des applications ● Support générique pour l'exécution fiable et efficace d'applications de simulation numérique – Gestion automatique du cycle de vie des applications patrimoniales (sac de tâches, maître/travailleur, tâches fortement communicantes, couplage de codes, workflow) ● Accès simple à la puissance de calcul – Interface de type « système à image unique »
20 Plan de l'exposé ● Service de gestion d'applications ● Système d'information ● Prototype Vigne et évaluation ● Conclusion et perspectives
21 Plan de l'exposé ● Service de gestion d'applications – Qu'est-ce que la gestion d'application ? – Gestion du cycle de vie des applications – Architecture distribuée du service ● Système d'information ● Prototype Vigne et évaluation ● Conclusion et perspectives
22 Qu'est-ce que la gestion d'application ? ● L'exécution d'applications sur une grille soulève plusieurs interrogations – À qui s'adresser pour trouver des ressources ? – Comment choisir les ressources ? – Comment déployer une application ? – Comment réagir en cas de défaillance ? ● Notre proposition : service de gestion d'application simplifiant l'utilisation d'une grille – Prise en charge du cycle de vie des applications depuis la soumission jusqu'à la récupération des résultats
23 Principe de base de la gestion de cycle de vie Interrogation du système d'information Transfert des fichiers d'entrée Allocation des ressources Exécution de l'application réalisée avec succès Transfert des fichiers de sortie Soumission de l'application
24 ● 3 types de dépendances entre les tâches d'une application – Synchronisation : les tâches doivent être exécutées simultanément – Spatiale : les tâches doivent être exécutées sur des ressources permettant une bonne communication réseau – Précédence : certaines tâches ont besoin du résultat d'autres tâches pour être exécutées Temps Synchronisati on Spatial e Précédenc e Prise en charge des applications distribuées
25 Interrogation du système d'information Transfert des fichiers d'entrée Allocation des ressources Exécution de la tâche réalisée avec succès Transfert des fichiers de sortie Soumission de la tâche Test des dépendances de précédence Synchronisation avec les autres tâches du groupe Transfert des fichiers de dépendances Notification des tâches dépendantes ● Gestion indépendante du cycle de vie de chaque tâche d'une application Dépendances spatiales Dépendances de synchronisation Dépendances de précédence Gestion de cycle de vie supportant les applications distribuées
26 Interrogation du système d'information Transfert des fichiers d'entrée Allocation des ressources Exécution de la tâche réalisée avec succès Transfert des fichiers de sortie Surveillance de l'exécution de la tâche Soumission de la tâche Test des dépendances de précédence Synchronisation avec les autres tâches du groupe Transfert des fichiers de dépendances Notification des tâches dépendantes ● Défaillances pouvant être gérées par le GCV d'une seule tâche Gestion de cycle de vie supportant les défaillances
27 Échec pour l'exécution du groupe de tâches ● Défaillances impliquant un groupe de tâches Interrogation du système d'information Transfert des fichiers d'entrée Allocation des ressources Exécution de la tâche réalisée avec succès Transfert des fichiers de sortie Surveillance de l'exécution de la tâche Soumission de la tâche Test des dépendances de précédence Synchronisation avec les autres tâches du groupe Transfert des fichiers de dépendances Notification des tâches dépendantes Gestion de cycle de vie supportant les défaillances
28 Gestion de cycle de vie guidée par un moteur externe de pilotage ● De nombreuses applications utilisent un moteur de workflow – Utilisation de la sémantique des applications pour piloter leur cycle de vie ● Notre approche – Définition d'une interface pour les moteurs externes de pilotage ● Soumission d'une application ● Ajout dynamique de tâches dans une application ● Notification pour traiter les relations de précédence entre les tâches d'un workflow ● Transferts de fichiers pilotés depuis le moteur externe – Modification du gestionnaire de cycle de vie d'une tâche pour supporter le pilotage depuis un moteur externe
29 Interrogation du système d'information Transfert des fichiers d'entrée Allocation des ressources Exécution de la tâche réalisée avec succès Transfert des fichiers de sortie Surveillance de l'exécution de la tâche Soumission de la tâche Test des dépendances de précédence Synchronisatio n avec les autres tâches du groupe Transfert des fichiers de dépendances Notification des tâches dépendantes Échec pour l'exécution du groupe de tâches Gestion de cycle de vie guidée par un moteur externe de pilotage
30 SA N W AN LA N SA N LA N Gestion d'un grand nombre d'applications
31 ● Un gestionnaire d'application par application – Créé automatiquement à la soumission de l'application – Responsable de toutes les tâches de l'application – Répartition probabiliste des gestionnaires d'application sur la grille – Bénéfices ● Pas de point d'entrée unique pour la soumission des applications ● Gestion répartie du cycle de vie des différentes applications ● Gestion des fichiers répartie ● Besoin d'un gestionnaire d'application stable (travaux de thèse de Louis Rilling) – Hautement disponible : réplication active – Accessible : routage dans un réseau logique structuré Architecture distribuée du service
32 ● Proposition d'un service de gestion d'application – Gestion du cycle de vie complet des applications – Support d'une large gamme d'applications distribuées (dont celles pilotées par un moteur externe de workflow) – Exécution efficace d'applications composées de tâches communicantes – Exécution fiable d'applications grâce à des mécanismes de supervision – Architecture distribuée adaptée à la grande échelle d'une grille et à de nombreux utilisateurs – Service hautement disponibleBilan
33 Plan de l'exposé ● Service de gestion d'applications ● Système d'information – Rôle – État de l'art – Notre approche ● Système d'information fondé sur un réseau pair-à-pair ● Protocole de découverte de ressources optimisé pour une utilisation dans un contexte de grille ● Prototype Vigne et évaluation ● Conclusion et perspectives
34 Rôle d'un système d'information SAN WA N LAN SAN LAN Comment trouver 5 nœuds de type Opteron, dotés de 4 Go de RAM et d'au moins 200 Mo d'espace disque libre ?
35 ● Gestion d'un grand nombre d'informations dynamiques ● Expression des besoins pour l'application – Multiples critères (nombre inconnu) – Critères pouvant être définis par plage de valeurs – Critères statiques et dynamiques ● Capacité à trouver des ressources libres ● Capacité à trouver des ressources rares Rôle d'un système d'information
36 État de l'art
37 État de l'art
38 ● Architecture fondée sur un réseau logique non structuré – Recherches complexes – Tolérance à la volatilité – Simplicité de mise à jour ● Requêtes de découverte de ressources propagées par marches aléatoires – Meilleur passage à l'échelle que l'inondation classique ● Optimisation du protocole de marches aléatoires – Réduction du temps de recherche – Réduction de la bande passante consommée – Favoriser la découverte de ressources non allouées – Amélioration de la découverte de ressources rares Système d'information complètement distribué
39 ● Utilisation de caches pour enregistrer l'état de certains nœuds du réseau (caractéristiques et date de dernière allocation) – Augmenter la vitesse de découverte des ressources – Réduire le nombre de requêtes (bande passante) ● Politique de gestion de caches favorisant les ressources non- allouées – Ajout des résultats non utilisés après une découverte de ressources – Éviction des nœuds les plus récemment alloués si le cache est plein ● Éviter la découverte de ressources allouées – Coopération des caches en diffusant les informations découvertes non utilisées et en avertissement de l'allocation de certains nœuds ● Augmenter la vitesse de remplissage des caches ● Éviter la découverte de ressources allouées Principes de l'optimisation
40 Je veux 2 ressourcesExemple
41 → Marche aléatoireExemple OKOK OKOK
42 → Réponse à la requête OKOK OKOKExemple
43 → Sélection de ressources Je choisisExemple
44 → Enregistrement de la date d'allocationExemple
45 → Diffusion des informations découvertesExemple
46Exemple
47 Je veux 2 ressourcesExemple
48 → Interrogation directe OKOKExemple
49 → Marche aléatoire OKOK OKOKExemple
50 OKOK OKOKExemple
51 Je choisisExemple
52Exemple
53Exemple
54Exemple
55 → Avertissement de l'allocationExemple
56 → Diffusion de l'avertissement d'allocationExemple
57Bilan ● Proposition d'un système d'information fondé sur l'utilisation d'un réseau logique non structuré – Conservation des bénéfices des réseaux logiques non-structurés ● Tolérant à la volatilité des nœuds ● Adapté à l'échelle d'une grille de grande taille ● Supportant les recherches complexes – Limitation des inconvénients des réseaux logiques non-structurés : protocole de découverte de ressources optimisé pour le contexte de l'allocation de ressources dans les grilles ● Augmentation des chances de découvrir des ressources libres ● Temps de découverte réduit ● Bande passante réduite ● Amélioration de la découverte de ressources rares
58 Plan de l'exposé ● Service de gestion d'applications ● Système d'information ● Prototype Vigne et évaluation ● Conclusion et perspectives
59Prototype ● Prototype fonctionnel qui étend le prototype Vigne développé par Louis Rilling ● lignes de code C, exécutable sous GNU/Linux ● Simulation et exécution réelle Réseau pair-à-pair structuré Réseau pair-à-pair non-structuré Couche de communication Transfert de fichiers Système d'information Allocation de ressources Gestion d'application Interface avec les moteurs externes Interface utilisateur Interface avec les ressources
60Évaluation ● Évaluation par simulation du système d'information – Étude du coût en bande passante – Étude du temps de découverte de ressources ● Expérimentations sur Grid'5000 – Passage à l'échelle de l'infrastructure pair-à-pair – Efficacité de l'ordonnancement distribué – Efficacité du placement des tâches communicantes – Fiabilité de l'exécution ● Évaluation en contexte industriel avec la plate-forme SALOME – Exécution d'une application industrielle (workflow de couplage de codes)
61 Exécution fiable : plate-forme expérimentale Re nne s Ors ay Na ncy Sop hia so l azu r grillo n grelo n gd x paras ol parave nt paraqua d ● 402 nœuds ● 4 sites de Grid'5000
62 Exécution fiable ● Exécution de 201 tâches indépendantes ● Injection aléatoire de 53 défaillances (SIGKILL) ● Détection des défaillances par les gestionnaires de cycle de vie et redémarrage des tâches – 45 tâches ont subi une défaillance, 4 tâches ont subi 2 défaillances – Toutes les tâches ont été exécutées sans l'intervention de l'utilisateur
63 Exécution d'une application industrielle ● Moteur externe de pilotage : ● Application industrielle non modifiée : Code_Saturne/Syrthes Pré-traitement Code_Saturne Syrthes Post- traitement Visualisation Fichier de maillage pour Code_saturne Fichier de maillage pour Syrthes Fichier de résultat couplag e Fichiers de maillage découpé
64 Exécution d'une application industrielle ● Plate-forme expérimentale : grappe de 12 nœuds ● Faisabilité ● Efficacité du placement des tâches SA N
65 Plan de l'exposé ● Service de gestion d'applications ● Système d'information ● Prototype Vigne et évaluation ● Conclusion et perspectives
66Conclusion ● Service de gestion d'application – Gestion du cycle de vie d'une large gamme d'applications distribuées (dont couplages de codes et workflows) – Exécution fiable et efficace d'applications patrimoniales ● Système d'information tolérant aux défaillances et adapté à l'échelle d'une grille – Fondé sur un réseau P2P non structuré et sur une optimisation du concept de marches aléatoires – Adapté aux recherches complexes – Capable de trouver des ressources rares
67Conclusion ● Prototype fonctionnel ● Évaluation expérimentale de nos contributions – Grande échelle : simulation/Grid'5000 – Contexte industriel : utilisation d'une plate-forme de simulation numérique comme moteur de workflow et exécution d'une application réelle non modifiée
68Perspectives ● Enrichissement et évaluation du prototype ● Valorisation – Transfert dans le projet européen XtreemOS (système d'information, support pour les applications distribuées) ● Tolérance aux défaillances – Points de reprise (système et applications) – Cohérence entre les mécanismes de tolérance aux défaillances des différents niveaux de la grille (thèse de Thomas Ropars) ● Déploiement d'application – Prise en compte du modèle de programmation des applications (thèse de Boris Daix)
69 Merci pour votre attention !
70 Cas des ressources rares ● Lacune de la découverte de ressources par marches aléatoires : non exhaustivité des recherches – recherches lentes et coûteuses en bande passante – recherches potentiellement infructueuses ● Notre proposition – auto-évaluation de la rareté des ressources – pro-activité pour éviter que les ressources rares ne soient jamais découvertes ● marches aléatoires longues ● cache de ressources rares
71 Passage à l'échelle de l'infrastructure P2P ● Émulation de 500, 1000 et 2000 nœuds sur 100 nœuds physiques de la grappe rennaise de Grid'5000 ● Simulation de la volatilité des nœuds – arrivées toutes les 35 minutes en moyenne – durée de présence de 30 minutes en moyenne
72 Ordonnancement distribué ● Utilisation de 449 nœuds de Grid'5000 répartis sur 5 sites ● Exécution d'un sac de 898 tâches Répartition de la capacité des ressources Répartition des exécutions
73 ● Utilisation de 376 nœuds (752 CPU) répartis sur 6 sites Grid'5000 ● Exécution de 50 instances d'une application MPI composée de 4 processus Aucune optimisation du placement des tâches communicantes Mécanismes de Vigne pour le placement des tâches communicantes Efficacité d'exécution d'applications communicantes
74 Incidence de la rareté des ressources sur le coût du système d'information ● Simulation d'une grille de 500 nœuds ● 500 requêtes de découvertes de ressources 1 type de ressource 8 types de ressources
75 Incidence de la charge de la grille sur le temps de découverte de ressources ● Simulation d'une grille de 500 nœuds ● 8 types de ressources ● Durée d'une tâche : 500 UTV Soumission de 50 tâches Soumission de 500 tâches
76 Incidence de la charge de la grille sur le coût d'une découverte de ressources ● Simulation d'une grille de 500 nœuds ● Soumission de 100 tâches 100 instructions par tâche 500 instructions par tâche