我有一个可执行文件,它需要多个选项和多个文件输入才能运行.可以使用可变数量的核来调用可执行文件来运行.
例如,可执行文件-a -b -c -file fileA --file fileB ... --file fileZ --cores X.
我正在尝试创建一个sbatch文件,使我可以使用不同的输入多次调用此可执行文件.每个调用应使用X内核分配在不同的节点(与其余节点并行).核心级的并行化由可执行文件处理,而在SLURM的节点级别.
我尝试使用ntasks和多个sruns,但第一个srun被多次调用.
另一种方法是重命名文件并在扩展名之前使用SLURM进程或节点号作为文件名,但这并不实际.
对此有何见解?
我设法找到了一种可能的解决方案,因此将其发布以供参考:
我声明了与可执行文件的调用一样多的任务,以及节点和每次调用所需的 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 的评论编辑
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |