Intel MPI utilise plusieurs interfaces pour interagir avec le matériel et DAPL est pas par défaut pour tous les cas. OpenMPI sélectionnera aussi une interface pour le matériel actuel, ce ne sera pas toujours ibverbs, il y aura une API de mémoire partagée pour les interactions avec les nœuds locaux et TCP pour les hôtes exclusivement Ethernet.
Liste pour Intel MPI (Linux):
https://software.intel.com/en-us/get-started-with-mpi-for-linux
Mise en route avec la bibliothèque Intel® MPI pour Linux * OS. Dernière mise à jour le 24 Août ici à 2015
soutien pour toute combinaison des tissus d'interconnexion suivants:
- Mémoire partagée
- tissus de réseau avec des capacités d'adaptation de l'étiquette via l'interface Matching Tag (TMI), tels que Intel® vrai Tissu d'échelle, Infiniband *, Myrinet * et d'autres interconnexions
- interface InfiniBand native * par OFED * verbes fournis par Open Fabrics Alliance * (OFA *)
- OpenFabrics Interface * (* BIF)
- tissus de réseau RDMA capable par DAPL *, telles que InfiniBand * et Myrinet * Sockets, par exemple, TCP/IP sur Ethernet *, Gigabit Ethernet *, et d'autres interconnexions
Interface tissu peut être sélectionné avec la variable d'environnement I_MPI_FABRICS: https://software.intel.com/en-us/node/535584
Sélection tissus. Dernière mise à jour le 22 février 2017
La bibliothèque Intel® MPI vous permet de sélectionner une structure de communication lors de l'exécution sans avoir à recompiler votre application. Par défaut, il sélectionne automatiquement la structure la plus appropriée en fonction de la configuration logicielle et matérielle. Cela signifie que, dans la plupart des cas, vous n'avez pas à vous soucier de sélectionner manuellement un tissu. Toutefois, dans certaines situations, la spécification d'une structure de communication particulière peut améliorer les performances de votre application. Vous pouvez spécifier des matrices pour les communications au sein du noeud et entre les noeuds (communications intra-noeud et inter-noeud, respectivement). Les tissus suivants sont disponibles:
Fabric
- matériel réseau et les logiciels utilisés
shm
- Mémoire partagée (uniquement pour les communications intra-nœud).
dapl
- Fabricants de réseau pouvant être connectés à la bibliothèque de programmation Direct Access (* DAPL), tels que InfiniBand * et iWarp * (via DAPL).
tcp
- Fabricants de réseau compatibles TCP/IP, tels que Ethernet et InfiniBand * (via IPoIB *). - Tissus de réseau compatibles avec l'interface TIM (Tag Matching Interface), tels que Intel® True Scale Fabric, Intel® Omni-Path Architecture et Myrinet * (via TMI).
ofa
- Tissus réseau OpenFabrics Alliance * (OFA), tels que InfiniBand * (à travers les verbes OFED *).
ofi
- Tissus réseau OpenFabrics Interfaces * (OFI), tels que Intel® True Scale Fabric, Architecture Intel® Omni-Path, InfiniBand * et Ethernet (via l'API OFI).
Pour la communication entre noeuds, elle utilise la première structure disponible de la liste de structure par défaut. Cette liste est définie automatiquement pour chaque configuration matérielle et logicielle (voir I_MPI_FABRICS_LIST pour plus de détails).
Pour la plupart des configurations, cette liste est la suivante:
dapl,ofa,tcp,tmi,ofi
Brayme, pourquoi DAPL est plus lent que ibverbs natif? Pour quel matériel et quelle était la source de ce fait? DAPL peut être par défaut seulement pour certaines versions d'Intel MPI et du matériel (et certaines [d'autres interfaces peuvent être supportées] (https://software.intel.com/en-us/get-started-with-mpi-for-linux): psm, hfi, libfabric, scif, ...). Y a-t-il des repères plus récents? Quelle est votre tâche? – osgx
Je lis ici http://www.advancedclustering.com/act_kb/mpi-over-infiniband/ et il est dit Intel MPI utilise DAPL et est plus lent que OpenMPI, mais dans ce cas-test AMBER_Analysis IntelMPI est plus rapide que OpenMPI. J'ai besoin de comprendre comment fonctionne MPI sur Infiniband, en particulier de ces 2 bibliothèques, et en ce qui concerne OFED, ma thèse est à ce sujet, mais je ne peux pas le comprendre. –
Le "ici" de http://www.advancedclustering.com/act_kb/mpi-over-infiniband/ est obsolète. Il n'y a pas de date indiquée, mais il s'agit de bibliothèques plus anciennes, et cela peut être faux dans certaines situations. Oui, s'il y a 'dapl', Intel MPI l'utilisera. Mais nous avons besoin de microbenchmarks (pas le complexe AMBER) pour comparer la latence pratique de messages de différentes tailles sur le même matériel avec IntelMPI avec DAPL; avec OFA (verbes OFED); avec OFI; et OpenMPI avec différentes options supportées par lui. Si vous avez besoin de comprendre quelque chose, essayez de lire de vrais docs/srcs; faire des tests et ne poser que des questions spécifiques ici. – osgx