> Place centrale > L'informatique à l'EPFL > DIT > publications > FI 10 du 21 décembre 2010 > Version PDA accueil

Avertissement: cette page est un article d'une publication de l'EPFL. Le contenu et certains liens ne sont peut-être plus d'actualité.

public averti Qu’est-ce qu’InfiniBand ?

version pda

 

David CERVINI

pour la version html complète cliquez ici

L’Architecture InfiniBand (IBA) décrit une technologie d’interconnexion entre noeuds de calcul et leurs périphériques d’entrée-sortie. Il en résulte un réseau  SAN  basé sur les switches, indépendant du matériel et de l’OS des hôtes.
L’ IBTA (InfiniBand Trade Association), fondée en 1999, est dirigée par un comité incluant IBM, Intel, Mellanox, Oracle, QLogic et Voltaire. Son but est de maintenir et de faire évoluer la spécification d’InfiniBand. Dans cet article, une présentation des avantages d’InfiniBand (IB) et du concept d’IB sera faite.
Puis nous verrons comment deux noeuds communiquent, ainsi que la composante matérielle majeure. Finalement, les spécificités de la couche Liaison du réseau IB seront abordées.

Avantages d’InfiniBand

InfiniBand possède les avantages suivants :

Concept d’InfiniBand

Traditionnellement, l’OS (système d’exploitation) gère les ressources liées aux réseaux. Lorsqu’une application souhaite y accéder, il lui fournit le service voulu à travers une interface réseau. L’application dépend donc de l’OS qui lui fournit les services relatifs à l’utilisation du réseau.
Le principe d’InfiniBand est de libérer l’OS de la surcharge liée à la copie des données de l’espace d’adressage de l’application vers celui lié au réseau (zero copy feature). Cela se fait par le InfiniBand messaging service : une application y accède directement court-circuitant ainsi l’OS (stack bypass).
InfiniBand relie une application et son espace d’adressage directement à une autre application et son espace d’adressage.

Communication de bout en bout du réseau

Les Queue Pairs

Une extrémité de la communication est appelée Queue Pair (QP). Les applications accèdent au InfiniBand’s messaging service via les QP et communiquent par des  verbs.
L’application doit avoir un accès direct à ses QP (une par connexion) afin de court-circuiter l’OS ; pour cela, les QP sont joints à l’espace d’adressage virtuel de l’application. De cette manière, une application a accès directement à la mémoire virtuelle de l’autre application (de manière contrôlée).

Opérations exécutées par les QP

Il y a seulement 2 types d’opérations possibles :

Les opérations SEND/RECEIVE sont le plus souvent utilisées pour le transfert de messages de contrôle, notamment dans la mise en place des opérations RDMA READ/RDMA WRITE.
Une opération RDMA permet à une application d’accéder directement à un espace mémoire de l’autre l’application.

Host Channel Adapter

Le HCA (Host Channel Adapter) est un périphérique matériel qui connecte un noeud au réseau InfiniBand. Il permet aux applications d’accéder au réseau : les QP fournissent aux applications le moyen de contrôler le HCA.
En effet, on voit sur la figure que les QP sont les interfaces entre la mémoire de l’application et le HCA. Un système de MTP (Memory Translation & Protection) effectue la correspondance adresse virtuelle/physique et valide les droits d’accès.

Le HCA remplace donc l’OS dans l’exécution des requêtes réseau des applications.

Les spécificités de la couche liaison

Virtual Lanes & qualité de service

Il s’agit d’un mécanisme créant plusieurs chemins virtuels au sein d’un simple lien physique.
À chaque VL (Virtual Lane) est associée une paire de buffers (Transmit et Receive).
Chaque port (un lien physique relie 2 ports) possède de 2 à 16 VL. À chaque VL est associé un niveau de service (Service Level). Cette correspondance est gérée par l’administrateur réseau qui configure les tables de correspondance (des ports) SL à VL.

Contrôle de flux point à point

Il a pour rôle d’empêcher la perte de paquets lorsque le buffer de réception est plein. Chaque port gère un contrôle de flux indépendant pour chaque VL. Il se fait par un système de crédit : chaque destinataire possède un crédit indiquant la quantité de données que l’émetteur est autorisé à envoyer depuis l’initialisation de la liaison, évitant ainsi la perte de paquet due au phénomène de congestion.
Étant donné que chaque Virtual Lane possède une paire de buffers propres, ce système s’applique à chaque paire.

Routage

Le routage par les switches est statique : la destination des paquets constitue un chemin à travers les switches. Chaque switch contient une Fowarding Table associant à chaque destination (DLID) un port de sortie. La création de celle-ci, l’assignation des LID (Local ID) aux noeuds (HCA inclus) et plus généralement la configuration des noeuds du réseau sont gérés par le SM (Subnet Manager).
Chaque noeud communique avec le SM par le SMA (Subnet Management Agent).
Les communications entre noeuds et switches se font en point à point. Puis il suffit de suivre les ports de sortie des tables de routage, comme on le voit sur l’exemple.
Ici, on définit deux LID pour tous les HCA, de façon à utiliser un FAT TREE entre les switches contenant LFT 1 et les 2.x. Cela permet de transiter en parallèle sur deux brins entre le switch supérieur et les deux autres.

Il existe des algorithmes de routage tirant parti des VL pour permettre plusieurs chemins pour une même destination : UP/DOWN (voir [1]) et LASH (voir [2]) par exemple.

Conclusion

L’idée d’InfiniBand est de court-circuiter l’OS en assistant le CPU par une autre composante matérielle : le HCA accessible par les applications. Les domaines tels que le HPC (high-performance computing), voir figure ci-après, les scale-out database environments, le shared and virtualized I/O se tournent de plus en plus vers InfiniBand. En effet, InfiniBand s’impose de plus en plus dans le top 500 [3] : 28% (dont le numéro 1) en novembre 2008 contre 42% (dont le numéro 3) en novembre 2010 !

Je vous recommande la lecture de Introduction to InfiniBand for End Users [4] expliquant les concepts de base ou encore le chapitre 3 de InfiniBand Architecture Specification [5] décrivant plus en détail tous les aspects de l’architecture d’InfiniBand.

Bibliographie

[1] P. Lopez, J. Flich and J. Duato. Deadlock-free Routing in InfiniBand through Destination Renaming. IEEE ;
[2 Tor Skeie, Olav Lysne and Ingebjorg Theiss. Layered Shortest Path (LASH) Routing in Irregular System Area Networks. IEEE ;
[3] ]Liste des 500 superordinateurs les plus performants selon le benchmark LINPACK->http://www.top500.org] ;
[4] Paul Grun. Introduction to InfiniBand for End Users. InfiniBand Trade Association, www.InfiniBandta.org ;
[5] InfiniBand™ Architecture Specification Volume 1. Release 1.2.1. www.InfiniBandta.org.



Glossaire

Modèle par échange de messages :
modèle de communication entre processus. Chaque processus communique avec un ou plusieurs autres processus par messages. Les processus peuvent s’exécuter sur des machines différentes reliées par un réseau. Un message contient généralement un identifiant du processus émetteur et celui du recepteur ainsi que les données à transmettre.
SAN (System Area Network) :
système de réseaux à ne pas confondre avec le même acronyme SAN (Storage Area Network) : réseau de stockage.
Verbs :
ils décrivent les opérations qu’une application peut effectuer sur les QP : création, soumission d’une requête, récupération du résultat et configuration du Channel Adapter.