La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Architectures de calcul distribuées Le point de vue des communications Olivier Aumage Projet Runtime INRIA - LaBRI."— Transcription de la présentation:

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

2 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 Introduction

3 Évolution du domaine Matériel 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

4 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

5 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 ? !

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

7 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

8 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é

9 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 Connexion MPI Message MPI En-tête Message MPI Corps Requête Corps En-tête Corps ClientServeur Corps

10 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 ServeurClient En-tête Corps Requête Corps En-tête Connexion MPI Message MPI Corps En-tête Copie Corps En-tête Corps

11 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 ?

12 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

13 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 1Env 2Env 3Env n Rés 1Rés 2Rés 3Rés m Env 1Env 2Env 3Env n Rés 1Rés 2Rés 3Rés m ?

14 Objectif Répartition rationnelle des tâches 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

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

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

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

18 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

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

20 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

21 Émission Pack Modification End_packing Send_SAFERSend_LATERSend_CHEAPER

22 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

23 Réception Unpack Après Unpack End_unpacking Receive_EXPRESSReceive_CHEAPER Donnée disponibleDisponibilité ??? Donnée disponible

24 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

25 Organisation Utilisation d’un modèle à deux couches 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 Gestion des tampons Gestion de protocole MGT MT Réseau MGP

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

27 Mise en œuvre Chiffres et caractéristiques lignes de code source C 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

28 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

29 SISCI/SCI – temps de transfert Taille de paquet (octets) Temps de transfert (µs)

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

31 SISCI/SCI – temps de transfert Packs/messages Taille de paquet (octets) Temps de transfert (µs)

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

33 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

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

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

36 Et les grilles ? Passage à l’échelle

37 Les grilles Principe Une grille 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.

38 Grilles Contexte d’exécution maîtrisableMadeleine multi-grappes

39 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

40 Principe Canaux réels 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

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

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

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

44 Déploiement Démarrage de session – module Léonie Sessions 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

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

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

47 API MPI 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 SMP_PLUG Comms. locales CH_SELF Boucle locale Madeleine CH_MAD Communications Boucles de scrutation Protocoles internes MPICH Communications Support multi-protocole SBPTCPUDPBIPMPIVIASISCI MPICH/Madeleine

48 MPICH/Mad/SCI – temps de transfert Taille de paquet (octets) Temps de transfert (µs)

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

50 ACI « GRID RMI » VTHD MyrinetSCI… MadeleineMarcel PadicoTM MPI OpenCCM ProActive PDC Do! DSM Mome CORBA Java VM GK PaCO++ Simulation Code CouplingC3DPlants growing

51 Padico

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

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

54 Diffusion Projets externes Projet Hyperion 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

55 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

56 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

57 Grilles Contexte d’exécution dynamiqueLe projet Ibis vrije Universiteit Projet Ibis Vrije Universiteit, Amsterdam

58 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

59 Ibis Idées Approche centrée sur Java 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

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

61 Architecture du projet Application RMIGMIRepMISatin Couche de portabilité Ibis (IPL) Exploitation Communication Contrôle Observation grille Exploration Découverte topologie Recensement Service d ’ information TCP, UDP, GM Panda, MPI NWS Allocation Gestion des ressources TopoMonGRAMGIS

62 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é

63 Interface Échange de message en Java Types natifs 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

64 Modules de communication Implémentations TCP Ibis Panda Ibis Application RMIGMIRepMISatin Serialisation / Communication TCP IbisPanda Ibis Panda, MPI Couche de portabilité Ibis (IPL) TCP

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

66 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

67 Modules de communication Implémentations TCP Ibis Panda Ibis Net Ibis Application RMIGMIRepMISatin Serialisation / Communication TCP IbisNet IbisPanda Ibis TCP, UDP, GM etc. Panda, MPI Couche de portabilité Ibis (IPL) TCP

68 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 Pilote réseau physique Interface port Sérialisation Multiplexage port Pilote réseau physique

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

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

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

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

73 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

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

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

76 Connexion de service Réseau interne Caractéristiques 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

77 Mise en œuvre Chiffres et caractéristiques Status experimental lignes de code Java & C Réseaux GM, TCP, UDP Connexion de service Sérialisation Natifs->octetsMulti-protocoleMultiplexage portFiabilité Multiplexage connexion TCP Interface port UDPServiceGM Identité

78 Évaluation Environnement 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”

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

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

81 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

82 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

83 Perspectives Données 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é

84

85


Télécharger ppt "Architectures de calcul distribuées Le point de vue des communications Olivier Aumage Projet Runtime INRIA - LaBRI."

Présentations similaires


Annonces Google