2017-05-18 62 views
0

我不明白为什么英特尔MPI使用DAPL,如果本机ibver比DAPL快,OpenMPI将使用本机ibverbs。然而,在这个基准测试中,英特尔MPI实现了更好的性能。为什么英特尔MPI使用DAPL和OpenMPI本机ibverbs?

http://www.hpcadvisorycouncil.com/pdf/AMBER_Analysis_and_Profiling_Intel_E5_2680.pdf

+0

Brayme,为什么DAPL是比本地ibverbs慢?什么硬件和这个事实的来源是什么? DAPL可能仅默认用于某些版本的英特尔MPI和某些硬件(以及一些[可能支持其他接口])(https://software.intel.com/zh-cn/get-started-with-mpi-for-linux ):psm,hfi,libfabric,scif,...)。是否有更新的基准?你的任务是什么? – osgx

+0

我在这里阅读http://www.advancedclustering.com/act_kb/mpi-over-infiniband/它说英特尔MPI使用DAPL并且比OpenMPI慢,但是在这个AMBER_Analysis的基准测试中,IntelMPI比OpenMPI更快。我需要了解MPI如何在Infiniband上运行,特别是来自这两个库,并且与OFED相关,我的论文是关于这个的,但我无法理解它。 –

+0

http://www.advancedclustering.com/act_kb/mpi-over-infiniband/的“此处”已过时。没有日期说明,但它是关于较旧的库,并且在某些情况下可能是错误的。是的,如果有'dapl',英特尔MPI将使用它。但是我们需要一些microbenchmarks(不是复杂的AMBER)来比较在具有DAPL的IntelMPI的同一硬件上具有不同大小的消息的实际延迟;与OFA(OFED动词);与OFI;以及由它支持的不同选项的OpenMPI。如果您需要了解某些内容,请尝试阅读真实文档/ srcs;做测试,只在这里提出具体问题。 – osgx

回答

0

英特尔MPI使用多个接口与硬件交互,并DAPL不是默认的所有情况。 OpenMPI也会为当前硬件选择一些接口,它并不总是ibverbs,本地节点交互共享内存API,以太网主机只有TCP。

英特尔MPI(Linux)的列表:

https://software.intel.com/en-us/get-started-with-mpi-for-linux

开始使用英特尔®MPI库Linux *操作系统。最后更新于2015年8月24日

支持下列互连织物的任意组合:

  • 共享存储器
  • 网络织物通过标签匹配接口标签匹配功能(TMI),例如英特尔真实比例织物,无限带宽*,Myrinet的*和其它互连
  • 母语的InfiniBand *接口通过开放结构联盟*(OFA *)
  • 的OpenFabrics接口*(OFI *)提供OFED *动词
  • 能进行RDMA的通过DAPL *网络结构,如InfiniBand *和Myrinet的* 插座,例如,TCP/IP以太网*,千兆以太网*和其它互连

接口织物可以使用I_MPI_FABRICS环境变量进行选择: https://software.intel.com/en-us/node/535584

选择织物。 2017年2月22日更新

英特尔®MPI库使您能够在运行时选择通信结构,而无需重新编译应用程序。默认情况下,它会根据您的软件和硬件配置自动选择最合适的结构。这意味着在大多数情况下,您不必担心手动选择结构。

但是,在某些情况下,指定特定的通信结构可以提高应用程序的性能。您可以指定节点内和节点之间通信的结构(分别为节点内和节点间通信)。下面的织物可用:

Fabric - 网络的硬件和软件用于

  • shm - 共享存储器(仅用于节点内的通信)。具有直接访问编程库*(DAPL)功能的网络结构,例如InfiniBand *和iWarp *(通过DAPL)。
  • tcp - 支持TCP/IP的网络结构,例如以太网和InfiniBand *(通过IPoIB *)。
  • tmi - 符合标签接口(TMI)的网络结构,例如英特尔®True Scale结构,英特尔®Omni-Path架构和Myrinet *(通过TMI)。 OpenFabrics Alliance *(OFA)的网络结构,例如InfiniBand *(通过OFED *动词)。基于OpenFabrics接口*(OFI)的网络结构,例如英特尔®True Scale结构,英特尔®全向路径结构,InfiniBand *和以太网(通过OFI API)。

对于节点间通信,它使用默认结构列表中的第一个可用结构。该列表是为每个硬件和软件配置自动定义的(有关详细信息,请参阅I_MPI_FABRICS_LIST)。

对于大多数配置,这个名单如下:

dapl,ofa,tcp,tmi,ofi

+0

我不明白你的意思是“界面”。我是新来的。 –

+0

可能是因为历史原因,请查看https://software.intel.com/zh-cn/forums/intel-clusters-and-hpc-technology/topic/279244 2012年的Gergana S. post:“*当然,我们我们花费时间和精力通过'ofa'结构直接支持OFED动词,因为我们认为它是值得的;它使我们能够直接针对OFED软件堆栈进行优化,并通过多轨支持具有一些很好的边缘带宽优势..如果你没有安装OFED,你的其他选择..是dapl。...我们可以推荐的一件事是:如果你安装了OFED,通过OFA推广它。*“ – osgx

+0

我的意思是作为“接口”的硬件(API)的软件接口。 DAPL和动词(OFED,ofa)和ofi(libfabric)只是一些硬件的不同API。 – osgx

相关问题