SLURM sbatch多个并行调用可执行文件

IVy*_*IVy 6 slurm

我有一个可执行文件,它需要多个选项和多个文件输入才能运行.可以使用可变数量的核来调用可执行文件来运行.

例如,可执行文件-a -b -c -file fileA --file fileB ... --file fileZ --cores X.

我正在尝试创建一个sbatch文件,使我可以使用不同的输入多次调用此可执行文件.每个调用应使用X内核分配在不同的节点(与其余节点并行).核心级的并行化由可执行文件处理,而在SLURM的节点级别.

我尝试使用ntasks和多个sruns,但第一个srun被多次调用.

另一种方法是重命名文件并在扩展名之前使用SLURM进程或节点号作为文件名,但这并不实际.

对此有何见解?

IVy*_*IVy 1

我设法找到了一种可能的解决方案,因此将其发布以供参考:

我声明了与可执行文件的调用一样多的任务,以及节点和每次调用所需的 cpu 数量。

然后为每个调用单独运行一次,声明每次调用的节点和任务的数量。所有 srun 都用与号 (&) 绑定:

srun -n 1 -N 1 --独占可执行文件 -a1 -b1 -c1 -file fileA1 --file fileB1 ... --file fileZ1 --cores X1 &

srun -n 1 -N 1 --独占可执行文件-a2 -b2 -c2 -file fileA2 --file fileB2 ... --file fileZ2 --cores X2 &

....

srun -n 1 -N 1 --独占可执行文件 -aN -bN -cN -file fileAN --file fileBN ... --file fileZN --cores XN

--编辑:经过一些测试(正如我在下面的评论中提到的),如果最后一个 srun 的进程在其余进程之前结束,则似乎结束了整个工作,而其余部分未完成。

——根据 Carles Fenoy 的评论编辑