Architectures de calcul distribuées Le point de vue des communications

Slides:



Advertisements
Présentations similaires
Processus d'expression du besoin
Advertisements

Sous-projet IV Communications Placement/Ordonnancement.
Gabriel Antoniu IRISA / INRIA Rennes
La machine virtuelle virtuelle utopie et/ou réalité ?
Master de recherche informatique Université de Montpellier 2
Types des systèmes d’exploitation
DUDIN Aymeric MARINO Andrès
PLAN du COURS Introduction Structure des Systèmes Informatiques
Vue d'ensemble Présentation multimédia : Rôle du routage dans l'infrastructure réseau Activation et configuration du service Routage et accès distant Configuration.
Architecture de réseaux
Modèle de coût algorithmique intégrant des mécanismes de tolérance aux pannes Samir Jafar, Thierry Gautier, Jean Louis Roch Laboratoire ID-IMAG Equipe.
Jean-François Deverge, Sébastien Monnet
Laboratoire d ’Interaction Collaborative, Téléformation, Téléactivités
Architecture de machines Principes généraux
Système de stockage réseaux NAS - SAN
Etude des Technologies du Web services
Architecture de grille générique, multi-
Les Systèmes d’Exploitation
ADR Active and Dynamic Routing. Plan Introduction au routage Les réseaux actifs Les agents Mise à jour des matrices de routage Architecture du routage.
Réalisée par :Samira RAHALI
Chaire UNESCO - Calcul numérique intensif
Rennes, le 18 septembre 2006 Support du paradigme maître-travailleur dans les applications à base de composants Tâche 2.2 Hinde Bouziane Réunion LEGO.
Le modèle de référence OSI
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Présentation du mémoire
LES RESEAUX INDUSTRIELS
LEGO – Rennes, 18 Septembre 2006 Un outil de monitoring pour le déploiement dynamique de JuxMem Loïc Cudennec IRISA / INRIA, PARIS project-team Stage de.
Gestion de l'hétérogénéité et des longues distances dans une grille de calcul.
Globalisation des Ressources Informatiques et des Données Madeleine - Marcel Olivier Aumage Raymond Namyst LIP - ENS Lyon ens-lyon.fr Projet.
Parallélisme et grappes d’ordinateurs
GDS – Paris, 13 Octobre 2006 Un outil de monitoring pour le déploiement dynamique de JuxMem Loïc Cudennec IRISA / INRIA, PARIS project-team Stage de M2RI.
1 La RTI 1.3NG du DoD et les systèmes supports Patrice Torguet IRIT.
Partage de mémoire à très grande échelle sur des réseaux pair-à-pair
Fondements de l’algorithmique des réseaux
Présentation de CORBA et de IIOP
SYSTEMES D’EXPLOITATION
La sécurité dans les réseaux mobiles Ad hoc
Module 8 : Surveillance des performances de SQL Server
Cours 5 Le modèle de référence.
Sommaire Dans ce chapitre, nous aborderons :
Sciences de l'Ingénieur
8INF856 Programmation sur architectures parallèles
Jeu de Librairies Virtuelles « DLL » Windows pour la réalisation de programmes informatiques.
AFPA CRETEIL 1-1 Windows NT Environnement Windows NT Chapitre 1.
Exploitation efficace des grappes de PC Raymond Namyst Projet INRIA ReMaP LIP, ENS Lyon JTE Cluster Computing Octobre 2001, Besançon.
Modèles et protocoles de cohérence des données en environnement volatil Grid Data Service IRISA (Rennes), LIP (Lyon) et LIP6 (Paris) Loïc Cudennec Superviseurs.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Mastère Professionnel Systèmes de Communication et Réseaux
Une architecture de sécurité hiérarchique, adaptable et dynamique pour la grille Arnaud Contes.
Introduction au Génie Logiciel
Noyau Linux et multi-processeur sur plateforme embarquée ST50 Vendredi 18 Mars 2005 – Thomas Petazzoni.
Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR.
Approche Cross layer Dr Mekkakia Maaza Zoulikha Cours M2 SIR
GDS : Grid Data Service Gabriel Antoniu IRISA / INRIA Rennes Réunion de lancement du projet GDS de l’ACI Masses de Données 22 septembre 2003.
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
Module 3 : Création d'un domaine Windows 2000
Les Réseaux Informatiques
Supervision à distance d’une ligne de conditionnement temps réel 16/12/20101INSA de LYON - H4201.
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
COMPARAISON ENTRE GNUTELLA ET FREENET
Un service de partage de données pour DIET : GDS basé sur JuxMem Mathieu Jan Projet PARIS Lyon, 5 décembre 2003.
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
UE3-1 RESEAU Introduction
Architectures de calcul distribuées Le point de vue des communications Olivier Aumage Projet Runtime INRIA - LaBRI.
Interface de communication pour les réseaux InfiniBand
Architecture Client/Serveur
Projet GDS de l’ACI MD Projet PARIS IRISA, Rennes.
JI2006Muriel Gougerot - Nicole Iribarnes Virtualisation au LAPP.
Transcription de la présentation:

Architectures de calcul distribuées Le point de vue des communications Olivier Aumage Projet Runtime INRIA - LaBRI

Introduction Le calcul hautes performances distribué Objectif Dépasser le rythme d’évolution de la puissance des machines de calcul Techniques Matérielles Multiplication des unités de traitement Logicielles Environnements de programmation distribuée

Évolution du domaine Matériel Logiciel Diminution des travaux sur la conception de supercalculateurs Tendance à une simplification des solutions matérielles Diffusion des grappes de stations Utilisation de composants standards Logiciel Développement d’outils d’aide à la programmation distribuée > mpirun > mpirun

Architectures en grappes Caractéristiques Un ensemble de machines Des PC du commerce Un réseau classique Lent Administration Services Un réseau rapide Faible latence Débit élevé Applications Réseau rapide Réseau lent Grappe

Trois modèles ? ! Environnements de programmation Échange de messages PVM, MPI Invocation de services RPC SUN, OVM, PM2, etc. RSR Nexus JAVA RMI CORBA Mémoire virtuellement partagée TreadMarks, DSMThreads, DSM-PM2 Coexistance de fait ? !

Problématique de recherche Interfaçage avec les technologies de communication ? Processus applicatifs Mémoire virtuellement partagée (DSM) Environnement de programmation Invocation de services (RPC, RMI) Échange de messages Support de communication ? Réseau Ethernet Myrinet SCI Giganet Infiniband

Caractéristiques recherchées Une interface de communication générique Neutralité Indépendance par rapport aux modèles des environnements cibles Échange de messages Invocation de services: RPC, RMI Mémoire virtuellement partagée: DSM Portabilité Indépendance par rapport au matériel Architecture Réseau Efficacité Performances intrinsèques Latence, débit, réactivité Performances applicatives

Solutions disponibles Interfaces de haut niveau ? Exemples Standard MPI Qualités Portabilité, normalisation Richesse fonctionnelle Efficacité Interface inadaptée aux schémas de communication complexes Description des relations entre les données d’un même message ? Problème d’expressivité

Exemple de problème Invocation de service à distance Requête Un entête : descripteur du service Un corps : argument(s) du service Première option – deux messages Requête En-tête Corps En-tête En-tête Message MPI Message MPI Corps Connexion MPI En-tête Corps Corps Client Serveur

Exemple de problème Invocation de service à distance Seconde option – une copie Dans les deux cas, l’interface MPI n’est pas assez générale Requête En-tête Corps En-tête Corps En-tête Copie Message MPI Corps En-tête Corps Connexion MPI Corps Client Serveur

Solutions disponibles (suite) Interfaces de bas niveau ? Exemples BIP, GAMMA, GM, SISCI, VIA Qualités Efficacité Exploitation du potentiel matériel Dépendance du matériel Niveau d’abstraction limité Développements plus complexes Programmation directe peu réutilisable Pérennité des développements ?

Solutions disponibles (fin) Interfaces intermédiaires ? Exemples Nexus, Active Messages, Fast Messages Qualités Abstraction Efficacité Portabilité relative Neutralité ? Expressivité ? Modèle de type messages actifs Traitements supplémentaires non indispensables Problème d’approche

Objectif Proposition d’un support générique des communications de niveau intermédiaire Indépendance par rapport aux environnements de programmation Modèle de programmation neutre Indépendance par rapport aux technologies de communication Portabilité des performances Env 1 Env 2 Env 3 Env n Env 1 Env 2 Env 3 Env n ? Rés 1 Rés 2 Rés 3 Rés m Rés 1 Rés 2 Rés 3 Rés m

Objectif Répartition rationnelle des tâches Application Modèle Environnement de programmation Interface de niveau intermédiaire Interface de bas niveau Réseau Application Pile logicielle Modèle Abstraction Contrôle du matériel

Un support de communication pour grappes et grilles légères Madeleine

Caractéristiques Interface abstraite Programmation par contrat Spécification de contraintes Latitude d’optimisation Support logiciel actif Optimisation dynamique Adaptativité Transparence

Interface Notions Connexion Canal Liaison point à point unidirectionnelle Ordonnancement FIFO Canal Graphe (complet) de connexions Unité de multiplexage Virtualisation d’un réseau Processus Connexion Canal

Modèle de communication Caractéristiques Modèle Échange de messages Construction incrémentale des messages Expressivité Contrôle des blocs de données par drapeaux Notion de contrat programmeur/interface Express

Primitives Commandes essentielles Émission Réception mad_begin_packing mad_pack … mad_end_packing Réception mad_begin_unpacking mad_unpack … mad_end_unpacking

Construction des messages Commandes Mad_pack(cnx, buffer, len, pack_mode, unpack_mode) Mad_unpack(cnx, buffer, len, pack_mode, unpack_mode) Modes d’émission Send_CHEAPER Send_SAFER Send_LATER Modes de réception Receive_CHEAPER Receive_EXPRESS Contraintes d’utilisation Séquences pack/unpack strictement symétriques Triplets (len, pack_mode, unpack_mode) identiques en émission et en réception Cohérence des données

? Émission Send_SAFER Send_LATER Send_CHEAPER Pack Modification End_packing ?

Contrat programmeur/interface Send_SAFER / Send_LATER / Send_CHEAPER Contrôle du transfert des données Latitude d’optimisation Engagement du programmeur Intégrité des données Services particuliers Émission différée Réutilisation de tampons Spécification au niveau sémantique Indépendance : service requis / technique sélectionnée

Réception Receive_EXPRESS Receive_CHEAPER Unpack Après Unpack Donnée disponible Disponibilité ??? End_unpacking Donnée disponible

Structuration des messages Receive_CHEAPER / Receive_EXPRESS Receive_EXPRESS Réception immédiate impérative Interprétation/extraction du message Receive_CHEAPER Réception libre du bloc Contenu du message Express

Organisation Utilisation d’un modèle à deux couches Approche modulaire Gestion des tampons Factorisation du code de traitements de données Abstraction du matériel Approche modulaire Module de gestion de tampons (MGT) Module de gestion de protocole (MGP) Module de transmission (MT) Interface MGT MGT Gestion des tampons MGP MGP MT MT MT Gestion de protocole Réseau

Modules de transmission Madeleine Interface MGT MT Pack MGT MT Thread Réseau Processus

Mise en œuvre Chiffres et caractéristiques 58 000 lignes de code source C 39 000 pour Madeleine 134 fichiers source Réseaux TCP, VRP, GM, SISCI, BIP VIA, UDP, MPI, SBP Diffusion Licence GPL Disponibilité Linux IA32, Alpha, Sparc, PowerPC Solaris IA32, Sparc MacOS/X G4 Aix PowerPC Windows NT IA32

Mesures – première partie Environnement de test Grappe de PC bi-Pentium II 450 MHz, 128 Mo Réseau Fast-Ethernet Réseau SISCI/SCI Réseau BIP/Myrinet Méthode de test Mesures : 1000 x (émission + réception) Résultat : ½ x moyenne sur 5 mesures

SISCI/SCI – temps de transfert Taille de paquet (octets)

Taille de paquet (octets) SISCI/SCI – débit Débit (Mo/s) Taille de paquet (octets)

SISCI/SCI – temps de transfert Packs/messages Taille de paquet (octets)

SISCI/SCI – débit Packs/messages (Mo/s) Taille de paquet (octets)

Mesures – seconde partie Environnement de test Grappe de PC bi-Pentium IV HT 2.66 GHz, 1 Go Réseau Giga-Ethernet Réseau SISCI/SCI Réseau GM/Myrinet Méthode de test Mesures : 1000 x (émission + réception) Résultat : ½ x moyenne sur 5 mesures

Taille de paquet (octets) Temps de transfert Temps de transfert (µs) Taille de paquet (octets)

Taille de paquet (octets) Débit Débit (Mo/s) Taille de paquet (octets)

Et les grilles ? Passage à l’échelle

Les grilles Principe Une grille Mise en commun des ressources Une machine Une interconnexion de grilles Mise en commun des ressources Thème stratégique Un des « défis » de l’INRIA France Paris, Lyon, Rennes, Grenoble, etc. Etats-Unis, Japon, Europe, etc.

Contexte d’exécution maîtrisable Madeleine multi-grappes Grilles Contexte d’exécution maîtrisable Madeleine multi-grappes

Réseau hautes performances Support multi-grappe Exploitation des grappes de grappes Réseaux intra-grappes rapides Liens inter-grappes rapides Hétérogénéité au niveau réseau Réseau à haut débit Réseau hautes performances

Principe Canaux réels Canaux virtuels Liés à un réseau Ne couvrent pas nécessairement tous les nœuds Canaux virtuels Couvrent tous les nœuds Contiennent plusieurs canaux réels Myrinet SCI Virtuel

Intégration Module de transmission générique Limitation du code traversé sur les passerelles Interface MGT MGT Gestion des tampons MT générique MT MT MT Gestion de protocole Réseau

Module de retransmission Madeleine Interface MGT MT MT Réseau 1 MT Thread Threads Réseau 2 Processus

Préservation du débit Une copie Pipeline Ré-émission Tampon 1 Tampon 2 Même tampon pour la réception et la ré-émission LANai Pipeline Réception et ré-émission simultanée avec 2 tampons Tampon 1 Tampon 2 Réception Ré-émission

Déploiement Démarrage de session – module Léonie Sessions Réseau Flexibilité Configurations multi-grappes Lancement unifié Déploiement en rafale Extensibilité Support pour lanceurs optimisés Réseau Constructions des tables d’information Répertoire des processus Tables de routages des canaux virtuels Ordonnancement Initialisation des cartes, ouverture des canaux Madeleine Léonie

Connexions virtuelles – temps de transfert SISCI+BIP Myrinet SCI Taille de paquet (octets)

Connexions virtuelles – débit SISCI+BIP (Mo/s) Taille de paquet (octets)

MPICH/Madeleine API MPI Interface de périphérique abstraite (ADI) Interface générique : communications pt à pt, communications collectives, construction de groupes Interface de périphérique abstraite (ADI) Interface générique : gestion des types de données, gestion des files de requêtes CH_MAD SMP_PLUG CH_SELF Communications Boucles de scrutation Comms. locales Boucle locale Protocoles internes MPICH Madeleine Communications TCP UDP BIP SISCI VIA MPI SBP Support multi-protocole

MPICH/Mad/SCI – temps de transfert Taille de paquet (octets)

Taille de paquet (octets) MPICH/Mad/SCI – débit Débit (Mo/s) Taille de paquet (octets)

Simulation Code Coupling ACI « GRID RMI » VTHD Myrinet SCI … Madeleine Marcel PadicoTM MPI OpenCCM ProActive PDC Do! DSM Mome CORBA Java VM GK PaCO++ Simulation Code Coupling C3D Plants growing

Support multi-protocole Padico Application MPI JVM ORB Marcel Madeleine Communications Support multi-protocole Circuit VSock Padico Core Padico Task Manager Gestionnaire Padico micro-noyau de threads Module Net Access SBP TCP UDP BIP VIA SISCI

Padico – temps de transfert Taille de paquet (octets)

Taille de paquet (octets) Padico – débit Débit (Mo/s) Taille de paquet (octets)

Diffusion Projets externes Projet Hyperion Padico Machine virtuelle JAVA distribuée P. Hatcher University of New Hampshire, Durham, USA NSF/INRIA, équipe étrangère associée à l‘INRIA Padico Support exécutif multi-environnements Alexandre Denis, Christian Pérez, Thierry Priol Projet Paris, IRISA, Rennes ACI GRID RMI

Diffusion Projets internes PM2, DSM-PM2 MPICH/Madeleine Guillaume Mercier, Loïc Prylli Global Arrays/Madeleine Nicolas Déjean Collaboration avec J. Nieplocha (Pacific Northwest National Lab.) Application NWChem Chimie quantique Code mixte C+Fortran, 1M de lignes Nexus/Madeleine Alexandre Denis

Bibliothèque de communication Madeleine Eléments clés Support de communication unificateur Interface abstraite Programmation par contrat Architecture modulaire adaptative Optimisation dynamique Prise en charge multi-grappe transparente

Contexte d’exécution dynamique Le projet Ibis Grilles Contexte d’exécution dynamique Le projet Ibis vrije Universiteit Projet Ibis Vrije Universiteit, Amsterdam

Les grilles - suite Principe Une grille Une machine Une interconnexion de grilles Analogie avec le courant électrique Puissance de traitement utilisée sans savoir d’où elle vient Application Grille

Ibis Idées Approche centrée sur Java Environnement de programmation Portabilité inhérente supérieure à une compilation native “Write once, run everywhere” Application plus support en Java Environnement de programmation Calcul hautes performances distribué Grilles hétérogènes Haut niveau Efficacité Optimisations “sur demande” Réseaux rapides Localisation du projet Groupe Orca – Henri Bal Équipe computer systems (A.Tanenbaum) Vrije Universiteit, Amsterdam

Ibis – défis Ressources distribuées Recensement Exploration Allocation Contrôle Exploitation En Java

Architecture du projet Application RMI GMI RepMI Satin Couche de portabilité Ibis (IPL) Exploitation Communication Contrôle Observation grille Allocation Gestion des ressources Exploration Découverte topologie Recensement Service d’information TCP, UDP, GM Panda, MPI NWS TopoMon GRAM GIS

Les communications Modèle de base Échange de messages Configuration ouverte TCP Ibis Net Ibis Notions Port de réception Accepte des connexions d’un ou plusieurs ports d’émission Sérialise les réceptions de messages Port d’émission Peut être connecté à un ou plusieurs ports de réception Transmet chaque message à tous les ports auquel il est connecté

Interface Échange de message en Java Types natifs Tableaux Objets Octets Valeur booléenne Caractères Entiers, courts, médians, longs Flottants courts, longs Tableaux Tableaux d’éléments de type natif Efficacité Sous-tableaux Tableaux d’objets Objets Plusieurs schémas de sérialisation

Modules de communication Application RMI GMI RepMI Satin Implémentations TCP Ibis Panda Ibis Couche de portabilité Ibis (IPL) Serialisation / Communication TCP Ibis Panda Ibis TCP Panda, MPI

Limitations TCP Ibis - mise en œuvre de référence Panda Ibis TCP « cablé » Panda Ibis Proportion importante de code natif Modèle fermé Code commun limité Architectures monolithiques Factorisation de code réduite Évolutivité compromise

Contribution – Net Ibis Objectifs Prototypage aisé Modularité, flexibilité Isolation des tâches Pilotes courts Portabilité Limitation stricte de la quantité de code natif Utilisation des mécanismes Java Threads Synchronisation Modèle ouvert Connexions/déconnexions Tolérance aux déconnexions brutales Efficacité Scrutation, appels montants Support multi-protocole

Modules de communication Application RMI GMI RepMI Satin Implémentations TCP Ibis Panda Ibis Net Ibis Couche de portabilité Ibis (IPL) Serialisation / Communication TCP Ibis Net Ibis Panda Ibis TCP TCP, UDP, GM etc. Panda, MPI

Architecture Chaîne de traitement des données Pile configurable Interface des pilotes unifiée Éléments optionnels Ordre libre Chargement dynamique Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port Interface port Pilote réseau physique Interface port Sérialisation Multiplexage port Pilote réseau physique

Pilotes Caractéristiques des modules Objets Pilote Entrée Sortie Usine d’objets entrée et sortie Une instance par session Une ou plusieurs connexions sortantes Interface unifiée Une ou plusieurs connexions entrantes Sortie simple Sortie multiple

Pilotes Caractéristiques des modules Objets Pilote Entrée Sortie Usine d’objets entrée et sortie Une instance par session Une ou plusieurs connexions sortantes Interface unifiée Une ou plusieurs connexions entrantes Sortie simple Sortie multiple

Exemple Port d’émission Interface port Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port UDP TCP GM

Exemple – connexions Port d’émission Interface port Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port

Exemple – trajet des données Port d’émission Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port

Exemple – multiplication des connexions Port d’émission Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port

Exemple – utilisations plus complexes Port d’émission Sérialisation Natifs->octets Multi-protocole Multiplexage port Fiabilité Multiplexage connexion Pilote réseau physique Interface port

Connexion de service Réseau interne Caractéristiques Intérêt TCP Multiplexage transparent Intérêt Phase de connexion unifiée Détection de déconnexion brutale unifiée Simplification des pilotes Fonctionnalités dynamiques à faible fréquence TCP

Multiplexage connexion Mise en œuvre Chiffres et caractéristiques Status experimental 35 000 lignes de code Java & C Réseaux GM, TCP, UDP Connexion de service Interface port Sérialisation Natifs->octets Identité Multi-protocole Multiplexage port Fiabilité Multiplexage connexion GM TCP UDP Service

Évaluation Environnement de test Méthode de test Grappe de PC bi-Pentium III 1 GHz, 1 Go Réseau GM/Myrinet Réseau Fast-Ethernet Méthode de test Mesures : 1000 x (émission + réception) Résultat : ½ x moyenne sur 5 mesures “préchauffage”

Taille de paquet (octets) GM – temps de transfert Temps de transfert (µs) Taille de paquet (octets)

Taille de paquet (octets) GM – débit Débit (Mo/s) Taille de paquet (octets)

Support de communication Net Ibis Eléments clés Gestions des communications sur la grille Conception hautement modulaire Pile de communication configurable à l’exécution Modèle de connexion ouvert Support multi-protocole Support minimal de la tolérance aux pannes Architecture ouverte

Conclusion générale Architectures distribuées – le point de vue des communications Contribution sur l’aspect données Madeleine Programmation par contrat Portabilité des performances Contribution sur l’aspect connexions Net Ibis Pile flexible Modèle ouvert

Perspectives Données Connexions Enrichissement de l’interface Structuration plus précise des messages Indications sur le futur proche Réduction des cas pathologiques Tolérance de pertes Automatisation, spécialisation de code Séquences de communication Connexions Configuration de haut niveau Couplage avec services d’information topologique Fonctionnement décentralisé