Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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
É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