Télécharger la présentation
Publié parMichelle Michaud Modifié depuis plus de 9 années
1
Interface de communication pour les réseaux InfiniBand
Projet de fin d’études Interface de communication pour les réseaux InfiniBand Etudiants Encadrants Responsable Aïchatou RABBA Eric RENAULT Guy BERNARD Nadir GHEZALI Ouissem BEN FREDJ OPTION ASR 2005/2006
2
PLAN Présentation du projet Présentation du réseau InfiniBand
Le protocole de communication Remote write L’implémentation de l’interface Conception Validation et tests de performance Exemple d’utilisation Perspectives
3
Objectif du projet Etude du réseau InfiniBand Etude du Remote Write
Implémentation d’une interface de communication pour le Remote Write sur InfiniBand
4
InfiniBand Présentation Architecture Quelques concepts
Gestion des communications Types de transferts
5
Présentation Architecture d’interconnexion à haut débit
Alternative performante aux architectures d’E/S à bus partagé classiques (Bus PCI,..) Spécifié initialement par l’ IBTA (InfiniBand Trade Association) en 1999 Haut débit pouvant atteindre 30 Gbs en fonction de la largeur du lien (1x, 4x, 12x) Faible latence
6
InfiniBand Présentation Architecture Quelques concepts
Gestion des communications Types de transferts
7
Architecture Subnet et Subnet Manager Switchs et Routers
HCA (Host Channel Adapter) TCA (Target Channel Adapter) Liens physiques
8
Architecture Infiniband
9
InfiniBand Présentation Architecture Quelques concepts
Gestion des communications Types de transferts
10
Quelques concepts RDMA (Remote Direct Memory Access)
Accès direct à des zones mémoires distantes Sans l’intervention du processeur Absence de recopies successives dans des tampons mémoires (zero-copy) N’utilise pas les appels systèmes du noyau (OS-Bypass)
11
Quelques concepts Transfert de données zéro-copie avec OS-bypass sur un réseau de grappe
12
InfiniBand Présentation Architecture Quelques concepts
Gestion des communications Types de transferts
13
Gestion des communications
Utilisation des queues d’envoi et de réception (Queue Pairs) Chaque QP est composée d’un queue d’envoi (Send Queue) et d’une Queue de réception (Receive Queue) L’envoi ou la réception des messages se fait par l’ajout d’un descripteur (Work Request) dans la queue appropriée. Génération d’une CQE (Completion Queue Entry) après chaque envoi ou réception effective de messages
14
Gestion des communications
15
Gestion des communications
Types de services de transferts RC : Reliable Connect RD : Reliable Datagram UC : Unreliable Connect UD : Unreliable Datagram Le type de transfert est spécifié lors de la création des QPs
16
InfiniBand Présentation Architecture Quelques concepts
Gestion des communications Types de transferts
17
Types de transferts RMDA Read
18
Types de transferts RMDA Write
19
Types de transferts Send
20
Types de transferts Send inlined
21
Remote Write Description Interface RWAPI (Remote Write API)
Modèle de programmation
22
Description Protocole de communication sans recopie intermédiaire
Objectif : minimiser la latence, et maximiser la bande passante utile
23
Remote Write Description Interface RWAPI (Remote Write API)
Modèle de programmation
24
Remote Write API Fonctions rwapi_init et rwapi_finalise
Initialisation des ressources Fonctions rwapi_init et rwapi_finalise Gestion de la topologie Fonctions rwapi_size et rwapi_rank Allocation mémoire Fonctions rwapi_alloc et rwapi_free Envoi de messages Fonctions rwapi_ssend et rwapi_send Contrôle des messages Fonctions rwapi_issent et rwapi_receive Contrôle des messages par interruption fonctions rwapi_rhandler et rwapi_shandler
25
Remote Write Description Interface RWAPI (Remote Write API)
Modèle de programmation
26
Modèle de programmation
27
Conception Contexte de programmation Choix du type de transfert
Initialisation Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Notification (poll) Par interruption
28
Niveau de programmation
29
Objectif de la conception
Parallèle entre InfiniBand et RWAPI. Définition des pré requis aux communications entre processus Choix approprié des paramètres et opérations propres à InfiniBand Choix du type de transfert
30
Conception Contexte de programmation Choix du type de transfert
Initialisation Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Poll Par interruption
31
Choix du type de transfert
Type de transfert choisi : RC
32
Conception Contexte de programmation Choix du type de transfert
Initialisation Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Poll Par interruption
33
Initialisation fonction rwapi_init
Appel préalable a rwapi_init par chaque nœud nécessaire Création et initialisation des ressources InfiniBand : QPs, Domaines de protection, allocation et enregistrement des zones mémoire auprès du HCA … Gestion de la topologie
34
Conception Contexte Choix du type de transfert Initialisation
Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Poll Par interruption
35
Gestion de la topologie
Utilisation d’un Spawner (SSH) pour la répartition de l’exécution sur les nœuds voulus Création des QPs au niveau de chaque nœud Utilisation du réseau IP comme réseau de contrôle Etablissement des connexions et synchronisation des QPs
36
Gestion de la topologie
réseau de trois nœuds
37
Conception Contexte de programmation Choix du type de transfert
Initialisation Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Poll Par interruption
38
Envoi des messages Messages courts Messages normaux rwapi_ssend
8 octets N’utilise pas d’adresse physique distante Utilisation du SEND (inlined / non inlined) d’InfiniBand Messages normaux Utilise le RDMA_WRITE rwapi_send Connaissance a priori des adresses virtuelles et physiques distantes nécessaire Messages pouvant atteindre 2 Go
39
Conception Contexte de programmation Choix du type de transfert
Initialisation Gestion de la topologie Envoi des messages Messages courts Messages normaux Contrôle des messages Par Poll Par interruption
40
Contrôle des messages Par notification (poll) Par interruption
Vérification de la présence d’une nouvelle entrée dans les queues de complétion d’envoi (SCQ avec rwapi_issent) ou de réception (RCQ avec rwapi_receive) Par interruption Utilisation d’un drapeau spécifique à l’envoi Appel des fonctions rwapi_shandler et rwapi_rhandler selon le drapeau spécifié
41
Validation et tests de performance
Latence (One Way Latency) Nombre d’itérations: Taille du message:8 octets Avec rwapi_ssend: 3,16 µs Avec rwapi_send: 1,82 µs
42
Validation et tests de performance
Bande passante (test avec la fonction rwapi_send)
43
Exemple d’utilisation
44
Perspectives Implémentation du contrôle de messages par interruption
Implémentation d’un mécanisme dédié de gestion des files d’émission
45
QUESTIONS?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.