Documente Academic
Documente Profesional
Documente Cultură
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
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)
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
•
Enhanced Performance (performance @ low cost)
Enhanced Availability (failure management)
•
Single System Image (look-and-feel of one system)
Size Scalability (physical & application)
• Fast Communication (networks & protocols)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
La notification :
RDMA_SENT_NOTIFY(ctrl, sid)
Objectifs :
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
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