slurm作业管理:一行yhrun命令加载多个作业步
# slurm作业管理:一行yhrun命令加载多个作业步
我们希望运行一行 yhrun
命令加载多个作业步,该怎么办呢?可以使用 yhrun
命令的 --multi-prog
参数来实现。
通过指定 --multi-prog
选项,可使用 yhrun
加载多程序作业步,即不同的任务执
行不同的程序和 / 或参数。这时, yhrun 命令的参数中,最后跟的不是要执行的程序,而是一个配置文件,其中注明每个任务需要加载的程序。
配置文件按行组织,每行用空白分隔为若干个字段。第一个字段为任务号部分,可以包含逗号分隔的任务号列表,可以用 min-max
表示任务号范围,或在最后一行用 *
表示其余所有的任务号。第二个字段为所指定的任务要执行的程序。其它字段为执行程序时的参数。在程序和参数中,可以使用 %t
和 %o
,分别表示替换为任务的任务号和任务在配置文件该行所指定的任务号中的偏移。
下面举一个例子 ^_^
配置文件 mp.conf
0 a.out abc
1 b.out %t
2,5,7-9 c.out %o
* d.out
1
2
3
4
2
3
4
加载作业步
yhrun -n 16 --multi-prog mp.conf
1
所有任务执行的程序分别为:
0: a.out abc
1: b.out 1
2: c.out 0
3,4,6,10-15: d.out
5: c.out 1
7: c.out 2
8: c.out 3
9: c.out 4
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8