我正在使用 GNU
parallel
同时运行 3 个脚本。这是我当前的 shell 脚本。
#!/bin/bash
#SBATCH --array=0-0
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=3
#SBATCH --cpus-per-task=1
#SBATCH --time=07:30:00
#SBATCH --mail-type=FAIL
module load julia
parallel -j $SLURM_TASKS_PER_NODE << EOF
julia main.jl $SLURM_ARRAY_TASK_ID 0.025 0
julia main.jl $SLURM_ARRAY_TASK_ID 0.025 1
julia main.jl $SLURM_ARRAY_TASK_ID 0.025 2
EOF
但是,这无法运行。我使用
bash -x jobs.sh
来获得更多见解,但没有发现任何值得注意的地方。起初我怀疑它可能来自 $SLURM_TASKS_PER_NODE
参数,而不仅仅是使用整数 3。但是交换它没有任何作用。
有什么建议吗?
看来在调试的过程中,我把
SBATCH --array
去掉了。因此 $SLURM_ARRAY_TASK_ID
留空。这相当令人尴尬,显然需要一个良好的睡眠。
我不会删除这篇文章,因为评论中有很好的想法。