Interface de communication pour les réseaux InfiniBand

Slides:



Advertisements
Présentations similaires
Sécurité informatique
Advertisements

GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Module 5 : Implémentation de l'impression
Institut Supérieur d'Informatique
Eléments de Génie Logiciel
Réflexivité et réseaux d’ information
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Protocole PPP* *Point-to-Point Protocol.
Architecture de réseaux
Introduction à MPI 13 – 16 Décembre 2005 Laurence Viry.
Parallel Programming in C with MPI and OpenMP
Les réseaux WIFI.
La machine parallèle MPC1 Hardware, protocoles et performances Université P. & M. Curie (PARIS) Laboratoire dInformatique de PARIS6 Olivier Glück.
Serveurs Partagés Oracle
Informatique temps réel et réseaux de terrain – ELEC365
Distributed Queue Dual Bus
Optimisations de la bibliothèque de communication MPI pour machines parallèles de type « grappe de PCs » sur une primitive décriture distante Olivier Glück.
Structures des Systèmes d’Exploitation
Allocation de mémoire Allocation de mémoire.
Système d’Exploitation L’interface utilisateur / machine.
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Projet INF1 Présentation
Programmation concurrente
Périphériques et bus système
Module 2 : Préparation de l'analyse des performances du serveur
Module 3 : Analyse des performances du serveur
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Vue d'ensemble Configuration d'adresses IP
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
La machine parallèle MPC1
Fondements de l’algorithmique des réseaux
Présentation de CORBA et de IIOP
Développement d’application client/serveur
Module 8 : Surveillance des performances de SQL Server
KRIKORIAN Pierre HILMI Brahim
Supports de formation au SQ Unifié
Développement d’application client/serveur
Plan Définitions et exemples Composants de cluster
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
D. E ZEGOUR Institut National d ’Informatique
Université des Sciences et de Technologie Mohamed Boudiaf - ORAN
Les sockets.
PERI Master ACSI cours Gestion des Périphériques Année (Transparents de F. Dromard)
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Système slow-control au LAPP
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Laboratoire Intégration des Architectures Numériques (IAN)
PERI Master ACSI cours Gestion des Périphériques Année (Transparents de F. Dromard)
Structure des Systèmes Informatiques
Les réseaux X.25 et le relais de trames
V- Identification des ordinateurs sur le réseau
Les fonctionnalités de base des réseaux
Architecture Client/Serveur
Module 2 : Planification de l'installation de SQL Server
LES SIMULATEURS RÉSEAU
Gestion et traitement des demandes de service
Architecture et technologie des ordinateurs II
L3 Instrumentation Pétrolière S6
ARP Fonctionnement.
Chapitre8 Configuration de l'adressage TCP/IP et de la résolution de noms Module S41.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
ASR5 Système pour architectures multicœurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques Répartis Gaël Thomas
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Architecture d'un automate programmable
Transcription de la présentation:

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

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

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

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

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

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

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

Architecture Infiniband

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

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)

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

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

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

Gestion des communications

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

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

Types de transferts RMDA Read

Types de transferts RMDA Write

Types de transferts Send

Types de transferts Send inlined

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

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

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

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

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

Modèle de programmation

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

Niveau de programmation

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

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

Choix du type de transfert Type de transfert choisi : RC

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

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

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

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

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

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

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

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

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é

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

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

Exemple d’utilisation

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

QUESTIONS?