1 / 44

Projet de fin d’études

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. Objectif du projet. Etude du réseau InfiniBand Etude du Remote Write

livi
Download Presentation

Projet de fin d’études

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projet de fin d’études Interface de communication pour les réseaux InfiniBand EtudiantsEncadrantsResponsable Aïchatou RABBA Eric RENAULT Guy BERNARD Nadir GHEZALI Ouissem BEN FREDJ OPTION ASR 2005/2006

  2. 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

  3. InfiniBand • Présentation • Architecture • Quelques concepts • Gestion des communications • Types de transferts

  4. 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

  5. InfiniBand • Présentation • Architecture • Quelques concepts • Gestion des communications • Types de transferts

  6. Architecture • Subnet et Subnet Manager • Switchs et Routers • HCA (Host Channel Adapter) • TCA (Target Channel Adapter) • Liens physiques

  7. Architecture Infiniband

  8. InfiniBand • Présentation • Architecture • Quelques concepts • Gestion des communications • Types de transferts

  9. 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)

  10. Quelques concepts Transfert de données zéro-copie avec OS-bypass sur un réseau de grappe

  11. InfiniBand • Présentation • Architecture • Quelques concepts • Gestion des communications • Types de transferts

  12. 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

  13. Gestion des communications

  14. 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

  15. InfiniBand • Présentation • Architecture • Quelques concepts • Gestion des communications • Types de transferts

  16. Types de transferts • RMDA Read

  17. Types de transferts • RMDA Write

  18. Types de transferts • Send

  19. Types de transferts Send inlined

  20. Remote Write • Description • Interface RWAPI (Remote Write API) • Modèle de programmation

  21. Description • Protocole de communication sans recopie intermédiaire • Objectif : minimiser la latence, et maximiser la bande passante utile

  22. Remote Write • Description • Interface RWAPI (Remote Write API) • Modèle de programmation

  23. Remote Write API • 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

  24. Remote Write • Description • Interface RWAPI (Remote Write API) • Modèle de programmation

  25. Modèle de programmation

  26. 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

  27. Niveau de programmation

  28. 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

  29. 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

  30. Choix du type de transfert Type de transfert choisi : RC

  31. 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

  32. 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

  33. 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

  34. 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

  35. Gestion de la topologie réseau de trois nœuds

  36. 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

  37. Envoi des messages • Messages courts • 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

  38. 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

  39. Contrôle des messages • Par notification (poll) • 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é

  40. Validation et tests de performance • Latence (One Way Latency) Nombre d’itérations:1000000 Taille du message:8 octets • Avec rwapi_ssend: 3,16 µs • Avec rwapi_send: 1,82 µs

  41. Validation et tests de performance • Bande passante (test avec la fonction rwapi_send)

  42. Exemple d’utilisation

  43. Perspectives • Implémentation du contrôle de messages par interruption • Implémentation d’un mécanisme dédié de gestion des files d’émission

  44. QUESTIONS?

More Related