chapel - 如何编译 PMI 支持以在 Omni-Path 网络上运行 Chapel/GASNet?
问题描述
我正在尝试在配备 Omni-path 网络的集群上运行 Chapel/GASNet。
Omni-Path 的 GASNet 官方文档建议通过传递来使用 ofi-conduit --enable-ofi --disable-psm --disable-ibv
。但是,由于我不知道在哪里传递此配置,我决定将 PSM 管道用于 Omni-Path。
1) 我可以使用GASNET_PSM_SPAWNER='ssh'
. 但是,此生成器导致 PGAS 非常缓慢。
2)如果我设置,我只能使用 MPI 作为生成-mca mtl ^psm,psm2
器,这也很慢。否则,我会收到几个错误。
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-conduit:
- 在您的环境中设置
CHPL_COMM_SUBSTRATE=ofi
(例如,export CHPL_COMM_SUBSTRATE=ofi
) - 重建教堂(例如,
make
或gmake
从$CHPL_HOME
) - 重新编译并重新运行你的程序
您使用的生成器/启动器的选择不应该对我所知道的程序性能产生影响......它只是让可执行文件在系统的计算节点上启动和运行的机制。也就是说,如果您有一种有效的技术,我建议您坚持使用它而不是尝试使用其他生成器/启动器(无论如何,我个人并不熟悉如何使用 PMI 生成器并且相当确定那个教堂目前没有包装它的发射器)。
相比之下,管道的选择会对程序性能产生非常大的影响,因为它控制着在整个程序执行过程中如何进行通信。
提醒一下:与任何 Chapel 程序一样,一旦您让它正常工作并进行性能研究,请务必使用该--fast
标志。
推荐阅读
- javascript - 从 ReactJS 中的其他组件打开模式
- php - foreach 在 while 循环中返回重复数据
- javascript - WebStorm 和控制台在执行上的区别
- javascript - 在 Ionic 和 Cordova 中构建 Android APK
- android-fragments - 在后台运行的android片段
- php - 如何在 PHP 中的 DOMElement 上使用“getElementsByTagName”?
- wpf - WPF XML 绑定 DataGrid 仅显示一行
- python - python中的MICE实现
- apache-camel - 为什么不推荐使用 Camel SCR?
- excel - Excel 中的错误检查