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

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

PC / Traitement numérique / Contrôle Environnement logiciel
Projet de Virtualisation dans le cadre d’un PCA/PRA
Processus d'expression du besoin
A NETWORK-AWARE DISTRIBUTED STORAGE CACHE FOR DATA INTENSIVE ENVIRONMENTS Brian L. TIERNEY, Jason LEE, Brian CROWLEY, Mason HOLDING Computing Sciences.
La machine virtuelle virtuelle utopie et/ou réalité ?
Master de recherche informatique Université de Montpellier 2
Types des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
1 Internet Act II Gilles Kahn Président Directeur Général, INRIA.
DUDIN Aymeric MARINO Andrès
CLUSTERING Grappe d'ordinateurs.
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.
18 avril 2002réunion Datagrid France1 E-toile Plate-forme RNTL 2001 Environnement matériel et logiciel pour le développement et l expérimentation de grille.
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.
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
NFE 107 : Urbanisation et architecture des systèmes d'information
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
Bases et Principes de la Virtualisation. Votre infrastructure informatique ressemble-t-elle à cela ? 2.
Les Systèmes d’Exploitation
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.
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Présentation du mémoire
IFT 6800 Atelier en Technologies d’information
Module 3 : Analyse des performances du serveur
LES RESEAUX INDUSTRIELS
Gestion de l'hétérogénéité et des longues distances dans une grille de calcul.
Architectures de calcul distribuées Le point de vue des communications
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
Partage de mémoire à très grande échelle sur des réseaux pair-à-pair
Présentation de CORBA et de IIOP
Module 8 : Surveillance des performances de SQL Server
Cours 5 Le modèle de référence.
Sommaire Dans ce chapitre, nous aborderons :
8INF856 Programmation sur architectures parallèles
Jeu de Librairies Virtuelles « DLL » Windows pour la réalisation de programmes informatiques.
INF8505: processeurs embarqués configurables
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.
Frédéric Mardon Laurent Martinou Benjamin Thominet Frédéric Mardon Laurent Martinou Benjamin Thominet.
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.
D. E ZEGOUR Institut National d ’Informatique
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
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.
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
Module 3 : Création d'un domaine Windows 2000
Les différents modèles d’architecture technique
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.
Un service de partage de données pour DIET : GDS basé sur JuxMem Mathieu Jan Projet PARIS Lyon, 5 décembre 2003.
Equipe HomECOntrol.  Documents de référence  Mission du produit  Exigences fonctionnelles  Hardware  Software  Exigences opérationnelles  Interfaces.
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Interface de communication pour les réseaux InfiniBand
Les fermes de PCs au Centre de Calcul de l’IN2P3 Journée « ferme de PCs » 27 juin 2000 Benoit Delaunay
Architecture Client/Serveur
Module 2 : Planification de l'installation de SQL Server
Projet GDS de l’ACI MD Projet PARIS IRISA, Rennes.
Historique L’évolution des architectures du début à nos jours.
Proposition de possibilité d’évolution de nos spécialités Deux projets (liés) : Projet 1 : Informatique Computationnelle – Etudiants 4 e et 5 e IR Projet.
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
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

Une forte demande en puissance de calcul simulation et modélisation météo, climatologie chimie traitement des signaux images sons analyse de données génomes fouille de données en puissance de traitement bases de données serveurs multimédia Internet

Une forte demande en puissance de calcul simulation et modélisation météo, climatologie chimie traitement des signaux images sons analyse de données génomes fouille de données en puissance de traitement bases de données serveurs multimédia Internet

Une forte demande en puissance de calcul simulation et modélisation météo, climatologie chimie traitement des signaux images sons analyse de données génomes fouille de données en puissance de traitement bases de données serveurs multimédia Internet

Le parallélisme une tentative de réponse « l’union fait la force » > gauss

Le parallélisme une tentative de réponse « l’union fait la force » > gauss

Plusieurs niveaux machines architectures distribuées processeurs machines multi-processeurs unités de calcul processeurs superscalaires processus multi-programmation temps partagé threads multi-programmation à grain fin

Plusieurs approches machines à mémoire partagée > gauss

Plusieurs approches machines à mémoire distribuée > gauss

Plusieurs approches machines hybrides : Non-Uniform Memory Access (NUMA) > gauss

Contexte Historique Évolutions récentes

Matériel Début des recherches en parallélisme Machines peu fiables Coût extrêmes Logiciel Peu de chercheurs ont accès aux premiers supercalculateurs Peu de recherche Illiac-IV

Matériel Production commerciale de supercalculateurs Cray-1 (1976) Cray X-MP (1982) Recherche très active Calcultateurs massivements parallèles Hypercubes Utilisation de microprocesseurs Logiciel Les problèmes apparaissent La programmation parallèle est trop difficile Cray X-MP

Évolutions récentes Matériel Fort retrait des supercalculateurs entre 1990 et 1995 Nombreuses faillites Rachat de sociétés Disparition des architectures originales Micro-informatique Micro-processeurs rapides Réseaux haut débit/faible latence de plus en plus répandus Configurations PC/stations puissantes Logiciel Nécessité d’outils Compilateurs paralléliseurs Débogueurs Bibliothèques Essentiel des efforts de recherche

Pourquoi un tel déclin ? Peut-être un manque de réalisme Faible demande en supercalculateurs Coût d’achat et d’exploitation trop élevés Obsolescence rapide Viabilité des solutions pas toujours très étudiée Difficultés de mise au point Solutions dépassées dès leur disponibilité Une utilisation peu pratique Systèmes d’exploitation propriétaires Difficulté d’apprentissage Manque ou absence d’outils Difficulté d’exploitation

Conséquences Cahier des charges pour une machine parallèle

Objectifs é conomiques Acquisition Coût limité par rapport aux supercalculateurs Rapport puissance/coût élevé Exploitation Ergonomie Fiabilité Facilité de maintenance Scalabilité Evolutivité

Objectifs techniques Solutions non-propriétaires Nœuds à base d’ordinateurs personnels Systèmes d’exploitation classiques Linux, systèmes BSD, Solaris Windows NT Composants non-propriétaires Processeurs Intel / AMD (x86), DEC (Alpha), Motorola (PPC) Réseaux Ethernet, Myrinet, SCI, Giganet

Grappes d ’ ordinateurs Concepts et idées

Principes généraux Structure d’une grappe Grappe

Principes généraux Structure d’une grappe Un ensemble de machines Des PC du commerce Grappe Dell PowerEdge 2550

Principes généraux Structure d’une grappe Un ensemble de machines Des PC du commerce Un réseau classique Lent Réservé à l’administration Réseau lent Grappe

Principes généraux Structure d’une grappe Un ensemble de machines Des PC du commerce Un réseau classique Lent Réservé à l’administration Un réseau rapide Temps de transfert réduit Débit élevé Réservé aux applications Réseau rapide Réseau lent Grappe

Machines Quantité Grappes classiques 8, 16, 32 machines Grandes grappes Plusieurs centaines Processeur Nombre 1 ou 2 Type Pentium III/IV Athlon Autres : Alpha, Sparc Fréquence 1 GHz = Hertz Mémoire Taille 1 Go = octets Icluster (grappe de 100 pc, Grenoble)

Communications Réseaux rapides Grande fiabilité Faible latence Quelques µs Réactivité Haut débit 100 ~ 1000 Mbit/s Gros volumes Carte de communication Myricom Fibre optique

Comparatif Cray T3E

Exposé Madeleine

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

É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

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

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

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

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

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

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

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

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

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 mad_begin_packing mad_pack … mad_pack mad_end_packing Réception mad_begin_unpacking mad_unpack … 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 Pack Modification End_packing Send_SAFERSend_LATERSend_CHEAPER

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 Unpack Après Unpack End_unpacking Receive_EXPRESSReceive_CHEAPER Donnée disponibleDisponibilité ??? 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 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

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

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, IA64? 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) Temps de transfert (µs)

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

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

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

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

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

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

Et les grilles ? Passage à l’échelle

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 (Grid 5000) Paris, Lyon, Rennes, Grenoble, etc. Etats-Unis, Japon, Europe, etc.

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 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 Gestion des tampons Gestion de protocole MGT MT Réseau MT générique

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

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

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

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

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

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

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

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

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

Padico

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

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

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, RennesRuntime 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 Alta Calculs itératifs à tolérance de pertes

Conclusion Support de communication unificateur Interface abstraite Programmation par contrat Architecture modulaire adaptative Optimisation dynamique Prise en charge multi-grappe transparente

Perspectives Enrichissement de l’interface Structuration plus précise des messages Indications sur le futur proche Réduction des cas pathologiques Tolérance de pertes Traitement des séquences de communication Automatisation, spécialisation de code, compilation Gestion de session Déploiement Dynamicité Tolérance aux pannes Passage à l’échelle

Sortie