我正在尝试使用 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)
假设您使用带有 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)