我们希望运行一行 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

加载作业步

yhrun -n 16 --multi-prog mp.conf

所有任务执行的程序分别为:

• 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