66
État des lieux Supports de communication de bas niveau Supports de communication hautes performances ENSEIRB – Option PRCD Olivier AUMAGE I NRIA Laboratoire Bordelais de Recherche en Informatique Domaine Universitaire 351, cours de la Libération 33405 Talence Cedex 1er semestre 2006–2007 Olivier AUMAGE Supports de communication hautes performances

Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux 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 2006–2007

Olivier AUMAGE Supports de communication hautes performances

Page 2: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Sommaire

1 État des lieux

2 Supports de communication de bas niveau

Olivier AUMAGE Supports de communication hautes performances

Page 3: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Supports de communication classiques

Communications sous UNIXInterface

SocketsProtocoles

TCPUDPAutres (SCTP, etc.)

Olivier AUMAGE Supports de communication hautes performances

Page 4: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Caractéristiques des supports classiques

Mise en œuvre

Implémentation noyau

Appels systèmePile logicielle importante

Couche TransportCouche RéseauRoutageFragmentationManipulations

Filtrage, translation (ex. NetFilter/IPTables)"Priorisation" (Q.o.S.)

Sommes de contrôleRecopies en émission et en réception

TCPLatence importante : 50–100 µsDifficulté de montée en débit (ex 760 Mbit/s sur notre réseau GigaEthernet)

UDPNon fiabilité pénalisantePas de contrôle de flux

Olivier AUMAGE Supports de communication hautes performances

Page 5: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Exemple : Linux

Organisation des sourcesarch/

i386/...

drivers/net/...

fs/

include/

init/

ipc/

kernel/

mm/net/

ethernet/ipv4/ipv6/netfilter/sunrpc/unix/...

Olivier AUMAGE Supports de communication hautes performances

Page 6: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Pile AF_UNIX

Sockets locales

net/unix/

Essentiel du code dans af_unix.c

Très concisTypes supportés

streamdatagramseqpacket

Olivier AUMAGE Supports de communication hautes performances

Page 7: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Pile AF_INET

IPnet/ipv4/

af_inet.c

Fonctions de baseÉmissionRéception

Fonctionnalités complémentaires IPRoutage, Forwarding Information BaseFragmentationTunnels

IP/IPGRE

CompressionARP

ProtocolesICMPIGMPTCPUDP

Olivier AUMAGE Supports de communication hautes performances

Page 8: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Pile AF_INET

UDP

Émission

Réception

Code relativement simple

Olivier AUMAGE Supports de communication hautes performances

Page 9: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Pile AF_INET

TCPCode d’interface entre TCP et IP

tcp_ipv4.c

Émission

Réception

Contrôle de congestion

Olivier AUMAGE Supports de communication hautes performances

Page 10: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Caractéristiques générales

RôleComparaison avec autres types de périphériques

Interface de programmationMode opératoire

Olivier AUMAGE Supports de communication hautes performances

Page 11: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Structure de données

linux/netdevice.h

NommageInformations d’entrée/sortie

Zone de mémoire partagéeBloc d’entrées/sortiesNuméro d’IRQ(canal DMA)

État

Chaînage

Olivier AUMAGE Supports de communication hautes performances

Page 12: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Commandes du périphérique

Activation/désactivation

Emission

Scrutation

Construction d’entête matériel

Re-configuration

Gestion du cache ARP

Résolutions de blocages de la carte

Décodage d’entête

Prise en charge spécifique d’ETHERNET

Commandes de la file d’émission

Ordonnancement

Activation

Désactivation

Réveil

Olivier AUMAGE Supports de communication hautes performances

Page 13: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Émission

hard_start_xmit

Argumentsun skbun netdevice

OperationsSauvegarde d’un pointeur sur le skb pour référence ultérieureSauvegarde de l’heure d’émission (pour échéance)Mise en place du transfert

Synchrone (PIO)Asynchrone (DMA)

Olivier AUMAGE Supports de communication hautes performances

Page 14: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Émission – exemple

Boucle locale loopback.c

loopback_xmit

Olivier AUMAGE Supports de communication hautes performances

Page 15: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Émission – exemple

Pilote 3c59x.c (cartes ETHERNET 3COM)vortex_start_xmit

Paquet par paquetDMA ou PIO

boomerang_start_xmitDMAAnneau de descripteursPrise en charge matérielle

Somme de contrôleGather (collection)

vortex_interrupt/boomerang_interruptFin de transfert DMAPlace disponible pour émission d’un nouveau paquetErreur

vortex_tx_timeoutGestion d’interruption en retard (blocage ?) ou manquéeRetransmission, ou perte du paquet

Olivier AUMAGE Supports de communication hautes performances

Page 16: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

RéceptionAsynchrone

Interruption“Synchrone” (optionnel)

Scrutation (polling) expliciteOpérations

Allocation d’un skbRéception des données dans le tamponTransmission du tampon à la pile réseau (netif_rx)

Olivier AUMAGE Supports de communication hautes performances

Page 17: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Réception – exemple

Boucle locale loopback.c

Olivier AUMAGE Supports de communication hautes performances

Page 18: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Réception – exemple

Pilote 3c59x.cvortex_interrupt/boomerang_interrupt

Traitant d’interruptionÉvénement asynchroneAppel direct pour scrutationÉmissionErreursAiguillage vers fonction de réception

vortex_rxOpérations de réception

PIO“DMA”

Mise à jour des statsGestion d’erreurs

boomerang_rxAnneau de descripteurs de réceptionDMASomme de contrôle matériellePré-allocation d’un nouveau skb pour l’anneau de réceptionCompromis consommation mémoire/copie

Olivier AUMAGE Supports de communication hautes performances

Page 19: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

InitialisationOpérations

Détection de carte (probe)Initialisation du circuitDétection des caractéristiques

Adresse de baseIRQType de mediumModèle de carte

Fonctionnalités étenduesGather/ScatterSomme de contrôle matérielleTCP segmentation offload (TSO)Media Independent Interface (MII)

Allocations de ressourcesDéclaration des commandes supportéesActivation retardée jusqu’au up

Olivier AUMAGE Supports de communication hautes performances

Page 20: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Initialisation – exemple

Pilote 3c59x.cvortex_init_one

Initialisation du périphérique PCIvortex_probe1

Initialisation commune EISA/PCIDétection des caractéristiques

Éléments de baseSupport full-duplexSupport bus-masterSupport de contrôle de fluxSomme de contrôleLecture de la configuration en EEPROMEtc.

Allocation des anneaux

Olivier AUMAGE Supports de communication hautes performances

Page 21: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Initialisation – exemple, suite

Pilote 3c59x.cvortex_open

Requête d’enregistrement du traitant IRQ (IRQ partagée)Boomerang uniquement

Préallocation des tampons de l’anneau de réception

appel a vortex_up

vortex_upEssentiel du travail d’activation« Seconde moitiée de la phase d’initialisation »Configuration de la carte avec les options actuellesRedémarrage du circuit de la carteActivation de la file d’émission

Olivier AUMAGE Supports de communication hautes performances

Page 22: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Périphériques réseau

Autres aspects

Pilote 3c59x.cvortex_timer

Traitant asynchrone1 par minute

Contrôle du mediumDétection de panneContrôle de fluxReconfiguration

vortex_downDésactivation

vortex_closeLibération

Olivier AUMAGE Supports de communication hautes performances

Page 23: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Supports de communication classiques – calcul

Communications pour le calculInterface

PVMMPI

ProtocolesProtocoles classiquesÉvolution (pour MPI)

Olivier AUMAGE Supports de communication hautes performances

Page 24: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Réseaux hautes performances

Caractéristiques

Origine : réseaux dédiés des supercalculateurs

DémocratisationTechnologies spécifiques

Myricom : Myrinet, Myri-10GQuadrics : QsNET, QsNET IIDolphinics : SCIMultiples matériels Infiniband

Processeur embarquéFaible latence : 1–5 µs

2.25 µs avex MX/Myri-10G sur OpteronHaut débit

10300 Mbit/s avex MX/Myri-10G sur OpteronAPI dédiée

Interfaces de communication de bas niveau

Olivier AUMAGE Supports de communication hautes performances

Page 25: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Sommaire

1 État des lieux

2 Supports de communication de bas niveau

Olivier AUMAGE Supports de communication hautes performances

Page 26: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux 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, IB/Verbs...

Très efficace

Difficilement portableModèle

Généralement échange de messageMémoire virtuellement partagée (SiSCI)Écritures/lectures distantes (communications unilatérales, put/get)

Olivier AUMAGE Supports de communication hautes performances

Page 27: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Caractéristiques communes

Chemin critique réduitCommunications en mode utilisateur

Initialisation en mode noyau, par appel systèmeFonctionnement limité

Capacités de multiplexageFiabilitéContrôle de flux

Faible portabilitéDe l’interface bas niveau elle-mêmeDes applications utilisatrices au-dessus de ces interfaces

TechnicitéProximité du matériel (faible abstraction)

Olivier AUMAGE Supports de communication hautes performances

Page 28: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux 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

Page 29: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux 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

Page 30: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux 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

Page 31: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

MXMyrinet Express

IntroductionRéseau MYRINET

Société Myricom, 1994Cartes construites autour d’un processeur embarqué LANaiNotion de firmware, intérêt

Appelé à remplacer GM

Points forts

MX v1.0 depuis quelques semaines

Latence réduite

Meilleure conception de l’API

Beaucoup plus facile à programmer

Destiné à faciliter le développement d’environnements tels que MPI

Olivier AUMAGE Supports de communication hautes performances

Page 32: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

MX

Virtualisation

Notion de endpointVirtualisation d’une interfaceMultiplexage de granularité processus

Multi-utilisateur

Possibilité d’avoir plusieurs endpoints ouverts vers une même carted’interfacePoint de connexion

Un endpoint peut être connecté à plusieurs endpoints distantPas de multicast pour l’instant

Notion d’adresseURL de connexion au endpoint

APImx_open_endpointmx_close_endpointmx_connect

Ordre de grandeur, MADELEINE/MX4.2 us240 Mbit/s

Olivier AUMAGE Supports de communication hautes performances

Page 33: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

MX

Modèle

Échange de message classiqueCollection/dissémination

Si la taille totale ne dépasse pas 32 KoNotion de liste de segments

Fonctions non-bloquantesNotion de requête

InitiationCompletion

mx_isend, mx_irecvmx_test

Fonctions bloquantesmx_wait

Olivier AUMAGE Supports de communication hautes performances

Page 34: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

MX

Multiplexage à grain fin

Notion de mise en correspondance (matching)

Étiquetage sur 64 bit

Réception sélective

Réception permissive par masque sur une partie de l’étiquettePrincipe

Une étiquette E_send en émissionUne étiquette E_recv et un masque M_recv en réceptionLe ET logique de E_send et M_recv doit être égal à E_recv pour qu’unpaquet soit sélectionné pour réception

UtilisationSélection de sourceSélection de flot

Olivier AUMAGE Supports de communication hautes performances

Page 35: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

MX

Messages inattendus

Gestion transparenteMessages courts

Fonctionnement eagerCopie dans un tampon interneCopie supplémentaire lorsque le message est finalement demandé

Messages longsFonctionnement rendez-vousRéception et conservation de l’entêteAutorisation de transmission lorsque le message est finalement demandépar l’application

Olivier AUMAGE Supports de communication hautes performances

Page 36: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Introduction

Réseau SCI

Origine: programme IEEE FUTUREBUS (1987), destiné à remplacer lesbus des ordinateurs

Standardisation: 1992, IEEE

Constructeur: Dolphinics.com. 1992

Début des travaux en 1988

Topologie en anneau ou switch

Mémoire virtuellement partagée de niveau matérielOrdre de grandeur, MADELEINE/SISCI

2.8 us257 Mbit/s

Olivier AUMAGE Supports de communication hautes performances

Page 37: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Paradigme

Fonctionnement de base

Notion de segment

Notion de projectionOpérations de communication

ÉcritureLecture

Local vs. distantCas de memcpy en écritureCas de memcpy en lecture

Olivier AUMAGE Supports de communication hautes performances

Page 38: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

API

SCIOpen

SCICreateSegment

SCIPrepareSegment

SCIMapLocalSegment

SCISetSegmentAvailable

SCIConnectSegment

SCIMapRemoteSegment

SCIMemCopy

SCIStoreBarrier

Olivier AUMAGE Supports de communication hautes performances

Page 39: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Modèle de cohérenceModèles de cohérences de zones de mémoire

Mémoire non cachableMémoire cachableMémoire à écriture combinée (write combining)

Principe de fonctionnement du write combining

Intérêt

Application à SISCINotion de flush

SCIStoreBarrier

Olivier AUMAGE Supports de communication hautes performances

Page 40: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

CommunicationOpérations de communication

ÉcritureLecture

Local vs. distant

Cas de memcpy en écritureCas de memcpy en lecture

Discussions sur l’optimisation

Olivier AUMAGE Supports de communication hautes performances

Page 41: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Conséquence du modèle de cohérenceNécessité d’un mécanisme de signalisation

Quand lireQuand écrireLocalité des cases de signalisation

Pas de préservation de l’ordre des opérationsLes écritures ne sont pas (nécessairement) perçues dans leur ordre effectifpar le lecteurObservé en pratique

Nécessité d’une double barrière

Olivier AUMAGE Supports de communication hautes performances

Page 42: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Optimisation des flushes

Coût du flush

Ordre de grandeur d’un transfert

2 flushes : prohibitif pour des messages très courts

Optimisation possible à 1 flush

Olivier AUMAGE Supports de communication hautes performances

Page 43: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Transferts non alignés

Notion de tampon d’écriture combinée

Transactions d’écriture sur le bus

Relation entre l’alignement et le nombre de transactionsOptimisation

Remplissage

Olivier AUMAGE Supports de communication hautes performances

Page 44: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

SiSCI

Optimisation des copiesCopies indispensable

Intrinsèque au modèle

Pipeline

Nécessité d’équilibrage

Olivier AUMAGE Supports de communication hautes performances

Page 45: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Introduction

Société Quadrics

Réseau QSNet IIProcesseur Elan 4

RISC64 bits400 MHz

Gestion de mémoire virtuelle embarquéeEspace 64 bitCoopération avec le noyau du système (patch)

Olivier AUMAGE Supports de communication hautes performances

Page 46: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Architecture

Processeur spécialisé4 threads

inputter : prise en charge des messages entrantsgestionnaire des DMA : prise en charge des émissions de messagesOrdonnancement des threadsPrise en charge des commandes

MMUSDRAM interneAdressage PCIConséquences sur les mappings

RoutageÀ la sourceListe de points de passage ajoutée au messageConsommation le long du trajet

Olivier AUMAGE Supports de communication hautes performances

Page 47: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Programmationlibelan

Programmation de haut niveauIndépendance par rapport à la version de libelanN

libelan3/4Bas niveauPlus rapide

Olivier AUMAGE Supports de communication hautes performances

Page 48: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Modèles

Échange de messages

Files Queue-based modelCommunications uni-latérales

putget

Particularités

Verrous distribuésObjets globaux

Même localisation sur chaque machineOptimisation pour les broadcast

Notifications par événements

Olivier AUMAGE Supports de communication hautes performances

Page 49: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Échange de messages

Tagged Message Passing

Notion de tport

Construction sur les objets de baseObjets globauxÉvénementsFiles

APIelan_txStart/Wait/Doneelan_rxStart/Wait/Poll/Done

Trois modes d’attenteAttente activeAttente passiveQuelques itérations d’attente active puis attente passive

Olivier AUMAGE Supports de communication hautes performances

Page 50: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Échange de messagesTrois modes de transmissions

Messages synchronesMessages longRendez-vous

Messages asynchronesMessages courtsEager

Messages piggybackésMessages très courtsEnvoyé avec l’entête

Prise en charge transparente des messages inattendusRéception sélective

émetteurétiquette

Pas de connexion explicite

Désignation par numéro de processus virtuel

Olivier AUMAGE Supports de communication hautes performances

Page 51: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Quadrics

Put/getCommunication unilatérale

Écriture distanteLecture distante

Initialisation d’une structure préalable

Nécessités de barrières en lecture et en écriture

Collection, dissémination

Olivier AUMAGE Supports de communication hautes performances

Page 52: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Abstraction

Pile standard1 Modèle2 Abstraction3 Contrôle du matériel

Madeleine

Interface générique

Bibliothèque optimisante

Olivier AUMAGE Supports de communication hautes performances

Page 53: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Madeleine

CaractéristiquesProgrammation par contrat

Spécification de contraintesLatitude d’optimisation

Support logiciel actifOptimisation dynamiqueAdaptativitéTransparence

Éléments de base

ConnexionLien point-à-point unidirectionnelOrdre FIFO

CanalGraphe de connexionsUnité de multiplexageVirtualisation du réseau

Olivier AUMAGE Supports de communication hautes performances

Page 54: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Modèle

CaractéristiquesModèle

Échange de messagesConstruction incrémentale des messages

ExpressivitéContrôle des fragments par drapeauxContrat

API

Send ReceiveFunctions mad_begin_packing mad_begin_unpacking

mad_pack mad_packmad_end_packing mad_end_unpacking

Flags mad_send_CHEAPER mad_receive_CHEAPERmad_send_SAFER mad_receive_EXPRESSmad_send_LATER

Olivier AUMAGE Supports de communication hautes performances

Page 55: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

NewMadeleine

Objectifs

Modularité

Ordonnancement programmableDéploiement

Externalisation du lanceur

DynamicitéMulti-réseau simultané

Plusieurs réseaux exploités sur une connexion entre deux machinesMulti-flot

Canaux (multiplexage)Protocoles internes/auxiliaires

Multi-nœudsModèle MADELEINE... par opposition au modèle client-serveur de KMADELEINE

Olivier AUMAGE Supports de communication hautes performances

Page 56: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Idée

Mixage des flots de communication

Applications modernes = conglomérats de codesFlots multiples

Protocoles, modules, composants, environnements

Mixage en un flot communOptimisation dynamique réalisée par un optimiseur

Stratégies multiples

Mutualisation des ressources réseau

Notion d’unité de multiplexage physiqueAssociation interface de bas-niveau/matériel

Cartes virtuellesSockets (TCP, UDP, SCTP), Ports (GM), Endpoint (MX), Tport (Qsnet)

Mutualisation dans un pool communAllocation dynamique réalisée par un ordonnanceur

Politiques multiples

Olivier AUMAGE Supports de communication hautes performances

Page 57: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Schéma

Organisation générale

submit list

post list

pending list

User−level flows

Optimizing scheduler

Drivers

Protocol flows

Core scheduler

NICs

Olivier AUMAGE Supports de communication hautes performances

Page 58: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Schéma

Implémentation

Application

Transmit

Network

Scheduling layer

Collect layer

Quadrics NIC

Waiting packs

Myrinet NICs

RDVPIO Put/Get ...

Optimizing scheduler

Stragegies

Core scheduler

Stragegies

Olivier AUMAGE Supports de communication hautes performances

Page 59: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Définitions

Objets de base – connectivitéPilote

Représente un matériel réseau et son interface de programmationUn certain nombre de capacités associées

PisteReprésente une unité de multiplexage physiqueUn certain nombre de capacités associées

PorteReprésente un point de sortie (et un point d’entrée) vers un processusdistantUtilise un ou plusieurs pilotesNumérotation locale

Olivier AUMAGE Supports de communication hautes performances

Page 60: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Ordonnanceur optimisant

StructurationNotion de tactique

Opération sur le flot de paquetsRéordonnancementAgrégationAffectation à une piste donnée

Notion de stratégieObjectif d’optimisation

Agrégation de paquets non contigusAgrégation de paquets multi-flotsTransferts zéro-copie sur piste dédiéeTransferts RDMA sur piste dédiée

Stratégies interchangeablesAPI communePossibilité de sélection à terme

try/commitScore

Olivier AUMAGE Supports de communication hautes performances

Page 61: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Schéma

Ordonnanceur optimisant

submit list

post list

Core scheduler

Optimizing scheduler

Olivier AUMAGE Supports de communication hautes performances

Page 62: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Fonctionnement

Émission

Pilote

Piste

Liste d’accumulation

Zone d’optimisation

?

Reseau

3

5

9Strategies

Tactiques

Tableau de travail

Olivier AUMAGE Supports de communication hautes performances

Page 63: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Fonctionnement

Réception

Liste de requetes

Piste 0

Piste 0

Piste 0

Requetes

Protocoles

Tampons externes Ordonnanceur Reseaux

Pilote 1

Pilote 2

Pilote 3

Applicationss

Olivier AUMAGE Supports de communication hautes performances

Page 64: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Définitions

Objets de base – fonctionnalitésProtocole

Un flot logique de donnéesMax 256 flots par porte0-127 réservés aux protocoles internes

Signalisation des messages MADELEINERendez-vousContrôle de fluxRéservation de pisteRoutageSession...

Olivier AUMAGE Supports de communication hautes performances

Page 65: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Schéma

Protocoles

submit list

pending list

Core scheduler

Protocol module

failed request callback

Protocol external API

successful request callback

Olivier AUMAGE Supports de communication hautes performances

Page 66: Supports de communication hautes performancespeople.bordeaux.inria.fr/olivier.aumage/Teaching/PRCD_06a/cours.pdf · État des lieux Supports de communication de bas niveau Supports

État des lieux Supports de communication de bas niveau

Pilotes

API des pilotesint init (struct nm_drv *p_drv);int exit (struct nm_drv *p_drv);

int open_trk (struct nm_trk *p_trk);int close_trk (struct nm_trk *p_trk);

int connect (struct nm_cnx_rq *p_crq);int accept (struct nm_cnx_rq *p_crq);int disconnect (struct nm_cnx_rq *p_crq);

int post_send_iov (struct nm_pkt_wrap *p_pw);int post_recv_iov (struct nm_pkt_wrap *p_pw);

int poll_send_iov (struct nm_pkt_wrap *p_pw);int poll_recv_iov (struct nm_pkt_wrap *p_pw);

Mad3 : 30 fonctions...

Olivier AUMAGE Supports de communication hautes performances