Intel MPI et Fabric

Cet article traite du choix de la Fabric par la librairie Intel MPI.

Une Fabric ?

  • Sous ce terme, on désigne un type de “réseau” de communication (FIXME à détailler)
  • La librairie Intel MPI est capable d'utiliser plusieurs Fabric différentes

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

shmMé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
    • sur ethernet
    • sur Infiniband à travers la couche “IPoIB” (IP over Infiniband) qui est activée sur CALI
  • 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

FIXME pourquoi ne pas l'utiliser ?

ofa / verbs

  • La Fabric de type ofa (openFabric Alliance) passe par la couche Verbs
  • Elle est donc à déconseiller

FIXME 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