I'm trying to run Chapel in multi-locale mode with Slurm. However, 'make check' fails. Could someone help me with that?
I used Chapel 1.23.0. Here are the actual commands I used:
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
Here is the error messages I got:
== 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}'
Assuming you're using the udp substrate with gasnet (
$CHPL_HOME/util/printchplenvshowsCHPL_COMM_SUBSTRATE: udp) then slurm-srun doesn't work in that particular configuration. The udp substrate requiresCHPL_LAUNCHER=amudprun. From https://chapel-lang.org/docs/platforms/udp.html#using-the-udp-conduit-with-slurm, you should be able to do:Note that you'll have to redo the top-level
makecommand.This tells Chapel to use the
amudprunlauncher, and then letsamudprunknow how to spawn onto this system (in this case using srun instead of defaulting to using ssh)