【发布时间】:2021-06-25 21:48:48
【问题描述】:
我有一个文件,每行一个命令,例如:
myprog.sh <args abc>
myprog.sh <args def>
我正在尝试将这些作为作业提交到数组中。该阵列应使用 1 台主机,以及该主机上的所有 CPU。相反,每个阵列使用 2 台主机,并在两台主机上执行这两个命令。
我想要什么:
host1
- myprog.sh <args abc> slurm-1_1.out
- myprog.sh <args def> slurm-1_2.out
slurm-1_1.out 将具有来自作业 1 的标准输出,而 slurm1_2.out 将具有来自作业 2 的标准输出。相反,正在发生的事情是这样的:
host1
- myprog.sh <args abc> slurm-1_1.out
- myprog.sh <args def> slurm-1_1.out
host2
- myprog.sh <args abc> slurm-1_2.out
- myprog.sh <args def> slurm-1_2.out
所以每个作业都在每个主机上重复。
我的 sbatch 命令如下所示:
sbatch -p small --nodes=1 -w host1 --cpus-per-task=1 --mem-per-cpu=3G --array=1-2 --wrap="myprog.sh <args abc> & myprog.sh <args def> & wait"
任何帮助将不胜感激!
【问题讨论】: