Intel MPI et Fabric
Cet article traite du choix de la Fabric par la librairie Intel MPI.
Une Fabric ?
Infiniband : PSM vs. Verbs
Verbs et PSM sont deux approches différentes pour les communications MPI sur IB
Verbs
date des origines d'IB
interface entre les protocoles de haut niveau et le HCA (Host Controler, carte IB)
orienté connexion ⇒ lourd
conséquence, a besoin de HCA avec capacité d'offload
conçu pour des I/O à la base
MPI a été ensuite adapté pour utiliser Verbs directement … mais ce n'est pas très adapté
Schéma Verbs
PSM
Performance Scaled Messaging
postérieur à Verbs
écrit pour MPI (et donc très bien adapté)
réside en user space sous forme d'une librairie
beaucoup plus léger que Verbs
utilise un découpage des rôles différents de Verbs : la partie “transport” est exécutée par le driver, et non par le HCA. Il n'utilise pas de technologie d'offload
Schéma PSM
Intel True Scale
Il faut aussi savoir que notre réseau IB est basé sur l'architecture Intel True Scale
Elle a été conçue pour fonctionner avec PSM, spécialement pour les clusters HPC
Il est donc fortement conseillé de travailler avec PSM pour en tirer un plein profit
Fabric supportées
shm | Mémoire partagée |
dapl | DAPL-capable network fabrics, such as InfiniBand, iWarp, Dolphin, and XPMEM (through DAPL) |
tcp | TCP/IP-capable network fabrics, such as Ethernet and InfiniBand (through IPoIB) |
tmi | TMI-capable network fabrics including Intel True Scale Fabric, Myrinet, (through Tag Matching Interface) |
ofa | OFA-capable network fabric including InfiniBand* (through OFED verbs) |
shm
Ce type de Fabric concerne seulement les machines à mémoires partagées, comme son nom l'indique
Utilisable pour des communication au sein d'un nœud de calcul
tcp
Utilise le protocole réseau TCP, développé à l'origine pour TCP/IP
Lent …
Peut fonctionner
A réserver aux anciens nœuds de calcul sans connexion IB
dapl
Direct Access Programming Library
Protocole de couche haute pour réseau Infiniband
Utilise en dessous soit un mode connecté (Reliable Connection RC), soit un mode déconnecté (User Datagram UD)
Mode par défaut d'Intel MPI
pourquoi ne pas l'utiliser ?
ofa / verbs
détailler
tmi
Tag Matching Interface
Un des fournisseur (provider) TMI permet de passer par PSM
C'est la Fabric à utiliser de préférence sur CALI
La liste des fournisseurs TMI est déclarée dans un fichier de configuration de la librairie Intel, /opt/software/intel/impi_latest/etc64/tmi.conf
Configuration Intel MPI
L'environnement Intel MPI est automatiquement configuré par les modules
La Fabric utilisée sera shm
en intra-noeud, tmi
en inter-noeud
Utilisera donc la mémoire partagée pour des communications entre processus localisés sur un même noeud, ou PSM (configuré comme fournisseur TMI) pour des communications entre noeuds différents
Configuration via I_MPI_FABRICS=shm:tmi
Références