斯舍德

通过 IBM® Spectrum LSF Session Scheduler提交任务。

概要

ssched [options] 命令
ssched [选项] -tasks task_definition_file
ssched [options] -tasks task_definition_file 命令
ssched [-h | -V]

描述

可以在 ssched 命令行或任务定义文件中的行上指定选项。 如果在命令行上指定了该选项,那么它将应用于所有任务,无论这些任务是在命令行上指定的还是在文件中指定的。 文件中指定的选项仅适用于该行上的命令。 任务定义文件中的选项覆盖在命令行上指定的相同选项。

Ssched 出口代码

0
所有任务都正常完成。
1
发生未指定的错误。
3
所有任务都已完成,但某些任务具有非零退出代码。
4
解析 ssched 命令行参数或任务定义文件时出错。 未运行任何任务。
5
超出 SSCHED_MAX_TASKS 参数指定的限制。

任务定义文件格式

任务定义文件是 ASCII 文件。 每行表示一个任务或一组任务。 每行的格式如下:
[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 设置为 Yy,那么任务的标准错误输出将写入您在任务运行时指定的文件。 如果未设置 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]],其中 startend 和 step 是正整数。 如果省略此步骤,那么将采用一个步骤。 任务数组下标从 1 开始。

数组中的所有任务都具有相同的选项参数。 数组的每个元素都通过其数组下标进行区分。

-j 启动器 [ 启动器 ] ['%USRCMD'] [ 启动器 ]
任务作业启动程序。 在执行之前为已提交的任务创建特定环境。

作业启动程序是可用于启动任务的任何可执行文件 (即,它可以接受任务作为输入参数)。 (可选) 可以指定更多字符串。

缺省情况下,用户命令在作业启动程序之后运行。 可以使用特殊字符串 %USRCMD来表示用户任务在作业启动程序命令行中的位置。 %USRCMD 字符串可以后跟更多命令。

-o 输出文件
请指定文件路径。 将任务的标准输出附加到指定的文件。 缺省值是输出到与 ssched 命令相同的 stdout

如果仅指定文件名,那么 LSF 会将输出文件写入当前工作目录。 如果在任务启动后无法在执行主机上访问当前工作目录,那么 LSF 会将标准输出文件写入 /tmp/

如果 lsf.conf 文件中的参数 LSB_STDOUT_DIRECT 设置为 Yy,那么任务的标准输出将写入您在任务运行时指定的文件。 如果未设置 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:30210。 您指定的运行限制是绝对运行时间。

-任务 task_definition_file
通过任务定义文件指定任务。
命令 [自变量]
该命令可以是提供给 UNIX Bourne shell 的任何内容。 假定该命令以不是选项一部分的第一个单词开头。 命令后面的所有参数都作为命令的参数提供。

作业命令的长度最多可以为 4094 个字符。

-h
将命令用法打印到 stderr 并退出。
-V
LSF Session Scheduler 发行版打印到 stderr 并退出。

另请参阅

ssacct, lsb.params