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

How to compile the PMI support for running Chapel/GASNet on Omni-Path networks?

我正在尝试 运行 Chapel/GASNet 在配备全路径网络的集群上。

Omni-Path 的 GASNet 官方文档建议通过 --enable-ofi --disable-psm --disable-ibv 使用 ofi-conduit。然而,由于我不知道在哪里传递这个配置,我决定使用 Omni-Path 的 PSM 管道。

1) 我可以 运行 Chapel/GASNet 使用 GASNET_PSM_SPAWNER='ssh'。然而,这个刷怪箱导致 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

祝一切顺利,

蒂亚戈·卡内罗。

我无法轻松访问 Omni-path 系统来测试其中的任何一个,但为了给你一个答案:

在我看来,如果您执行以下操作,Chapel 应该建造并使用 ofi 管道:

  • 在您的环境中设置 CHPL_COMM_SUBSTRATE=ofi(例如,export CHPL_COMM_SUBSTRATE=ofi
  • 重建礼拜堂(例如 makegmake 来自 $CHPL_HOME
  • 重新编译并重新运行你的程序

据我所知,您使用的 spawner/launcher 选项不会对程序的性能产生影响...它只是启动可执行文件和 运行ning 的机制在系统的计算节点上。也就是说,如果你有一种有效的技术,我建议坚持使用它而不是尝试使用其他 spawners/launchers(无论如何,我个人并不熟悉如何使用 PMI spawner 并且我相当肯定 Chapel 目前没有包装它的发射器)。

相比之下,管道的选择会对程序性能产生非常大的影响,因为它控制着整个程序执行过程中的通信方式。

提醒:与任何 Chapel 程序一样,一旦您使其正常工作并进行性能研究,请务必使用 --fast 标志。