runshell 集群和本地任务
runshell 是将 shell 脚本中每行命令作为独立任务投递到本地服务器、SGE集群或Slurm集群中运行的命令。runsge 命令功能与 runshell 完全一致,为早期版本的命令名。
参数說明
输入命令runshell --help可查看参数配置,各参数介绍如下:
参数 |
描述 |
|---|---|
-h/–help |
打印帮助信息并退出 |
-v/–version |
打印软件版本并退出 |
-j/–jobfile |
指定的shell脚本文件,每行命令作为一个任务投递(必填,默认stdin) |
-N/–jobname |
任务名称,默认为jobfile的basename |
-L/–logdir |
各任务的日志输出文件夹 |
-g/–groups |
指定N行为一个任务组,作为一个单独任务,默认1行 |
-n/–num |
同时运行的最大任务数,默认全部(最大1000) |
-s/–start |
从第几行开始运行,默认第1行 |
-e/–end |
运行到第几行,默认最后一行 |
-M/–mode |
任务运行模式,可选 |
-w/–workdir |
任务提交时的工作目录,默认为当前目录 |
-q/–queue |
SGE/Slurm 集群队列名,多个用空白隔开 |
-c/–cpu |
任务使用的cpu资源申请,默认1 |
-m/–memory |
任务使用的内存资源申请,默认1G |
–node |
任务运行的集群节点,多个用空白隔开 |
–round-node |
在所有指定节点间轮询分配任务 |
-r/–retry |
任务运行失败后重新投递次数,默认0(不重投) |
-R/–retry-sec |
任务错误后重投的等待时间,单位秒,默认2 |
–max-check |
每秒最大检查任务状态次数,默认5 |
–max-submit |
每秒最大投递任务数,默认20 |
–max-queue-time |
任务从提交到开始运行的最大等待时间(支持d/h/m/s格式) |
–max-run-time |
任务最大运行时间(支持d/h/m/s格式) |
–max-wait-time |
任务从提交开始的最大存活时间(支持d/h/m/s格式) |
–max-timeout-retry |
超时任务的重试次数,默认0 |
–init |
所有任务开始前运行的命令(本地执行) |
–callback |
所有任务结束后运行的命令(本地执行) |
–abort-on-error |
严格模式,单个任务失败则终止所有任务并退出 |
-f/–force |
强制重新提交已成功的任务 |
–quiet |
静默模式,不输出日志 |
-d/–debug |
程序日志级别debug,默认info |
-l/–log |
程序日志输出文件,默认屏幕输出 |
–config |
指定配置文件路径 |
–show-config |
打印当前配置并退出 |
shell任务格式
runshell批量投递任务,将shell脚本中的每一行命令作为一个任务并行投递到计算资源中。
shell脚本格式如下:
echo hello // -c 1 -m 1G --mode sge -q all.q
echo world
wait
echo end
每一行命令作为一个任务投递,每个任务支持
//后添加资源限定。wait关键字会阻塞当前任务投递过程,等待之前的所有任务运行完成后才投递后续行。需要注释的行可使用
#。
行级任务资源限定
脚本中每行任务可通过 // 符号后添加参数选项来覆盖该行任务的配置:
参数 |
描述 |
|---|---|
-c/–cpu |
该行任务申请的CPU资源 |
-m/–memory |
该行任务申请的内存资源 |
-q/–queue |
该行任务的SGE/Slurm队列 |
-N/–jobname |
该行任务名称,不要以数字开头 |
–mode |
该行任务运行方式: |
–node |
该行任务指定运行的节点 |
localhost运行的任务不需要指定运行资源。
任务依赖关系
shell任务支持简单的任务依赖,通过
wait关键字进行任务依赖限定。--groups/-g参数可将N行命令合并为一个任务组。--num/-n参数限定同时运行的最大任务数。
callback和init
--init和--callback支持在所有任务运行前/后执行指定命令。命令需要用引号引用。init和callback命令均强制localhost本地运行。callback可用于任务分析完成之后的结果汇总、回传或通知等场景。