Supports de communication hautes...
Transcript of Supports de communication hautes...
Généralités Supports de communication classiques Supports de communication de bas niveau
Supports de communication hautes performancesENSEIRB – Option PRCD
Olivier AUMAGE
INRIA
Laboratoire Bordelais de Recherche en InformatiqueDomaine Universitaire
351, cours de la Libération33405 Talence Cedex
1er semestre 2005–2006
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Sommaire
1 Généralités
2 Supports de communication classiques
3 Supports de communication de bas niveau
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Le calcul hautes performances distribué
Introduction
Présentation du domaine
Objectifs
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Besoins applicatifs en puissance de calcul
Trois types de problèmesProblèmes faciles
Pas besoin de puissance« peu d’intérêt »
Problèmes difficiles (inaccessibles)Besoin de trop de puissance« peu d’intérêt »
Problèmes à difficulté variablePlus de puissances et/ou temps de calcul= meilleur résultatbeaucoup d’intérêt (économique)
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Obtenir plus de puissance
Deux solutions
Attendre pour acheter une machine de génération suivanteAssocier plusieurs machines de la génération actuelle
ParallélismeTemps vs Espace
Schéma courant en informatique
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Évolution de la demande de puissance
Évolution quantitative
Croissance soutenue
Évolution qualitative
Profond bouleversement dans les années 1990Prise en compte de nouveaux critères économiques
Coûts d’acquisition et de déploiementFiabilité, évolutivité, perennité
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Conséquences
Matériel
Solutions architecturalement simplesGrappes
Un ensemble de machines « standard »Un commutateurQuelques câbles réseau
Grilles
Logiciel
Concentre l’essentiel des travaux du domaine
Difficultés de la programmation parallèle et distribuéeContraintes
EfficacitéPortabilité
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Efficacité
Deux facteurs essentiels
Développement algorithmiqueQualité de l’infrastructure de communication
LatenceRéactivitéDébit
Caractéristiques pondérée suivant la nature des applications
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Portabilité
Deux aspectsPortabilité par rapport à la plateforme
ProcesseurOS
Portabilité par rapport au matériel de communication
Un troisième aspect transversal, plus spécifique au domaine
Portabilité des performances
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Portabilité
Solution : développement en couchesApplication
Code utilisateurEnvironnement de programmation de haut niveau
Environnement de travail lié au contexte de l’utilisateurExemples : NWChem, Pastix, ...
Environnement de programmation de bas niveau/support decommunication de haut niveau
Modèle de programmation distribuéeExemples : Global Arrays, PVM, MPI, Ibis, ...
Support de communication génériqueAbstraction du matérielOptimisation des communicationsExemples : ARMCI, CCS, TEG, Madeleine, NetIbis
Support de communication de bas niveauInterfaçage avec le matérielCode généralement non portableExemples : sockets (TCP, UDP, SCTP), BIP, GM, MX, SiSCI, libElan
RéseauMatériel : Ethernet, Myrinet, SCI, QSNet, Infiniband
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Modèles de programmation
Trois voiesMémoire virtuellement partagée (DSM)
Abstraction de l’architecture distribuéeSimulation d’un processus unique avec partage de donnéesExtension de la notion d’espace mémoireAction au niveau des donnéesExemples : ...
Invocation de servicesAbstraction partielle de l’architecture distribuéeSimulation d’un processus unique sans partage de donnéesExtension de la notion d’appel de fonctionAction au niveau du contrôleExemples : Sun RPC, Corba, Java RMI, ...
Échange de messagesPas d’abstractionInteractions explicitesExemples : PVM, MPI, couches basses, ...
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Échange de messages
Variantes
Collection/Dissémination
Construction/extraction incrémentale
Données typées
Types utilisateurs, données typées complexes
Messages actifs
Communications unilatérales
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Matériel réseau
Caractéristiques communesRéseaux commutés en étoile
SCI : anneaux commutésFaible latence
Ordre de grandeur de la microsecondeHaut débit
1 à 10 Gb/s
Caractéristiques communesMyrinet (Myricom) :
Processeur embarqué : Lanai-2XP RISC, 333MHz (F cards)QSnet (Quadrics) :
Processeur et MMU embarqués : Elan 4
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Sommaire
1 Généralités
2 Supports de communication classiques
3 Supports de communication de bas niveau
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Sockets et protocoles « Internet »
Introduction
Interface Sockets
UDP, TCP, SCTP
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
UDP
IP
TCP
LiaisonEthernet, wifi, ...
Applications
...
Http, Ftp NFS...
UDP
User Datagram Protocol, RFC 768,août 1980
GénéralitésDatagramme
Non connecté
Non fiable (pertes, duplication)
Non séquencé
Pas de contrôle de flux
Utilisation
NFS
TFTP
...
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
UDP
Discussion
Relativement léger
Peu de valeur ajoutée
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
TCP
IP
LiaisonEthernet, wifi, ...
Applications
...
Http, Ftp NFS...
UDPTCP
Transport Control Protocol,RFC 793, septembre 1981
GénéralitésFlux (stream)
Connecté
Fiable (pas de pertes, pas deduplication)
Séquencé
Flux contrôlé
Multiplexé
Utilisation
HTTP
FTP
Courrier électronique
SSH
...
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
TCP
DiscussionLourd pour une utilisation sur réseau rapide
Considérations sur la fiabilité
Importante valeur ajoutée
Intéressant (indispensable) pour des interconnexions longues distancessur des plateformes de type grille
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
SCTP
IP
LiaisonEthernet, wifi, ...
Applications
...
NFS...
UDPSCTP
Multimed
Stream Control Transport Protocol,RFC 2960, octobre 2000
GénéralitésFlux (stream) ou paquets
Connecté
Fiable (pas de pertes, pas deduplication)
Séquencé
Flux contrôlé
Multiplexé
Multi-flots
Multi-domiciliation
Multi-association (mais unicast)
UtilisationTéléphonie
Multimédia
Trafics TCP, UDP
...Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
SCTP
Discussion
Similaire à TCP
Performance vraisemblablement moins bonnes que TCP (usagesdifférents)Utilisation en contexte de grille ?
Pare-feux
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Supports de communication classiques
Discussion globale
Fonctionnement en espace noyau
Appels systèmes
Recopies de changement d’espace
Recopies protocolaires
Interactions avec le trafic administratif
Ordres de grandeur...
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Sommaire
1 Généralités
2 Supports de communication classiques
3 Supports de communication de bas niveau
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Supports de communication de bas niveau
Introduction
Supports de communication sur mesures
BIP, LFC, GM, MX, SiSCI, libElan, VIA, ...
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Caractéristiques communes
DiffusionManufacturier de matériel de communication
DolphinicsMyricomQuadrics...
Organismes de recherchesBIP, LFC
Portabilité réduite
Dédiées à un matériel spécifique
Très efficaces
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Efficacité
Principe
Communications directes entre l’espace utilisateur et le matériel
Contournement du système d’exploitation
Protocoles simplifiés
Fonctionnalités relativement réduites
Conséquences
Fonctionnement multi-utilisateur, multiplexageDétection de message entrants
Scrutation vs. interruptionsEnvironnement multithreadé
Gestion de la mémoire, sécurité
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Gestion de la mémoire
Principe
Adressage virtuel vs adressage physique
Notion de DMA
Nécessité fixer la projection adresses virtuelles→ adresses physiqued’un bloc en cours de transfert
Notion d’enregistrement
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Gestion de la mémoire
Enregistrement dynamiqueFlexibilité
Pas de copieCoût fixe élevé
Pas bon pour la latenceCoût à l’octet faible
Bon pour le débitAmélioration possible par une technique de cache
Difficultés
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Gestion de la mémoire
Enregistrement statiqueEmpreinte potentiellement plus faible
Nécessité d’une copieCoût fixe faible
Bon pour la latenceCoût à l’octet élevé
Pas bon pour le débit
Amélioration possible par une technique de pipeline
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Gestion de la mémoire
Solution
Fonctionnement hybrideSélection de technique en fonction de la taille des données à envoyer
Travail à la charge de la couche supérieure
Cas de QSNet
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
Gestion de la mémoire
Conséquences sur le schéma de communicationCommunications bi-latérales
Schéma eagerSchéma Rendez-vous
Communications uni-latéralesNotificationsÉcritures distantes vs lectures distantes
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
GMGlenn’s Messages
IntroductionRéseau MYRINET
Société Myricom, 1994Cartes construites autour d’un processeur embarqué LANaiNotion de firmware, intérêt
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
GM
Caractéristiques
Échange de message classique
Émission avec callback
Fonctionnement par événement, pompe à événementsPages de mémoire virtuelle verrouillées (éviter le swap pendant unDMA)
Gestion de la mémoireSélection de méthode d’enregistrement
Ports: multiplexage au niveau processusPas de multiplexage à grain fin
Mais deux niveaux de prioritéPas de réception sélective
Conséquences pour la réception de messages en contexte restreintmessage actifsscrutation de données en environnement multithreadé par mécanisme de type«marcel_poll»
Prépost de tamponContrôle de flux
Olivier AUMAGE Supports de communication hautes performances
Généralités Supports de communication classiques Supports de communication de bas niveau
GM
Résumé de l’API
gm_init/gm_finalize
gm_open/gm_close
gm_register_memory/gm_deregister_memory
gm_dma_alloc/gm_dma_free
gm_send_with_callback
gm_provide_receive_buffer
gm_receive
Olivier AUMAGE Supports de communication hautes performances