Vous êtes sur la page 1sur 25

Copyright

 Copyright © 2006 Olivier Glück; all rights reserved


 Ce support de cours est soumis aux droits d’auteur et n’est
donc pas dans le domaine public. Sa reproduction est
Communications dans les cependant autorisée à condition de respecter les conditions
clusters suivantes :
 Si ce document est reproduit pour les besoins personnels du
reproducteur, toute forme de reproduction (totale ou partielle) est
autorisée à la condition de citer l’auteur.
Olivier GLÜCK  Si ce document est reproduit dans le but d’être distribué à des tierces
Université LYON 1/UFR d’Informatique personnes, il devra être reproduit dans son intégralité sans aucune
modification. Cette notice de copyright devra donc être présente. De
plus, il ne devra pas être vendu.
ENS LIP projet INRIA RESO  Cependant, dans le seul cas d’un enseignement gratuit, une
Olivier.Gluck@ens-lyon.fr participation aux frais de reproduction pourra être demandée, mais elle
ne pourra être supérieure au prix du papier et de l’encre composant le
document.
http://www710.univ-lyon1.fr/~ogluck  Toute reproduction sortant du cadre précisé ci-dessus est interdite
sans accord préalable écrit de l’auteur.
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 2

Plan Bibliographie
 Introduction  « La communication sous Unix », 2ième édition, Jean-Marie
 Modèle client/serveur, API socket et RPC Rifflet, Ediscience international, ISBN 2-84074-106-7
 « Bulding Clustered Linux Systems », R. W. Lucke, Prentice Hall
 Communications inter-processus bloquantes/non bloquantes… PTR, ISBN 0-13-144853-6
 Clusters et communications  « High Performance Cluster Computing », Vol. 1&2, R. Buyya,
Prentice Hall PTR, ISBN 0-13-013784-7
 Architecture et composants d’un cluster
 « Beowulf Cluster Computing with Linux », 2nd edition, Gropp,
 Modèles à mémoire partagée/distribuée M.I.T. Press, ISBN 0-262-69292-9
 La bibliothèque de communication MPI  « Operating Systems : Internals and Design Principles », 5th
Edition, W. STALLINGS, Pearson Education International, ISBN 0-
 Problèmes liés à la communication dans les clusters 13-127837-1
 Optimisations des communications  Internet…
http://www.cs.mu.oz.au/678/
 Les réseaux rapides dans les clusters (Myrinet, Quadrics, 

 http://www.cs.wmich.edu/~gupta/teaching/cs526/sp03/tutorials/mpich.html
Infiniband, …)  http://www.buyya.com/
 Application à l’implantation de MPI sur un réseau rapide  http://www.cs.wmich.edu/gupta/teaching/cs626/w98/mpich_doc.html
disposant d’une primitive d’écriture distante
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 3 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 4

Les applications réseau (1)


 Applications = la raison d'être des réseaux infos
 Profusion d'applications depuis 30 ans grâce à
l'expansion d'Internet
années 1980/1990 : les applications "textuelles"
Introduction 

 messagerie électronique, accès à des terminaux

distants, transfert de fichiers, groupe de discussion


(forum, newsgroup), dialogue interactif en ligne
Modèle client/serveur (chat), la navigation Web
 plus récemment :
Communications inter-processus  les applications multimédias : vidéo à la demande

Rappel : API socket et RPC (streaming), visioconférences, radio et téléphonie sur


Internet
 la messagerie instantanée (ICQ, MSN Messenger)

 les applications Peer-to-Peer (MP3, …)


Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 6
Les applications réseau (2) Terminologie des applications réseau

 L'application est généralement répartie (ou  Processus :


distribuée) sur plusieurs systèmes  une entité communicante
 Exemples :  un programme qui s'exécute sur un hôte d'extrémité
 L'application Web est constituée de deux logiciels  Communications inter-processus locales :
communiquants : le navigateur client qui effectue une
 communications entre des processus qui s'exécutent
requête pour disposer d'un document présent sur le
serveur Web sur un même hôte
 L'application telnet : un terminal virtuel sur le client, un  communications régies par le système d'exploitation
serveur telnet distant qui exécute les commandes (tubes UNIX, mémoire partagée, …)
 La visioconférence : autant de clients que de  Communications inter-processus distantes :
participants
 les processus s'échangent des messages à travers le
 --> Nécessité de disposer d'un protocole de réseau selon un protocole de la couche applications
communication applicatif !  nécessite une infrastructure de transport sous-jacente
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 7 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 8

Protocoles de la couche Applications Le modèle Client / Serveur


 Le protocole applicatif définit :  Idée : l'application est répartie sur différents
 le format des messages échangés entre les processus sites pour optimiser le traitement, le stockage...
émetteur et récepteur
 Le client
 les types de messages : requête, réponse, …
 effectue une demande de service auprès du serveur
 l'ordre d'envoi des messages
(requête)
 Exemples de protocoles applicatifs :  initie le contact (parle en premier), ouvre la session
HTTP pour le Web, POP/IMAP/SMTP pour le courrier

 Le serveur
électronique, SNMP pour l'administration de réseau, …
 est la partie de l'application qui offre un service
 Ne pas confondre le protocole et l'application !
 est à l'écoute des requêtes clientes
 Application Web : un format de documents (HTML),
 répond au service demandé par le client (réponse)
un navigateur Web, un serveur Web à qui on
demande un document, un protocole (HTTP)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 9 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 10

Le modèle Client / Serveur Des clients et des serveurs...


Plusieurs clients, un serveur :
 Le client et le serveur ne sont pas identiques, ils
forment un système coopératif Un client, un serveur :
Client Maître Client

 les parties client et serveur de l'application peuvent


Client Serveur
s'exécuter sur des systèmes différents Esclave Esclave
Requête/Réponse
 une même machine peut implanter les côtés client ET Le serveur traite plusieurs requêtes
serveur de l'application simultanées

 un serveur peut répondre à plusieurs clients Un client, plusieurs serveurs :


simultanément
Client Serveur Serveur

Le serveur contacté peut faire appel à un


service sur un autre serveur (ex. SGBD)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 11 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 12
Le modèle Client / Serveur Le modèle Client / Serveur
Client A
Applications
Application C/S modem
Transport
Processus Processus L'application est répartie sur Système autonome
Réseau
client Protocole applicatif serveur le client et le serveur qui Liaison
Système Système dialoguent selon un protocole Physique
(OS) (OS) applicatif spécifique
Matériel Résea Matériel Applications
u Transport
Partie cliente requête Réseau
réponse
Le Web de l'application Liaison
Serveur Applications Physique
Navigateur
HTTP Apache Transport
Réseau
L'exemple du Web Windows Linux
Liaison
Serveur
Modem Physique
Client B
Internet Ethernet Partie serveur de
ADSL
l'application
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 13 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 14

Interface de programmation réseau Interface de programmation réseau

 Il faut une interface entre l'application réseau et


la couche transport
 le transport n'est qu'un tuyau (TCP ou UDP dans Application C/S
Du ressort du
Internet) Processus Processus
développeur de
l'application client Protocole applicatif serveur
 l'API (Application Programming Interface) n'est que le Interface d'accès
socket socket
moyen d'y accéder (interface de programmation) au transport

 Les principales APIs de l'Internet Du ressort du TCP/IP TCP/IP


système
 les sockets d'exploitation Matériel Matériel
Internet
 apparus dans UNIX BSD 4.2

 devenus le standard de fait


Une socket : interface locale à l'hôte, créée par l'application, contrôlée par l'OS
 les RPC : Remote Procedure Call - appel de Porte de communication entre le processus client et le processus serveur
procédures distantes
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 15 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 16

Application C/S - récapitulatif Le Middleware

 Une application Client/Serveur, c'est  Grossièrement : la gestion du protocole


 une partie cliente qui exécute des requêtes vers un applicatif+l'API d'accès à la couche transport+des
serveur services complémentaires
 une partie serveur qui traite les requêtes clientes et
y répond  C'est un ensemble de services logiciels construits
 un protocole applicatif qui définit les échanges au dessus d'un protocole de transport afin de
entre un client et un serveur permettre l'échange de requête/réponse entre le
 un accès via une API (interface de programmation) client et le serveur de manière transparente
à la couche de transport des messages
Client Serveur
 Bien souvent les parties cliente et serveur ne
sont pas écrites par les mêmes programmeurs Middleware
(Navigateur Netscape/Serveur apache) --> rôle
Réseau
important des RFCs qui spécifient le protocole !
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 17 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 18
Le Middleware Fonctions d’un Middleware

 Complément de services du réseau permettant la  Procédures d’établissement/fermeture de connexion


réalisation du dialogue client/serveur :  Exécution des requêtes, récupération des résultats
 prend en compte les requêtes de l’application cliente  Initiation des processus sur différents sites
 les transmet de manière transparente à travers le  Services de répertoire
réseau jusqu’au serveur
 Accès aux données à distance
 prend en compte les données résultat du serveur et
les transmet vers l’application cliente  Gestion d'accès concurrents
 L’objectif essentiel du middleware est d’offrir aux  Sécurité et intégrité (authentification, cryptage, …)
applications une interface unifiée permettant  Monitoring (compteurs, …)
l’accès à l’ensemble des services disponibles sur  Terminaison de processus
le réseau : l’API  Mise en cache des résultats, des requêtes
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 19 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 20

Les modes de communication Les modes de communication


 Communication en mode connecté
 Communication en mode non connecté
Client Réseau Serveur

Client Réseau Serveur message de connexion prise en compte de


demande de
la connexion
message requête connexion
envoi d'une requête prise en compte de
la requête Création d’un contexte

réveil du serveur Emission de requêtes Exécution des


Réception de résultats requêtes
réception du résultat Synchronisation
exécution requête
message réponse
poursuite du traitement message de déconnexion
prise en compte de
demande de
la déconnexion
déconnexion
Libération du contexte
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 21 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 22

Les schémas de communication Communication par mémoire partagée

 Dès lors qu'une application est répartie, elle se  Les processus se partagent une zone de
décompose en plusieurs processus qui doivent mémoire commune dans laquelle ils peuvent lire
communiquer (échanges de données) et/ou écrire
Zone de mémoire partagée
 Deux grands types de schéma de communication write() entre P1 et P2 read()
 communication par mémoire partagée (ou fichier) P1 P2
read() write()
communication par passage de messages
Intérêt : communications transparentes,


 On retrouve ces deux schémas de communication limitation des copies mémoire
 dans des communications locales : entre processus  Problème : gestion de l'accès à une ressource
s'exécutant sur le même hôte partagée
 problème si deux écritures simultanées (ordre
 dans des communications distantes : entre d’ordonnancement, atomicité des opérations)
processus s'exécutant sur des hôtes distants  les processus P1 et P2 doivent se synchroniser pour
accéder au tampon partagé (verrou, sémaphore, …)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 23 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 24
Communication par mémoire partagée Les tubes de communication (pipes)

 Communications locales  Communications locales type mémoire partagée


 les deux processus s'exécutent sur la même machine  le canal de communication est unidirectionnel (pas de
donc peuvent se partager une partie de leur espace problème de synchronisation)
d'adressage  communications entre 2 processus uniquement : l'un
 exemple : les threads s'exécutent dans le contexte écrit dans le tube, l'autre lit
d'un même processus  Exemple : sh$ ls -l | wc -l
 Communications distantes Création du tube et des processus fils
 la mémoire partagée est physiquement répartie
fork(); sh fork();
 le gestionnaire de mémoire virtuelle permet de exec(); exec();
regrouper les différents morceaux selon un seul
espace d'adressage write() read()
 problème de cohérence mémoire... ls -l wc -l
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 25 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 26

Communication par passage de msg Communication par passage de msg


 Les processus n'ont pas accès à des "variables"  Il faut éviter les écritures concurrentes : write

communes write P2
read/write read/write
 Ils communiquent en s'échangeant des messages P1 P2 P1
 au moins deux primitives : send() et recv() read P3
 des zones de mémoire locales à chaque processus read
permettent l'envoi et la réception des messages  Pour se ramener à des communications point-à-
 l'émetteur/récepteur doit pouvoir désigner le point
récepteur/émetteur distant  --> dissocier le tampon d'émission et de réception
--> avoir autant de tampons de réception que
Problèmes

 d'émetteurs potentiels
 zones d'émission et réception distinctes ?  --> il ne reste plus alors au protocole qu'à s'assurer
nombre d'émetteurs/récepteurs dans une zone ? que deux émissions successives (d'un même émetteur)

n'écrasent pas des données non encore lues (contrôle
 opérations bloquantes/non bloquantes ? de flux)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 27 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 28

Opérations bloquantes/non bloquantes Opérations bloquantes/non bloquantes

 Quand un appel à une primitive send() ou recv()  Plusieurs sémantiques en émission :


doit-il se terminer ?  send() peut rendre la main
 aussitôt (send() non bloquant)
 Plusieurs sémantiques en réception :  quand les données ont été recopiées dans le tampon

 recv() peut rendre la main d'émission local (les données peuvent être modifiées
au niveau de l'application)
 aussitôt (recv() non bloquant)
 quand les données ont été recopiées dans le tampon
 quand les données ont été reçues et recopiées de réception distant (le tampon d'émission local est de
depuis le tampon de réception local (le tampon de nouveau libre)
réception est de nouveau libre)  quand le destinataire a consommé les données (le

tampon de réception sur le destinataire est de


nouveau libre)

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 29 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 30
Opérations bloquantes Opérations non bloquantes

 Le processus se bloque jusqu'à ce que  Intérêt :


l’opération se termine :  le processus peut faire autre chose en attendant que
les données soient émises ou reçues
Application Middleware
 Le processus a tout de même besoin d'être
read() Appel système
informé de la complétion de l'opération (lecture
- Attente de l'arrivée des ou écriture)
données
- Recopie dans le tampon de  Deux possibilités :
l'application  attente active : appels réguliers à la primitive jusqu'à
Retour complétion
 attente passive : le système informe le processus par
un moyen quelconque de la complétion de l'opération
(signaux par exemple)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 31 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 32

Communication par signaux Opérations non bloquantes


 Mécanisme de communications locales inter-
processus (ou depuis le noyau vers un processus)
permettant de notifier un événement Application Middleware
Appel système
 Principe : interruption logicielle quand l'événement read()
WOULDBLOCK Attente des
se produit read()
Appel système
données

 Le processus WOULDBLOCK
Appel système
 indique les signaux qu'il souhaite capter (provoquant read()
Recopie
son interruption)
Retour
 met en place un handler (fonction particulière) qui sera
exécuté quand l'événement se produira Attente active
 Exemple : arrivée de données urgentes sur une
socket
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 33 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 34

Opérations non bloquantes Désignation du destinataire/émetteur

Application Middleware
 Pour faire du passage de messages, il est
Activer SIGIO
nécessaire de désigner l'autre extrémité de la
signal()
Retour Attente des communication
données
 Désignation explicite
handler()
read()
Signal SIGIO
 du ou des processus destinataire(s)/émetteurs
Appel système
 Désignation implicite
Recopie
Retour  recevoir un message de n'importe qui
 émettre un message à n'importe qui (diffusion)
Attente passive
 une phase d'établissement de connexion désigne les
deux entités communicantes

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 35 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 36
Les sockets - adressage Les sockets - adressage

 Deux processus communiquent en émettant et  Le serveur doit utiliser un numéro de port fixe vers
recevant des données via les sockets lequel les requêtes clientes sont dirigées
 Les ports inférieurs à 1024 sont réservés :
 Les sockets sont des portes d'entrées/sorties  "well-known ports"
vers le réseau (la couche transport)  ils permettent d'identifier les serveurs d'applications
 Une socket est identifiée par une adresse de connues
 ils sont attribués par l'IANA
transport qui permet d'identifier les processus de
 Les clients n'ont pas besoin d'utiliser des well-
l'application concernée known ports
 Une adresse de transport = un numéro de port  ils utilisent un port quelconque entre 1024 et 65535 à
(identifie l'application) + une adresse IP condition que le triplet <transport/@IP/port> soit unique
 ils communiquent leur numéro de port au serveur lors de
(identifie le serveur ou l'hôte dans le réseau) la requête (à l'établissement de la connexion TCP ou
dans les datagrammes UDP)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 37 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 38

Les sockets en pratique Rappel - une connexion TCP

Un descripteur de socket (sock_id) n'est qu'un point


 Une connexion = (@IP_src,port_src,@IP_dest,port_dest)
d'entrée vers le noyau Port 5004
@IP client
L'appli écrit Client
TCP send buffer
Processus client ou serveur sock_id=2 IP Segment TCP
Appel système L'appli lit TCP recv buffer dans un data-
Bibliothèque socket (API) write read
gramme IP
Couche socket du noyau socket buffers Contrôle de flux : l'émetteur ne
sature pas le tampon de réception
TCP UDP ... du récepteur
émission/réception d'un segment
TCP, datagramme UDP...
L'appli écrit Flux TCP
- la bibliothèque socket est liée à l'application TCP send buffer
- la couche socket du noyau réalise l'adaptation au protocole de IP
transport utilisé L'appli lit TCP recv buffer
Serveur @IP serveur
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 39 PortGlück
Olivier 80 - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 40

En mode connecté... En mode connecté...


Paramètres en entrée Paramètres en sortie
socket()
Création du socket() type, domaine, protocole sock_id
Attachement d'un numéro
descripteur local socket() bind() de port à la socket
Demande Demande de bind() sock_id, port
d'ouverture de connexion Le serveur autorise NMAX
connect() listen() connexions (le service est
connexion
ouvert !) listen() sock_id, NMAX
Le serveur accepte (ou
Connexion ouverte
accept() attend) une connexion sock_id, @sock_dest
connect()
pendante et créée une
nouvelle socket dédiée au sock_id @sock_src, client_sock_id
write() read() client accept()
Requête
Traitement de la requête read() client_sock_id, @recv_buf, lg read_lg

read() Réponse write()


write() client_sock_id, @send_buf, lg write_lg

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 41 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 42
En mode connecté... En mode connecté...
Au retour  Attention : les émissions/réceptions ne sont pas
d'accept()
File des connexions
synchrones
Processus en attente  read(m) : lecture d'au plus m caractères
client (pendantes) id=xxx id=xxx1 id=xxx2
 write(m) : écriture de m caractères
sock_id=xxx

TCP Créé par TCP


socket buffers listen() N écritures write(m) read(m) N lectures
client1
client2
port=yyy port=80
IP IP write(m) m m m m m
Côté émission
Côté réception
Internet r1 r2 r3 r4 ... rN
r1+r2+r3+r4+…+rN <= N*m
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 43 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 44

En mode non connecté... En mode non connecté...


Paramètres en entrée Paramètres en sortie
socket()
Création du socket() type, domaine, protocole sock_id
Attachement d'un numéro
descripteur local socket() bind() de port à la socket
bind() sock_id, port
Le serveur est en
recv_from() attente d'une sock_id, @recv_buf, lg read_lg, @sock_src
recv_from()
requête cliente
sock_id, @sock_dest,
send_to() write_lg
Envoi de la Traitement de la @send_buf, lg
send_to()
requête requête
Requête
Rappel en mode connecté :
Attente de la Le serveur envoie
recv_from() Réponse send_to() read() client_sock_id, @recv_buf, lg read_lg
réponse la réponse

write() client_sock_id, @send_buf, lg write_lg

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 45 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 46

En mode non connecté... Opérations bloquantes/non bloquantes

 Par défaut, les primitives connect(),


accept(), send_to(), recv_from(),
Processus Processus
client serveur read(), write() sont bloquantes
sock_id=xxx sock_id=zzz  recv() sur un tampon vide attendra l'arrivée des
TCP TCP
données pour rendre la main
socket buffers socket buffers  send() sur un tampon plein attendra que les
données quitte le tampon pour rendre la main
port=yyy port=80  accept() ne rend la main qu'une fois une connexion
IP IP
établie (bloque si pas de connexions pendantes)
 connect() ne rend la main qu'une fois la connexion
cliente établie (sauf si pas entre listen() et
Internet
accept())
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 47 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 48
Opérations bloquantes/non bloquantes Emission bloquante
 Il est possible de paramètrer la socket lors de sa
création pour rendre les opérations non bloquantes Application
Données
 Comportement d'une émission non bloquante Copie
 tout ce qui peut être écrit dans le tampon l'est, les
caractères restants sont abandonnés (la primitive Appel système
retourne le nombre de caractères écrits)
sk_buff
 si aucun caractère ne peut être écrit (tampon plein), Noyau
retourne -1 avec errno=EWOULDBLOCK (l'application Interruption
doit réessayer plus tard)
 Comportement d'une lecture non bloquante Carte réseau
 s'il n'y a rien à lire dans la socket, retourne -1 ... Envoi Retransmission
(l'application doit réessayer plus tard)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 49 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 50

Réception bloquante Emission non-bloquante

Application
Tampon Données Application
Données
Copie

Appel système
MPI Soumission Notification
Noyau sk_buff
Noyau
Interruption

Carte réseau
Carte réseau
Début du message Fin Envoi Retransmission

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 51 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 52

Réception non-bloquante La scrutation de plusieurs sockets

 La primitive select() rend la main quand une


Application
Tampon Données
de ces conditions se réalise :
 l'un des événements attendus sur un descripteur de
l'un des ensembles se réalise : les descripteurs sur
MPI Soumission Attente Notification
lesquels l'opération est possible sont dans un
paramètre de sortie
Noyau
 le temps d'attente maximum s'est écoulé
 le processus a capté un signal (provoque la sortie de
Carte réseau select())
Message

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 53 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 54
Deux approches de conception Principe général
 Un concepteur d’application distribuée peut procéder  Souvent, quand un client envoie une requête (des
selon deux approches : paramètres), il est bloqué jusqu'à la réception
 conception orientée communication : d'une réponse
 définition du protocole d’application (format et syntaxe  Analogie avec un appel de fonction
des messages) inter-opérant entre le client et le serveur  la fonction ou procédure ne rend la main au programme
 conception des composants serveur et client, en
appelant qu'une fois le traitement (calcul) terminé
spécifiant comment ils réagissent aux messages  RPC - Remote Procedure Call
entrants et génèrent les messages sortants permettre à un processus de faire exécuter une fonction
 conception orientée application : par un autre processus se trouvant sur une machine
distante
 construction d’une application conventionnelle, dans un
 se traduit par l'envoi d'un message contenant
environnement mono-machine
l'identification de la fonction et les paramètres
 subdivision de l’application en plusieurs modules qui
 une fois le traitement terminé, un message retourne le
pourront s’exécuter sur différentes machines résultat de laM2fonction à l'appelant
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 55 Olivier Glück - © 2011 ENS - spécialité IF - Réseaux Avancés 56

Le modèle RPC L'interface RPC


Client Serveur
Application Interface RPC
Client Serveur
Procédure RPC/XDR
Application
RPC Client stub Server stub
Retour Exécuter API socket Message RPC
1 Appel
Procédure stub client
Retour
Procédure 14 8 Procédure stub serveur Procédure 7 au format XDR (call)
socket Librairie RPC Librairie RPC
(reply)
2 Assemblage Désassemblage 13 9 Assemblage Désassemblage 6 TCP UDP
Sockets TCP ou UDP
3 SendRequest() ReceiveResponse() 12 10 SendResponse() ReceiveRequest() 5
 Intérêts :
 l'application n'a pas à manipuler directement les sockets
(le transport des données est transparent)
11  l'implémentation des RPC est indépendante de l'OS
Noyau
4 Réseau  Inconvénient :
 l'utilisation des RPC est moins performante que l'utilisation
directe des sockets (couches supplémentaires)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 57 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 58

Restrictions liées aux RPC


 Pas de passage de paramètres par adresse :
impossible de passer des pointeurs (ou High Performance Cluster Computing:
références) Architectures and Systems
 en effet, les espaces d'adressage du client et du
serveur sont différents donc aucun sens de passer
une adresse
 La procédure distante n'a pas accès aux Book Editor: Rajkumar Buyya
variables globales du client, aux périphériques Slides: Hai Jin and Raj Buyya
d'E/S (affichage d'un message d'erreur !)
 Un appel de procédure obéit à fonctionnement
synchrone : une instruction suivant un appel de Internet and Cluster Computing Center
procédure ne peut pas s’exécuter tant que la
procédure appelée n’est pas terminée
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 59
Resource Hungry Applications How to Run Applications Faster ?

 Solving grand challenge applications using computer  There are 3 ways to improve performance:
modeling, simulation and analysis  Work Harder
 Work Smarter
 Get Help
 Computer Analogy
Aerospace  Using faster hardware
Internet &
Life Sciences  Optimized algorithms and techniques used to solve
Ecommerce
computational tasks
 Multiple computers to solve a particular task

Olivier Glück - © 2011


CAD/CAM Digital Biology
M2 ENS - spécialité IF - Réseaux Avancés 61
Military Applications Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 62

Levels of Parallelism Scalable (Parallel) Computer Architectures


Code-Granularity
Code Item  Taxonomy
PVM/MPI Task i-l Task i Task i+1 Large grain  based on how processors, memory & interconnect are laid out,
(task level) resources are managed
Program
 Massively Parallel Processors (MPP)
func1 ( ) func2 ( ) func3 ( )
{ { {
Medium grain
 Symmetric Multiprocessors (SMP)
Threads ....
....
....
....
....
.... (control level)  Cache-Coherent Non-Uniform Memory Access (CC-NUMA)
} } } Function (thread)
 Clusters
 Distributed Systems – Grids/P2P
Fine grain
Compilers
a ( 0 ) =.. a ( 1 )=.. a ( 2 )=..
b ( 0 ) =.. b ( 1 )=.. b ( 2 )=.. (data level)
Loop (Compiler)

Very fine grain


CPU + x Load
(multiple issue)
With hardware
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 63 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 64

Scalable Parallel Computer Architectures Scalable Parallel Computer Architectures

 MPP
 A large parallel processing system with a shared-nothing architecture
 Consist of several hundred nodes with a high-speed interconnection
network/switch
 Each node consists of a main memory & one or more processors
 Runs a separate copy of the OS
 SMP
 2-64 processors today
 Shared-everything architecture
 All processors share all the global resources available
 Single copy of the OS runs on these systems

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 65 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 66
Scalable Parallel Computer Architectures Scalable Parallel Computer Architectures

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 67 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 68

Scalable Parallel Computer Architectures Les supercalculateurs


 CC-NUMA  Assemblage de multiples processeurs dans
a scalable multiprocessor system having a cache-coherent nonuniform

memory access architecture


une grosse machine
 every processor has a global view of all of the memory  Processeurs spécifiques
 Clusters  Conçus pour collaborer avec beaucoup d'autres
a collection of workstations / PCs that are interconnected by a high-speed
Réseau de communication spécifique


network
 work as an integrated collection of resources  Mémoire partagée

have a single system image spanning all its nodes


Peu rentable


 Distributed systems
 considered conventional networks of independent computers  Peu d'exemplaires
 have multiple system images as each node runs its own OS  Très spécifique
 the individual machines could be combinations of MPPs, SMPs, clusters, &
individual computers

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 69 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 70

Les grappes de calcul ou clusters Clusters

 Utilisation de matériel standard


 Processeurs classiques
 Pas cher
 Ajout d'un réseau très haute performance
 Communications assez rapides pour ne pas ralentir le
calcul
 Extensif
 Passage à l'échelle aisé

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 71 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 72
Why PC/WS Clustering Now ? What is Cluster ?
 Individual PCs/workstations are becoming  A cluster is a type of parallel or distributed processing
system, which consists of a collection of interconnected
increasing powerful stand-alone computers cooperatively working together
 Commodity networks bandwidth is increasing as a single, integrated computing resource.
and latency is decreasing  A node
 a single or multiprocessor system with memory, I/O
 PC/Workstation clusters are easier to integrate facilities, & OS
into existing networks  generally 2 or more computers (nodes) connected

 Typical low user utilization of PCs/WSs together


 in a single cabinet, or physically separated &
 Development tools for PCs/WS are more mature connected via a LAN
 PC/WS clusters are a cheap and readily available  appear as a single system to users and applications

 Clusters can be easily grown  provide a cost-effective way to gain features and
benefits
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 73 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 74

Cluster Architecture Shared Memory MIMD

Processor Processor Processor


Parallel Applications A B C
Parallel Applications
Parallel Applications
Sequential Applications
Sequential Applications
Sequential Applications Parallel Programming Environment M M M
E E E
M B M B M B
O U O U O U
Cluster Middleware R S R S R S
Y Y Y
(Single System Image and Availability Infrastructure)

PC/Workstation PC/Workstation PC/Workstation PC/Workstation


Global Memory System
Communications Communications Communications Communications
Software Software Software Software
Comm: Source PE writes data to Global Memory & destination retrieves it
 Easy to build, conventional OS of SISD can be easily be ported
Network Interface Network Interface Network Interface Network Interface
Hardware Hardware Hardware Hardware  Limitation : reliability & expandibility. A memory component or any
processor failure affects the whole system.
 Increase of processors leads to memory contention.
Cluster Interconnection Network/Switch Ex. : Silicon graphics supercomputers....
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 75 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 76

Distributed Memory MIMD


IPC IPC
channel channel
Processor Processor Processor Parallel Programming with Message-
A B C
Passing Interface (MPI) An Introduction
M
E
M
E
M B
M
E
M B
Rajkumar Buyya WW Grid
M B
O U O U O U

Grid Computing and Distributed Systems (GRIDS) Lab.


R S R S R S
Y Y Y

The University of Melbourne


Memory
System A
Memory
System B
Memory
System C Melbourne, Australia
www.gridbus.org
 Communication : IPC (Inter-Process Communication) via High Speed Network.
 Network can be configured to ... Tree, Mesh, Cube, etc.
 Unlike Shared MIMD
 easily/ readily expandable
 Highly reliable (any CPU failure does not affect the whole system)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 77
Message-Passing Programming Paradigm Messages

 Each processor in a message-passing program  Messages are packets of


runs a sub-program data moving between
sub-programs
 written in a conventional sequential language
 The message passing
 all variables are private
system has to be told the
 communicate via special subroutine calls following information
 Sending processor
M M M Memory  Source location
 Data type
P P P Processors  Data length
 Receiving processor(s)
 Destination location
Interconnection Network
 Destination size
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 79 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 80

Messages Point-to-Point Communication


 Access:
 Each sub-program needs to be connected to a  Simplest form of message passing
message passing system  One process sends a message to another
 Addressing:  Several variations on how sending a message
 Messages need to have addresses to be sent to can interact with execution of the sub-program
 Reception:
 It is important that the receiving process is capable of
dealing with the messages it is sent
 A message passing system is similar to:
 Post-office, Phone line, Fax, E-mail, etc
 Message Types:
 Point-to-Point, Collective, Synchronous (telephone) /
Asynchronous (Postal)
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 81 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 82

Point-to-Point variations Collective Communications


 Synchronous Sends
 provide information about the completion of the  Collective communication routines are higher level
message routines involving several processes at a time
 e.g. fax machines  Can be built out of point-to-point communications
 Asynchronous Sends  Barriers
 Only know when the message has left  synchronise processes
 e.g. post cards  Broadcast
 Blocking operations  one-to-many communication
 only return from the call when operation has  Reduction operations
completed
 combine data from several processes to produce a
 Non-blocking operations single (usually) result
 return straight away - can test/wait later for
completion
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 83 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 84
Collective Communications Point-to-Point Communication
 Communication between two processes
 Source process sends message to destination
process
 Communication takes place within a
communicator
 Destination process is identified by its rank in
the communicator
 MPI provides four communication modes
for sending messages
 standard, synchronous, buffered, and ready
 Only one mode for receiving
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 85 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 86

Standard Send Standard Send


 Completes once the message has been sent MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
 Note: it may or may not have been received
buf the address of the data to be sent
 Programs should obey the following rules: count the number of elements of datatype buf contains
 It should not assume the send will complete before datatype the MPI datatype
the receive begins - can lead to deadlock dest rank of destination in communicator comm
 It should not assume the send will complete after tag a marker used to distinguish different message types
the receive begins - can lead to non-determinism comm the communicator shared by sender and receiver
ierror the fortran return value of the send
 processes should be eager readers - they should
guarantee to receive all messages sent to them -
else network overload
 Can be implemented as either a buffered send
or synchronous send
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 87 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 88

Standard/Blocked Send/Receive Non Blocking Message Passing

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 89 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 90
Cluster Design Issues

Réseaux d'interconnexion dans •


Enhanced Performance (performance @ low cost)
Enhanced Availability (failure management)

les grappes de calcul •


Single System Image (look-and-feel of one system)
Size Scalability (physical & application)
• Fast Communication (networks & protocols)

Brice Goglin • Load Balancing (CPU, Net, Memory, Disk)


Brice.Goglin@ens-lyon.org • Security and Encryption (clusters of clusters)
• Distributed Environment (Social issues)
Manageability (admin. And control)
11 février 2005

• Programmability (simple API if required)


• Applicability (cluster-aware and non-aware app.)
Slides disponibles sur http://perso.ens-lyon.fr/brice.goglin/teaching

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 92

Topologie du réseau Réseau de Clos

 Réseau régulier
 Cœur suffisamment dimensionné
 Tous les nœuds peuvent utiliser simultanément la
capacité de leur lien
 Réseau de Clos
 Full bissection bandwidth
 Routage statique
 Les routes sont fixées à l'initialisation

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 93 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 94

Routage par la source Fiabilité et traitement des erreurs

 Routes fixées à l'avance  Très peu d'erreurs


 Stockées dans les cartes d'interface  Peu de congestion
 Route placée en tête des paquets  Cœur suffisamment dimensionné

 Rapide à traiter dans les switchs  Back-Pressure

 Intelligence laissée dans les cartes  Matériel fiable


 Moins de 10
-15
erreurs sur fibre optique
 CRC traités dans les cartes (voire les switchs)
 Reprise sur erreur traitée par la carte

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 95 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 96
La primitive d’écriture distante sur MPC Modèle de fonctionnement

Application

Middleware (MPI, VIA, ...)


Interface Socket
Bibliothèque spécifique
(Bibliothèque standard)

Noyau UDP TCP Initialisation


IP OS-Bypass

Ethernet Pilote spécifique

Carte réseau Firmware

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 97 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 98

API traditionnelle : les Sockets Clefs de la performance des grappes

 Connexions entre nœuds  Utilisation maximale des différents nœuds et de


 Primitives bloquantes leurs processeurs
 read/write(fd, buf, size)  Communication rapide entre les nœuds
 Appels système  Faible latence
 Copie intermédiaire dans la mémoire système  Grande bande passante
 Réduire le temps de blocage à l'émission  Ne pas gaspiller les puissances des processeurs
 Gérer les reprises sur erreur pour traiter les communications
 Gérer les données inattendues en réception  Recouvrir le traitement des communications par
du calcul

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 99 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 100

Les techniques d’optimisation Consommation processeur

 Eviter la traversée d’un grand nombre de couches de  Ne pas monopoliser les processeurs de calcul
communication pour traiter les communications
 Réduire le nombre de copies des données  Eviter les copies
 Réduire le nombre d’appel système en réalisant les  DMA (Direct Memory Access) entre la carte et l'hôte
communications en espace utilisateur  Réduire le coût du protocole
 Eviter l’utilisation d’interruptions pour la signalisation des  Utiliser un processeur dédié au réseau dans la carte
communications d'interface
 Réduire le coût des opérations de traduction d’adresses
virtuelles/physiques
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 101 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 102
Déport de fonctionnalités dans la carte
Recouvrement des communications d'interface

 Les communications prennent du temps  Protocole


 Ne pas bloquer l'application  Encapsulation
Scatter/Gather
Traiter les communications pendant que


 Reprise sur erreur
l'application continue le calcul
 Transfert de données
 Traiter les communications dans la carte d'interface
 Traduction d'adresses virtuelles en adresses physiques
 Utiliser des primitives non-bloquantes
 DMA initiés par la carte

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 103 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 104

Techniques de communications entre


noeuds Une stratégie « zéro-copie »

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 105 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 106

Les appels système OS-Bypass

 Eviter de traverser toutes les couches système


 Réduction du chemin critique
 Appel système couteux
 Réduction du protocole
 Protocole implémenté dans la bibliothèque et la carte
 Pas d'intervention du système d'exploitation
 Aucune aide pour manipuler les adresses mémoire
 Pas de synchronisation naturelle

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 107 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 108
Les interruptions Scrutation et interruption

 Interruption couteuse
 De l'ordre de 10 µs
 Inutilisable pour obtenir une faible latence
 Scrutation de la carte
 Attente active d'événements dans la carte
 Programmed I/O
 Utilisation d'interruptions par la suite
 Après un certain temps de scrutation

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 109 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 110

Les traductions d’adresses Enregistrement mémoire

 L'application passe des zones mémoires à la


carte
 L'application manipule des adresses virtuelles
 La carte manipule des adresses physiques
 Pour les DMA

 Nécessité de traduire sans l'aide du système


d'exploitation
 Enregistrement à l'avance des traductions dans la
carte
 Duplication de la MMU de l'hôte dans la carte

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 111 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 112

Memory registration/deregistration Memory registration/deregistration


Memory registration: Memory deregistration:  Memory registration can be very expensive.
 Trap into OS kernel.  Trap into OS kernel.  Hardware folks did not think that it would be used in the critical path:
 Lock access to OS page table.  Lock access to OS page table. explicit memory registration in low-level hardware-driven hardware API
such as VIA and Infiniband.
 Loop for every page:  Loop for every page:
 No explicit memory registration in higher level communication libraries
 Walk the OS page table to find  Walk the OS page table to find such as MPI or Sockets.
the virtual page. the virtual page.
 Eventually swap the virtual  Unpin virtual page in the OS  Various methods to attempt to dodge the bullet:
page in. page table (marked  Not do zero-copy: make sense for small messages where memory copy
 Increment the page reference swappable). is cheaper.
count.  Decrement the page reference  trashes cache, uses CPU.

 Pin virtual page in the OS page count.  Implement a registration cache: lazy deregistration with garbage
table (marked not swappable).  Eventually clear the related collector.
 Get the IO address of the entry in the IOMMU.  Need to hijack malloc to catch when memory pages are released to

related physical memory page  Eventually clear the related the OS.
(may require to use the entry in any cache on the NIC.  Maintenance nightmare.
IOMMU).  Unlock access to OS page  Poor efficiency on complex code: 9% cache hit on Linpack.
 Unlock access to OS page table.  Do not register memory: maintain a copy of the OS page table in the
table.  Return to user space. NIC.
 Return to user space.  No OS support: requires patching the OS, portability issues.

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 113 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 114
Message Passing et RDMA Message Passing vs. RDMA

 MPI basé sur Rendez-vous  Hardware folks like simple semantics like PUT or GET.
Called RDMA by the marketing department.
 Notification des deux côtés 

 Software guys use two-sided interfaces such as MPI or


 Remote Direct Memory Access Socket.
 Accès à la mémoire d'un autre nœud  Two-sided interfaces are easier to manipulate for large, complex
code.
 Notification uniquement pour l'initiateur  MPI is the de facto programming standard in HPC.
 Le nœud distant n'est pas informé
 Mapping MPI on top of RDMA is like:
 Difficile d'implanter MPI sur RDMA  Train an AI to be a shrink.
Using HPF to generate non-trivial parallel code.
Passage à l'échelle très difficile : scrutation sur les


 Running HPC codes on a set of loosely coupled, geographically
tampons de réception widely distributed machines.

It sounds easy but it is a pain to implement and it performs poorly.


Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 115 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 116

Message Passing over RDMA


 History repeats itself: Memory Channel, Giganet (VIA),
SCI, IB.
How to implement a matching semantic on top of a one-

sided API ? Exemples de réseaux rapides de
 Matching as to be done somewhere sometime by someone. grappes
 Matching can be done after sending data:
 Eager mode, copy on the receive side.
 Where do you PUT the eager message in the first place ?
 Shared queue with tokens ? Multiple windows ? Polling or
blocking ?
 Matching can be done before sending data:
 Rendez-vous with small packets containing matching information.
 Matching done by the host whenever the rendez-vous happen.
 If the host is not available, either wait or interrupt it.

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 117

Prominent Components of Cluster Computers Prominent Components of Cluster Computers

 High Performance Networks/Switches  Fast Communication Protocols and


Ethernet (10Mbps),
Services (User Level Communication):

 Fast Ethernet (100Mbps),


 Gigabit Ethernet (1Gbps)  Active Messages (Berkeley)
 ATM (Asynchronous Transfer Mode)  Fast Messages (Illinois)
 SCI (Scalable Coherent Interface)  U-net (Cornell)
 Myrinet
 QsNet (Quadrics Supercomputing World)
 XTP (Virginia)
 Digital Memory Channel  Virtual Interface Architecture (VIA)
 FDDI (fiber distributed data interface)  SISCI (SCI), GM et MX (Myrinet), Verbs
 InfiniBand (Infiniband), ElanLib (QSNet), …
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 119 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 120
Scalable Coherent Interface (SCI) Scalable Coherent Interface (SCI)
 Créé par Dolphins en 1992  Latence et débit au niveau SISCI
 Pont entre l'hôte et le réseau pour créer une  340 Mo/s
mémoire globale  Latence RDMA : 1.4 µs
 Topologie en anneaux ou tores 3D  Latence mémoire partagée : 3.8 µs
 Partage de bande passante  Pas de processeur dédié sur la carte d'interface
 Peu scalable  Grande utilisation du processeur de l'hôte
 Communication par lecture ou écriture en  0-copie, mais pas OS-bypass
mémoire physique distante  Verrouillage des pages en mémoire
 Au niveau Software Interface for SCI :  Table des correspondances virtuelles/physiques
 RDMA dans la carte
 Mémoire partagée (projection dans la mémoire locale  Possibilité de déclencher une interruption sur le
du processus des segments de mémoire distants)
noeud distant
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 121 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 122

Myrinet Myrinet

 Myricom, leader du marché, existe depuis 1994  Topologie en clos basé sur gros switchs
 Conçu pour le Message Passing  Full bissection bandwidth
 Cartes et switchs facilement programmables  Clusters de plus de 2000 nœuds (MareNostrum - 2282
noeuds au Barcelone Supercomputing Center)
 Processeur RISC à 333 MHz (LANai) + 2 Mo de SRAM
+ moteur DMA embarqués sur la carte  Routage dispersif par la source
 Beaucoup d'interfaces logicielles différentes  Plusieurs routes par destination
 Utilise surtout Linux  Répartition du trafic pour homogénéiser la charge
dans le réseau
 2*250 Mo/s et 2,5 µs
 Vérification des erreurs et contrôle de flux
 Environ $1000 par nœud réalisés par le matériel
 Port Ethernet sur les derniers switch
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 123 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 124

Myrinet Myrinet

 Enregistrement mémoire pour 0-copie


 Pages verrouillées
 Cache de traduction d'adresse dans la carte
 Initialement exposé à l'application
 Beaucoup trop d'inconvénient

 Désormais utilisé en interne si nécessaire


 Message Passing et RDMA logiciels dans la NIC
 Adapté aux applications parallèles
 Une nouvelle interface logicielle (MX) très proche
de MPI + Socket MX

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 125 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 126
Myrinet Quadrics QsNet
Switch 256 ports extensible
 Matériel très performant et très cher
 900 Mo/s et 2 µs
 Environ $2000 par nœud
 Topologie en clos basé sur des petits switchs
(jusqu’à 64 ports)
 Fonctionnalités réseau dans le matériel
 Broadcast/Multicast
 Spécifications du matériel non ouvertes

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 127 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 128

Quadrics QsNet Infiniband

 MMU dupliquée sur la carte  Norme récente définie par de nombreux


 Modification du système d'exploitation pour la maintenir constructeurs
à jour  Devait initialement fournir un standard de bus
 0-copie, OS-bypass sans enregistrement mémoire I/O, réseau, stockage, ...
 Interface bas niveau basée sur RDMA (ElanLib)  Peu à peu délaissé par les grands constructeurs
avec notification distante
Cible désormais uniquement le réseau hautes


 Interface de Message Passing au dessus (TPORTS) performances
 Communications et stockage

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 129 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 130

Infiniband Et Ethernet dans tout ça ?

 Protocole bas-niveau proche de IP  10G Ethernet arrive


 Interopérable
 Approche 10 µs de latence
 Routage dans les switchs
 Bande passante énorme annoncée  Déport de TCP/IP dans la carte
 4x = 1 Go/s, 12x arrive, 30x annoncé  Utilisation du processeur de l'hôte reste trop
 Latence 5 µs grande
 Entièrement basé sur RDMA  Difficile de faire des gros switchs
 Pas conçu pour les applications de type MPI (pas
de notification sur le noeud distant)
 VERBS : interface logicielle proche de VIA

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 131 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 132
Récapitulatif Récapitulatif

Recouvrem
Interconne Débit Latence Support API bas- ent
Coût Topologie Interconnect Interruptions Utilisation CPU
ct (Mo/s) (µs) MPI niveau calcul/com
munication

Ethernet 100+100 50 Faible Variable Oui Ethernet Socket Oui Oui Grande (copie)

Très Oui (4.6µs, RDMA + Faible (DMA)


Quadrics 900+900 2 Clos Quadrics Non Partiel
élevé 308MB/s) Notification Overhead MPI 3.3 µs
Clos ou Oui (6.8µs, Faible (DMA)
Infiniband 800+800 5 Élevé Infiniband RDMA Non/Oui Non
autre 841MB/s) Overhead MPI 1.7 µs
Anneau ou
SCI 340 partagés 2 Moyen Oui SCI RDMA Oui Non Grande (copie PIO)
Tore
Oui (6.7µs, Message Faible (DMA)
Myrinet/GM 500+500 3 Moyen Clos Myrinet/GM Non Non
235MB/s) Passing Overhead MPI 0.8 µs

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 133 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 134

Récapitulatif Evolutions réseaux rapides


Evolution pourcentage de présence technologies réseau sur les machines du
Top500
Cache
Enregistrem Patch de
Interconnect Zéro-copie d’enregistre
ent mémoire l’OS
ment

Ethernet Non Non Non Non

Oui sauf petits


Quadrics Non Non Oui
messages
Oui sauf petits
Infiniband Oui Oui Non ?
messages

SCI Non Oui Oui Non

Oui sauf petits


Myrinet/GM Oui Oui Non
messages

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 135 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 136

Optimisations de la bibliothèque de Contexte et hypothèses


communication MPI pour machines
parallèles de type « grappe de PCs »  Machines parallèles de type grappe de PCs sous
UNIX
sur une primitive d’écriture distante
 Applications MPI en mode « batch »
 Réseau de communication : primitive d’écriture
distante
 le réseau est fiable
Olivier Glück  le contrôleur réseau utilise des accès DMA en lecture et
UPMC/LIP6/ASIM en écriture pour accéder à la mémoire du nœud hôte
 le contrôleur réseau ne peut transférer que des zones
contiguës en mémoire physique
 le nœud émetteur doit savoir à l’avance où déposer les
Olivier.Gluck@lip6.fr données sur le nœud récepteur
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 138
Objectifs MPICH : une architecture en couches

 Fournir l’environnement MPI : Opérations collectives

Opérations point à point


 machines parallèles de type « grappe
de PCs »

 primitive d’écriture distante

 Réduire le chemin critique logiciel

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 139 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 140

L’API RDMA L’API RDMA

RDMA : Remote Direct Memory Access  L’écriture distante :


RDMA_SEND(nsrc, ndst, plad, prad, len, ctrl, sid, rid, ns, nr)
API générique d’écriture en mémoire distante 

 La notification :
RDMA_SENT_NOTIFY(ctrl, sid)
 Objectifs : 

 définir la brique de base de notre implémentation de  RDMA_RECV_NOTIFY(nsrc, ctrl, rid)


MPI  La signalisation par scrutation (optionnelle) :
 masquer les particularités des réseaux fournissant une  RDMA_NET_LOOKUP(blocking)
primitive d’écriture distante
 Format des messages :
 Enjeu :
 faire en sorte que notre travail puisse être exploitable
sur d’autres plate-formes matérielles
paramètres supplémentaires à véhiculer
de l’émetteur vers le récepteur
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 141 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 142

Les problèmes à résoudre Les émissions/réceptions simultanées


 Les problèmes liés à la primitive d’écriture  Pourquoi : pouvoir traiter plusieurs émissions/réceptions
simultanément -> besoin d’identifier une communication
distante :
 le dépôt direct en mémoire : l’émetteur doit connaître
les adresses physiques des tampons distants
 l’utilisation d’adresses physiques alors que l’application
manipule des adresses virtuelles
 Les services à fournir à MPICH :
 transmission des messages CTRL/DATA
 signalisation des événements réseau
 mécanisme de contrôle de flux
 fixer le seuil optimal entre les messages CTRL/DATA
Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 143 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 144
Les messages CTRL Les messages DATA
Transfert d’informations de contrôle ou de données

Transfert des données de l’application en mode

de taille limitée
« zéro-copie »
 Utilisation de tampons intermédiaires contigus en
 Utilisation d’un protocole de rendez-vous entre
mémoire physique et alloués au démarrage de
l’émetteur et le récepteur
l’application
-> traduction d’adresses sur l’émetteur et le récepteur,
-> pas de traduction d’adresses, adresse du tampon
le message RSP contient la description en mémoire
distant connue sur l’émetteur, recopie systématique,
physique du tampon de réception
contrôle de flux

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 145 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 146

Le format des messages CTRL Le mode standard dans MPI

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 147 Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 148

Liens entre MPI et l’API RDMA

Olivier Glück - © 2011 M2 ENS - spécialité IF - Réseaux Avancés 149