如何使用分区密钥配置Chapel / GASNet在MXM Infiniband网络上运行多语言环境代码?

时间:2018-12-08 02:07:05

标签: chapel infiniband gasnet

我正在尝试在具有MXM Infiniband网络(40 Gbps,型号:Mellanox Technologies MT26428)的群集上运行多语言环境的Chapel代码。

我遵循了Chapel和GASNet文档,并且进行了设置

export CHPL_COMM_SUBSTRATE=ibv

export CHPL_LAUNCHER=gasnetrun_ibv

export GASNET_IBV_SPAWNER=mpi

不推荐使用xm,而不再使用CHPL_COMM_SUBSTRATE=mxm

问题是我可以使用ibv基板来构建Chapel。但是,我不能在多个语言环境上运行。我收到大量超时错误。

首先,我认为问题是PKEY。因此,我将"--mca btl_openib_pkey "0x8100""添加到了MPIRUN_CMD中。但是,没有成功。

我还尝试使用过时的mxm配置:

CHPL_LAUNCHER=gasnetrun_mxm

export CHPL_LAUNCHER=gasnetrun_ibv

export GASNET_MXM_SPAWNER=mpi

但是,我无法使用这种配置来构建Chapel。那是错误消息:

"User requested --enable-mxm, but I don't know how to build mxm programs for your system."

顺便说一句,在没有分区密钥的MPI,UDP和Infiniband上使用GASNET很好。

有人知道如何在配备MXM Infiniband网络和分区密钥(PKEY)的群集上使用教堂吗?

最好的问候,

Tiago Carneiro。

1 个答案:

答案 0 :(得分:6)

Tiago,

作为GASNet ibv-conduit(支持libibverbs)的作者和维护者,我可以告诉您,我们从未支持过非默认PKey。消息*** FATAL ERROR: failed to connect (snd) status=12与使用错误的PKey一致。

根据您在此处的问题,我已尝试为用户指定的PKey提供支持。您可以在Bitbucket的GASNet git存储库中以请求请求的身份找到我的原型:https://bitbucket.org/berkeleylab/gasnet/pull-requests/248(或https://bitbucket.org/PHHargrove/gasnet-public/commits/ibv-pkey/raw只是获得原始补丁)。您应该能够在Chapel来源的third-party/gasnet/gasnet-src目录中的那个PR中应用一次提交。我没有要测试的分区IB网络。因此,如果可以验证是否可以解决您的问题,那么您将为我提供帮助。

关于User requested --enable-mxm, but I don't know how to build mxm programs for your system,我怀疑GASNet的configure探针无法找到必要的标头或库。故障的详细信息应位于config.log下的third-party/gasnet/build文件中。如果您的mxm标头和库文件安装在/opt/mellanox/mxm以外的位置,那么在构建Chapel时可以设置环境变量MXM_HOME,以将实际位置告知GASNet的配置脚本。但是,我不知道libmxm中有任何PKey支持。因此,这可能是一个死胡同。

-保罗