如何编译用于在Omni-Path网络上运行Chapel / GASNet的PMI支持?

时间:2019-01-07 07:40:31

标签: chapel gasnet

我正在尝试在配备Omni-path网络的群集上运行Chapel / GASNet。

Omni-Path的GASNet官方文档建议通过传递--enable-ofi --disable-psm --disable-ibv来使用ofi-conduit。但是,由于我不知道在哪里传递此配置,所以我决定将PSM管道用于Omni-Path。

1)我可以使用GASNET_PSM_SPAWNER='ssh'运行Chapel / GASNet。但是,此生成器会导致PGAS相当慢。

2)如果设置-mca mtl ^psm,psm2,则只能将MPI用作生成器,这也很慢。否则,我会收到几个错误。

3)我尝试使用PMI作为生成器。但是,我收到以下错误消息:Spawner is set to PMI, but PMI support was not compiled in usage: gasnetrun...

如何编译PMI支持以及如何使用GASNET_PSM_SPAWNER='pmi'

这是我的其他Chapel / GASNet运行时变量:

CHPL_COMM='gasnet'

CHPL_LAUNCHER='gasnetrun_psm'

CHPL_COMM_SUBSTRATE='psm'

CHPL_GASNET_SEGMENT='everything'

CHPL_TARGET_ARCH='native'

HFI_NO_CPUAFFINITY=1

祝一切顺利,

Tiago Carneiro。

1 个答案:

答案 0 :(得分:3)

我无法方便地使用Omni-path系统来测试其中的任何一个,但是为了试图为您提供答案:

在我看来,如果您执行以下操作,Chapel应该应该构建并使用ofi-conduit:

  • 在您的环境中设置CHPL_COMM_SUBSTRATE=ofi(例如export CHPL_COMM_SUBSTRATE=ofi
  • 重新构建教堂(例如,make中的gmake$CHPL_HOME
  • 重新编译并重新运行程序

您知道,选择使用生成器/启动器不会影响程序的性能,这只是我所知道的……这仅仅是使可执行文件在系统计算节点上启动并运行的机制。也就是说,如果您有一种有效的技术,我建议您坚持使用它,而不要尝试使用其他生成器/启动器(无论如何,我个人并不熟悉如何使用PMI生成器,因此可以肯定地说教堂目前没有可将其包裹起来的发射器。

相反,管道的选择会对程序性能产生很大的影响,因为它决定了程序执行过程中通信的发生方式。

提醒一下:与任何Chapel程序一样,一旦程序正常运行并进行了性能研究,请确保使用--fast标志。