architectures de calcul distribuées le point de vue des communications olivier aumage projet...

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

Upload: agrippine-foucault

Post on 04-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

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

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

Olivier Aumage

Projet RuntimeINRIA - LaBRI

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

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

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

É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> mpirun

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

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 GrappeGrappe

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

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

?

!

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

Problématique de recherche

Interfaçage avec les technologies de communication ?

RéseauRéseau

Environnementde programmationEnvironnementde programmation

Support de communicationSupport de communication

Échange de messages

Invocation de services(RPC, RMI)

?

ProcessusapplicatifsProcessusapplicatifs

Ethernet Myrinet SCI Giganet Infiniband

Mémoire virtuellement

partagée(DSM)

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

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

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

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é

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

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

ConnexionMPI

MessageMPI

En-tête

En-tête

Message MPI

Corps

Requête

Corps

En-tête

En-tête

Corps

Client Serveur

Corps

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

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

ConnexionMPI

MessageMPI

Corps

En-tête

Copie

Corps

En-tête

Corps

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

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 ?

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

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

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

Objectif

Proposition d’un support générique des communications de niveau intermédiaire

Indépendance par rapport aux environnements de programmationModèle de programmation neutre

Indépendance par rapport aux technologies de communicationPortabilité des performances

Env 1 Env 2 Env 3 Env n

Rés 1 Rés 2 Rés 3 Rés m

Env 1 Env 2 Env 3 Env n

Rés 1 Rés 2 Rés 3 Rés m

?

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

Objectif

Répartition rationnelle des tâches

Environnementde

programmation

Interfacede niveau

intermédiaire

Interfacede basniveau

Réseau

Application

Pile logicielle

Modèle

Abstraction

Contrôle du matériel

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

Madeleine

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

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

Caractéristiques

Interface abstraite

Programmation par contrat Spécification de contraintes Latitude d’optimisation

Support logiciel actif Optimisation dynamique Adaptativité Transparence

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

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

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

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

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

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

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

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

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

Émission

Pack

Modification

End_packing

Send_SAFER Send_LATER Send_CHEAPER

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

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

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

Réception

Unpack

Après Unpack

End_unpacking

Receive_EXPRESS Receive_CHEAPER

Donnée disponible Disponibilité ???

Donnée disponible

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

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

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

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

Gestionde

protocole

MGT MGT

MT MT MT

Réseau

MGP MGP

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

Modules de transmission

Thread

Réseau

Pack

Madeleine

Interface MGT

MGT

MT

MT

Processus

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

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

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

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

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

SISCI/SCI – temps de transfert

1

10

100

1000

10000

100000

Mad/ SISCI

SISCI

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

SISCI/SCI – débit

0,1

1

10

100

Mad/ SISCI

SISCI

Taille de paquet (octets)

Déb

it

(Mo/

s)

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

SISCI/SCI – temps de transfertPacks/messages

1

10

100

1000

10000

100000

Mad/ SISCI

2 msgs

2 packs

4 msgs

4 packs

8 msgs

8 packs

16 msgs

16 packs

32 msgs

32 packs

64 msgs

64 packs

128 msgs

128 packs

256 msgs

256 packs

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

SISCI/SCI – débitPacks/messages

Taille de paquet (octets)

Déb

it

(Mo/

s)

0,1

1

10

100

Mad/ SISCI

2 msgs

2 packs

4 msgs

4 packs

8 msgs

8 packs

16 msgs

16 packs

32 msgs

32 packs

64 msgs

64 packs

128 msgs

128 packs

256 msgs

256 packs

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

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

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

Temps de transfert

1

10

100

1000

10000

Mad/ SISCI

Mad/ GM

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

Débit

0,1

1

10

100

1000

Mad/ SISCI

Mad/ GM

Taille de paquet (octets)

Déb

it

(Mo/

s)

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

Et les grilles ?

Passage à l’échelle

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

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.

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

Grilles

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

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

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ébitRéseau hautes

performancesRéseau hautes performances

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

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

MyrinetSCI

Virtuel

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

Intégration

Module de transmission générique Limitation du code traversé sur les passerelles

Interface

Gestion des

tampons

Gestionde

protocole

MGT MGT

MT MT MT

Réseau

MT générique

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

Module de retransmission

Thread

Réseau 2

Madeleine

MGT MT

MT

Processus

MTInterface

Threads

Réseau 1

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

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

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

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

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

Connexions virtuelles – temps de transfertSISCI+BIP

10

100

1000

10000

100000

BIP+SISCI

SISCI+BIP

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

Myrinet

SCI

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

Connexions virtuelles – débitSISCI+BIP

Taille de paquet (octets)

Déb

it

(Mo/

s)

0,1

1

10

100

4 16 64256

10244096

16384

65536

262144

1048576

BIP+SISCI

SISCI+BIP

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

API MPIInterface 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_MADCommunicationsBoucles de scrutationProtocoles internes MPICH

CommunicationsSupport multi-protocole

SBPTCP UDP BIP MPIVIASISCI

MPICH/Madeleine

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

MPICH/Mad/SCI – temps de transfert

1

10

100

1000

10000

100000

Mad

MPICH/ Mad

SCI-MPICH

SCA MPI

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

MPICH/Mad/SCI – débit

0,1

1

10

100

Mad

MPICH/ Mad

SCI-MPICH

SCA MPI

Taille de paquet (octets)

Déb

it

(Mo/

s)

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

ACI « GRID RMI »

VTHDVTHD Myrinet SCI …

Madeleine Marcel

PadicoTM

MPI

OpenCCM ProActivePDC

Do!

DSM MomeCORBA

Java VM

GK

PaCO++

Simulation Code Coupling C3D Plants growing

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

Application

MPI JVMORB

MarcelMadeleineCommunicationsSupport multi-protocole

Circuit VSock

Padico Core

Padico Task Manager

Gestionnaire Padicomicro-noyaude threads

Module Net Access

SBPTCP UDP BIP MPIVIASISCI

Padico

Padico

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

Padico – temps de transfert

1

10

100

1000

10000

Madeleine

Vsock

MPI

CORBA

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

Padico – débit

0,01

0,1

1

10

100

1000

Madeleine

Vsock

MPI

Corba

Java

Taille de paquet (octets)

Déb

it

(Mo/

s)

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

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

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

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

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

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

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

Grilles

Contexte d’exécution dynamique Le projet Ibis

vrije Universiteit

Projet IbisVrije Universiteit, Amsterdam

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

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

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

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

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

Ibis – défis

Ressources distribuées

Recensement Exploration Allocation Contrôle Exploitation

En Java

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

Architecture du projet

Application

RMI GMI RepMI Satin

Couche de portabilité Ibis (IPL)

ExploitationCommunication

ContrôleObservation

grille

ExplorationDécouvertetopologie

RecensementService

d’information

TCP, UDP, GMPanda, MPI

NWS

AllocationGestion

des ressources

TopoMon GRAM GIS

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

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é

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

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

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

Modules de communication

Implémentations

TCP Ibis Panda Ibis

Application

RMI GMI RepMI Satin

Serialisation / Communication

TCP Ibis Panda Ibis

Panda, MPI

Couche de portabilité Ibis (IPL)

TCP

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

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

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

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

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

Modules de communication

Implémentations

TCP Ibis Panda Ibis Net Ibis

Application

RMI GMI RepMI Satin

Serialisation / Communication

TCP Ibis Net Ibis Panda Ibis

TCP, UDP, GMetc.

Panda, MPI

Couche de portabilité Ibis (IPL)

TCP

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

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

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

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

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

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

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

Sérialisation

Natifs->octets

Multi-protocole

Multiplexage port

Fiabilité

Multiplexage connexion

Pilote réseau physique

Interface port

Exemple

Port d’émission

GM

TCP

UDP

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

Sérialisation

Natifs->octets

Multi-protocole

Multiplexage port

Fiabilité

Multiplexage connexion

Pilote réseau physique

Interface port

Exemple – connexions

Port d’émission

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

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

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

Sérialisation

Natifs->octets

Multi-protocole

Multiplexage port

Fiabilité

Multiplexage connexion

Pilote réseau physique

Interface port

Exemple – multiplication des connexions

Port d’émission

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

Sérialisation

Natifs->octets

Multi-protocole

Multiplexage port

Fiabilité

Multiplexage connexion

Pilote réseau physique

Interface port

Exemple – utilisations plus complexes

Port d’émission

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

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

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

Mise en œuvre

Chiffres et caractéristiques

Status experimental

35 000 lignes de code Java & C

Réseaux GM, TCP, UDP Connexion de service

Sérialisation

Natifs->octets

Multi-protocole

Multiplexage port

Fiabilité

Multiplexage connexion

TCP

Interface port

UDP ServiceGM

Identité

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

É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”

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

GM – temps de transfert

1

10

100

1000

10000

100000

NetIbis/ GM

+ multiplexage

Taille de paquet (octets)

Tem

ps d

e

tran

sfe

rt(µ

s)

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

GM – débit

0,1

1

10

100

1000

NetIbis/ GM

+ multiplexage

Taille de paquet (octets)

Déb

it

(Mo/

s)

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

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

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

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

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

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é

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