Multilocale Chapel:使检查失败(GASNet:节点数无效:-nl)

dr.*_*eru 5 chapel

我正在尝试使用 Slurm 在多语言环境模式下运行 Chapel。但是,'make check' 失败。有人可以帮我吗?

我使用了 Chapel 1.23.0。以下是我使用的实际命令:

cd chapel-1.23.0/
export CHPL_HOME=$PWD
source $CHPL_HOME/util/setchplenv.bash
export CHPL_COMM=gasnet
export CHPL_LAUNCHER=slurm-srun
export CHPL_TARGET_CPU=native
make && make check
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误消息:

== Actual Test Output (raw, with verbose) ==
srun --job-name=CHPL-hello6-tas --quiet --nodes=4 --ntasks=4 --ntasks-per-node=1 --cpus-per-task=16 --exclusive --mem=0 --kill-on-bad-exit  /home/user1/.chpl/chapel-test-P4CwK/hello6-taskpar-dist_real -nl4 --printLocaleName=false -v
GASNet: Invalid number of nodes: -nl4
GASNet: Usage '/home/user1/.chpl/chapel-test-P4CwK/hello6-taskpar-dist_real <num_nodes> {program arguments}'
Run Code Online (Sandbox Code Playgroud)

Ell*_*iot 3

假设您使用带有 Gasnet 的 udp 底层($CHPL_HOME/util/printchplenv显示CHPL_COMM_SUBSTRATE: udp),那么 slurm-srun 在该特定配置中不起作用。udp 基板需要CHPL_LAUNCHER=amudprun. 从https://chapel-lang.org/docs/platforms/udp.html#using-the-udp-conduit-with-slurm,您应该能够执行以下操作:

export CHPL_LAUNCHER=amudprun
export GASNET_SPAWNFN=C
export GASNET_CSPAWN_CMD="srun -N%N %C"
Run Code Online (Sandbox Code Playgroud)

请注意,您必须重做顶级make命令。

这告诉 Chapel 使用amudprun启动器,然后让我们amudprun知道如何生成到该系统上(在本例中使用 srun 而不是默认使用 ssh)