斯舍德
通过 IBM® Spectrum LSF Session Scheduler提交任务。
概要
ssched [options] 命令描述
可以在 ssched 命令行或任务定义文件中的行上指定选项。 如果在命令行上指定了该选项,那么它将应用于所有任务,无论这些任务是在命令行上指定的还是在文件中指定的。 文件中指定的选项仅适用于该行上的命令。 任务定义文件中的选项覆盖在命令行上指定的相同选项。
Ssched 出口代码
- 0
- 所有任务都正常完成。
- 1
- 发生未指定的错误。
- 3
- 所有任务都已完成,但某些任务具有非零退出代码。
- 4
- 解析 ssched 命令行参数或任务定义文件时出错。 未运行任何任务。
- 5
- 超出 SSCHED_MAX_TASKS 参数指定的限制。
任务定义文件格式
[task_options] command [arguments]
选项
- -1 | -2 | -3
- 支持增加调试输出量。
- -C
- 请检查所有参数和任务定义文件。 检查完成后立即退出。 退出代码 0 指示未找到错误。 任何非零退出代码都指示错误。 ssched -C 命令可以在 LSF外部运行。
- -p
请勿删除临时工作目录。 当您诊断错误时,此选项很有用。
任务选项
- -E " 执行前命令 [ 参数...]"
- 在运行任务之前,在执行主机上运行指定的基于作业的执行前命令。
任务执行前行为模拟 LSF 作业执行前的行为。 但是,任务执行前命令无法以 root 用户身份运行。
执行前命令的标准输入和输出将定向到与作业相同的文件。 执行前命令在作业所在的用户标识,环境,主目录和工作目录下运行。 如果预执行命令不在用户的常规执行路径 ( $PATH 变量) 中,那么必须指定命令的完整路径名。
- -Ep " 执行命令后 [ 参数...]"
- 在任务完成后,在执行主机上运行指定的基于作业的执行后命令。
任务执行后行为会模拟 LSF 作业执行后的行为。 但是,任务执行后命令无法以 root 用户身份运行。
如果执行后命令不在用户的常规执行路径 ( $PATH 变量) 中,那么必须指定命令的完整路径名。
- -e 错误文件
- 请指定文件路径。 将作业的标准错误输出附加到指定文件。
如果 lsf.conf 文件中的参数 LSB_STDOUT_DIRECT 设置为 Y 或 y,那么任务的标准错误输出将写入您在任务运行时指定的文件。 如果未设置 LSB_STDOUT_DIRECT 参数,那么任务的标准错误输出将写入临时文件,并在任务完成后复制到指定文件。
可以在输出文件的名称中使用特殊字符 %J, %I, %T和 %X 。- %J
- 替换为作业标识。
- %I
- 已替换为作业数组下标。
- %T
- 已替换为任务标识。
- %X
- 替换为任务数组下标。
如果在作业启动后无法在执行主机上访问当前工作目录,那么 LSF Session Scheduler 会将标准错误输出文件写入 /tmp/。
注: 文件路径最多可包含 4094 个字符,包括%J, %I, %T和 %X的目录,文件名和展开值。 - -i 输入文件
- 从指定文件获取作业的标准输入。 指定绝对路径或相对路径。 输入文件可以是任何类型的文件,尽管它通常是 shell 脚本文本文件。
如果未指定 -i ,那么标准输入缺省为 /dev/null。
可以在输入文件的名称中使用特殊字符 %J, %I, %T和 %X 。- %J
- 替换为作业标识。
- %I
- 已替换为作业数组下标。
- %T
- 已替换为任务标识。
- %X
- 替换为任务数组下标。
注: 文件路径最多可包含 4094 个字符,包括%J, %I, %T和 %X的目录,文件名和展开值。 - -J 任务名称[ 索引列表]
- 指定任务数组的索引。 索引列表必须用方括号括起。 索引列表是一个以逗号分隔的列表,其元素的语法为 start[-end[:step]],其中 start, end 和 step 是正整数。 如果省略此步骤,那么将采用一个步骤。 任务数组下标从 1 开始。
数组中的所有任务都具有相同的选项参数。 数组的每个元素都通过其数组下标进行区分。
- -j 启动器 [ 启动器 ] ['%USRCMD'] [ 启动器 ]
- 任务作业启动程序。 在执行之前为已提交的任务创建特定环境。
作业启动程序是可用于启动任务的任何可执行文件 (即,它可以接受任务作为输入参数)。 (可选) 可以指定更多字符串。
缺省情况下,用户命令在作业启动程序之后运行。 可以使用特殊字符串 %USRCMD来表示用户任务在作业启动程序命令行中的位置。 %USRCMD 字符串可以后跟更多命令。
- -o 输出文件
- 请指定文件路径。 将任务的标准输出附加到指定的文件。 缺省值是输出到与 ssched 命令相同的 stdout 。
如果仅指定文件名,那么 LSF 会将输出文件写入当前工作目录。 如果在任务启动后无法在执行主机上访问当前工作目录,那么 LSF 会将标准输出文件写入 /tmp/。
如果 lsf.conf 文件中的参数 LSB_STDOUT_DIRECT 设置为 Y 或 y,那么任务的标准输出将写入您在任务运行时指定的文件。 如果未设置 LSB_STDOUT_DIRECT 参数,那么会将标准输出写入临时文件,并在任务完成后复制到指定的文件。
可以在输出文件的名称中使用特殊字符 %J, %I, %T和 %X 。- %J
- 替换为作业标识。
- %I
- 已替换为作业数组下标。
- %T
- 已替换为任务标识。
- %X
- 替换为任务数组下标。
注: 文件路径最多可包含 4094 个字符,包括 %J, %I, %T和 %X的目录,文件名和展开值。 - -M 内存限制
- 为属于该任务的所有进程设置每个进程的内存限制:
- 在修复包 15 之前,这是软内存限制。
- 从修补程序包 15 开始,这是硬性内存限制。
缺省情况下,以 KB 为单位指定限制。 使用 lsf.conf 文件中的 LSF_UNIT_FOR_LIMITS 参数为限制指定更大的单元 (MB , GB , TB , PB 或 EB)。
仅当任务级别内存限制小于作业限制时才设置该限制。
设置 LSF_CREATE_SS_TASK_MEMLIMIT 环境变量,确保该任务级内存限制生效。 您可以在运行 bsub 命令提交作业前导出此环境变量,也可以运行 bsub 命令,使用
-env "LSF_CREATE_SS_TASK_MEMLIMIT=Y"选项提交作业。 - -Q 退出代码..
- (截至修补程序包15)
-Q "all [~exit_code ...] | exit_code ..."对失败的任务启用自动任务重新排队,并设置 LSB_EXIT_REQUEUE 环境变量。 若使用此命令时采用该 -Q "exit_code ..." 语法,则需用空格分隔多个退出代码。 例如,
ssched -Q "3 15 99"该选项 ssched 指示命令自动重新排队退出代码为3、15和99的失败任务。 失败运行产生的输出不会被保存,且用户不会收到通知 LSF。从修补程序包 15 开始,您还可以使用 语法 ssched -Q "all [~exit_code ...] | exit_code ..." ,指定除具有特定退出代码的任务外,自动重新排队所有失败的任务。 例如,
ssched -Q "all ~0"该选项指示 ssched 命令自动将所有失败的任务重新加入队列,但退出代码为0的任务除外。 重新排队重试次数由 文件 SSCHED_REQUEUE_LIMITlsb.params 中定义的 控制。 - -W [分钟:]秒钟
- 设置任务的运行时限制。 如果任务运行时间超过指定的运行限制,那么将向任务发送SIGKILL信号。
运行限制的格式为 [minutes:]seconds。 可以将秒数指定为大于 59 的数字。 例如,可以将 3 分半钟指定为 3:30或 210。 您指定的运行限制是绝对运行时间。
- -任务 task_definition_file
- 通过任务定义文件指定任务。
- 命令 [自变量]
- 该命令可以是提供给 UNIX Bourne shell 的任何内容。 假定该命令以不是选项一部分的第一个单词开头。 命令后面的所有参数都作为命令的参数提供。
作业命令的长度最多可以为 4094 个字符。
- -h
- 将命令用法打印到 stderr 并退出。
- -V
- 将 LSF Session Scheduler 发行版打印到 stderr 并退出。
另请参阅
ssacct, lsb.params