了解作业和任务属性

下表包含可在 HPC 作业管理器中设置的所有作业和任务属性的列表。 这些属性定义作业和任务如何运行。

注意

作业模板由群集管理员为不同类型的作业创建。 作业模板定义作业属性的默认值和约束。 根据为作业选择的作业模板,你可能会看到作业属性的可用值的差异。 例如,一个模板可能允许 优先级 值的完整范围,另一个模板可能只允许 Normal 或更低版本的值。

在本主题中:

作业属性

Job 属性 描述
作业 ID 作业的数值 ID。 作业计划程序在创建作业时分配此编号。
作业名称 作业的用户分配名称。 此属性的最大长度为 128 个字符。
作业模板 用于提交作业的作业模板的名称。 创建作业时,作业模板 下拉列表显示可用的模板。 作业模板由群集管理员为不同类型的作业创建。 作业模板定义作业属性的默认值和约束。 为新作业选择作业模板后,“新建作业”对话框中的作业属性的可用值会相应地更改。 例如,优先级 下拉菜单仅显示所选模板下有效的优先级级别,并且运行时设置不能高于定义的最大值。 有关详细信息,请参阅 了解作业模板 - 作业管理器注意: 群集管理员可以指定有关哪些用户可以使用特定作业模板的权限。 有关有权访问和应使用的作业模板的信息,请联系群集管理员。
项目 作业所属的项目的名称。 此属性的最大长度为 128 个字符。

在某些情况下,群集管理员可能会为特定作业模板定义项目名称列表。 如果选择的作业模板包含项目名称列表,则名称将显示在 Project 下拉列表中。
优先权 作业的优先级。 优先级和提交时间有助于确定作业何时运行,以及作业将获取的资源数。 可以根据优先级带、优先级编号或两者的组合来指定优先级。 优先级带及其对应的数值如下所示:

- 最低 (0)
- BelowNormal (1000)
- 正常 (2000)
- AboveNormal (3000)
- 最高 (4000)

数值优先级可以具有介于 0(最低)和 4000(最高) 之间的值。 如果以数字方式输入值,它将显示为相应的优先级带或组合。 例如,如果指定值 2500,则优先级显示为 Normal+500注意: 按优先级带筛选作业时,带的数值被视为范围的中间值。 筛选器返回带值减去 499 和带值加上 500 之间的优先级的作业。 例如,如果筛选作业列表以查看 普通 优先级作业,筛选器将返回具有介于 1501-2500 之间的数值优先级的作业。 使用 HPC API 筛选作业列表时,此行为会发生变化。 使用 HPC API 按优先级带筛选作业时,带值被视为范围的开头。 筛选器返回带值与带值加上 999 之间的优先级的作业。 例如,如果将筛选器定义为 filter.Add(FilterOperator.Equal, PropId.Job_Priority, JobPriority.Normal);,筛选器将返回 2000-2999 之间的数值优先级为的作业。
运行时 允许运行作业的时间量(dd:hh:mm)。 如果任务在达到指定的运行时后仍在运行,作业计划程序会自动取消该任务。

作业的总运行时包括 节点准备节点发布和主要任务。 有关详细信息,请参阅 了解任务类型 - 作业管理器

如果作业具有最长的运行时和 节点发布 任务,则作业计划程序会在作业运行时过期之前取消作业中的其他任务(作业运行时减去 节点发布 任务运行时)。 这允许 节点发布 任务在作业的分配时间内运行。
运行到取消 如果 True,则作业将运行到取消或运行时间过期为止。 当没有剩余的任务时,它不会停止。
任务失败时失败 如果 True,则作业中任何任务的失败会导致整个作业立即失败。
在启动时通知 如果 True,则可以在作业启动时收到电子邮件或其他通知。 群集管理员必须在群集上启用通知。
完成时通知 如果 True,则可以在作业完成时收到电子邮件或其他通知。 群集管理员必须在群集上启用通知。
核心数 作业所需的核心数。 可以设置最小值和最大值,或选择 自动计算 让作业计划程序根据作业的任务自动计算所需核心的最小值和最大数目。
套接字数 作业所需的套接字数。 可以设置最小值和最大值,或选择 自动计算 让作业计划程序根据作业的任务自动计算所需套接字的最小和最大数目。
节点数 作业所需的节点数。 可以设置最小值和最大值,或选择 自动计算 让作业计划程序根据作业的任务自动计算所需节点的最小值和最大值。
独家 如果 True,则其他任何作业都不能与此作业同时在计算节点上运行。
节点首选项 (节点组运算符) 作业计划程序使用节点组将资源分配给作业的方式。 以下首选项可用:

- 仅在属于以下所有组(交集) - 的节点上运行
作业应仅在属于列表中所有节点组的节点上运行。 例如,如果节点的节点组至少有 4 GB(GB)的内存,以及至少具有 8 个核心的节点的另一个节点组,则指定这些节点组,并且此首选项用于在至少具有 4 GB 内存和至少 8 个核心的节点上运行应用程序。
- 在属于以下任一节点组(统一) 的节点上运行 - 作业应仅在列表中所有节点组所属的节点上运行。 例如,此首选项对于包含本地计算节点和 Windows Azure 节点的混合群集非常有用。 你可能希望在任一环境中运行应用程序,但不允许应用程序同时跨本地和 Windows Azure 节点。
- 在属于以下任何组(联合) 的成员的节点上运行 - 作业可以在属于列表中任何节点组的节点上运行。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。
在单个节点上运行 如果 True,请在单个节点上运行作业,而不保留节点的所有核心。 例如,可以指定此作业应至少在 2 个内核和 4 个核心上运行,但仍必须在单个节点上运行。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。
节点组 一个节点组列表,可帮助定义此作业的候选资源。 在 HPC Pack 2008 R2 中,作业只能在所有列出的组成员的节点上运行。 例如,如果列出组“具有应用程序 X”和“具有大内存”,则节点必须属于这两个组。 在 “新建作业” 对话框中,选择一个或多个节点组会筛选节点选择列表中可用的节点。 如果列表中未显示任何节点,则表示没有属于所有指定组的节点。

在 HPC Pack 2012 中,节点首选项设置确定节点组中的所有节点或子集是作业的候选资源。

以下是可用于运行作业的默认节点组:

- 计算节点
- 工作站节点
- AzureNodes(在 HPC Pack 2008 R2 中引入 Service Pack 1(SP1)
- UnmanagedServerNodes(在 HPC Pack 2008 R2 中引入 Service Pack 3 (SP3)

群集管理员可以创建其他自定义节点组,并将节点分配给一个或多个组。 群集管理员可以随时更改节点组成员身份,这可能会影响可用资源。 如果任务在不再属于指定节点组的节点上运行,则会取消该任务。 如果不再需要运行作业所需的最低资源,则会重新排队作业。
请求的节点 节点列表。 作业只能在此列表中的节点上运行。
记忆 作业运行的任何节点上必须存在的最小内存量(以 MB 为单位)。
每个节点的核心数 作业运行的任何节点上必须存在的最小核心数。
节点排序 为作业选择节点时要使用的顺序。 此属性根据节点的可用内存或核心资源提供首选项。 值选项包括:

- 更多内存
- 更少的内存
- 更多核心
- 更少的核心数
许可证 作业所需的许可证列表。 此列表中的值可以通过群集管理员定义的作业激活筛选器进行验证。
环境变量 在作业的所有任务的上下文中设置的环境变量名称和值对的列表。 名称的最大长度为 128 个字符。 该值没有最大长度。

如果为同一环境变量设置了不同的值,则环境变量层次结构将确定任务上下文中使用的值。 例如,如果将 %TMP% 设置为作业和任务变量,则任务变量的值优先于该特定任务的上下文中。

用于群集上运行的任务的层次结构如下所示:

1. 任务
2. 作业
3. 群集范围
4. 用户
5. 系统
退出代码 指示任务成功完成的一个或多个数字代码的列表。 如果未指定列表,则 0 是唯一指示成功的任务退出代码。 如果指定,则成功退出代码列表适用于作业中的所有任务,除非通过为任务本身指定其他值来替代该列表。 注意: 默认作业成功退出代码 0。 如果清除此字段,则退出代码设置为 0(默认值)。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。
取决于作业 作业列表(按 ID 列出,需要在作业开始运行之前完成)。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。
保留作业,直到 作业排队的日期和时间。 任何用户可以设置此属性,并且可以在作业开始运行之前随时更改此属性。 重要提示: 运行作业后,保留作业,直到清除 属性。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。
每个进程估计的内存 估计作业中进程将使用的最大内存量(以 MB 为单位)。 作业计划程序只考虑在至少指定内存量的节点上运行作业。

可以选择一个值,该值位于为作业的模板指定的值范围内。 如果有效,则值为 0,指示作业计划程序不会根据作业的内存要求将作业分配给节点。

有关详细信息,请参阅 设置 Memory-Aware 计划 - 作业管理器注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。

可以使用 HPC Power Shell 或在命令提示符窗口中设置其他几个作业属性。 例如,可以指定要从作业中排除的节点或手动设置作业进度或进度消息。 无法在 HPC 作业管理器中设置这些属性,但可以通过显示相应的列在作业列表中查看这些属性。 有关详细信息,请参阅 为作业定义排除的节点 - 作业管理器从脚本文件 - 作业管理器设置进度和进度消息作业属性。

任务属性

Task 属性 描述
任务 ID 任务的数值 ID。 创建任务时,作业计划程序会分配此编号。
任务名称 任务的用户分配名称。 此属性的最大长度为 128 个字符。
类型 帮助定义如何运行命令。 任务 类型 的默认值为 “基本”。 基本 任务运行一次命令。 其他任务类型创建每个运行命令实例的子任务。 一个任务最多可以包含 1,000,000 个子任务。 有关详细信息,请参阅 了解任务类型 - 作业管理器

类型 可以具有以下值:

- 基本
- 参数扫描
- 节点准备
- 节点发布
- 服务
命令行 为任务运行的命令。 可执行文件的路径相对于任务的工作目录。 有关详细信息,请参阅 了解应用程序和数据文件 - 作业管理器

通过Microsoft®消息传递接口(MS-MPI)处理并行任务的作业需要使用 mpiexec 命令,因此并行任务的命令必须采用以下格式:mpiexec [mpi_options] <myapp.exe> [arguments],其中 myapp.exe 是要运行的应用程序的名称。

在包含子任务的任务中,可以使用星号 “、” 字符作为参数扫描索引(在 参数扫描 任务中)或子任务 ID(在 服务节点准备节点发布 任务)的占位符。 例如,在第一个子任务中,echo * 被解释为 echo 1(或在 参数扫描 任务中解释为第一个索引值)。

可以包含多个星号 \ 来指示在表示索引或子任务数时要使用的最小位置数。 这不会限制需要更多位置的数字。 例如,echo **** 解释为第一个子任务的 echo 0001

若要运行使用星号 ^的命令,请包含插入符号 (^) 作为转义字符。 例如,若要创建从文件夹中删除所有文件的 Node Release 任务,可以使用如下所示的命令:

delete c:\temp\^*
工作目录 任务运行时要使用的工作目录。 在包含子任务的任务中,可以使用星号 “、” 字符作为参数扫描索引(在 参数扫描 任务中)或子任务 ID(在 服务节点准备节点发布 任务)的占位符。 有关详细信息,请参阅 了解应用程序和数据文件 - 作业管理器
标准输入 从中读取任务输入的文件的路径(相对于任务的工作目录)。 此属性的最大长度为 160 个字符。

在包含子任务的任务中,可以使用星号 “、” 字符作为参数扫描索引(在 参数扫描 任务中)或子任务 ID(在 服务节点准备节点发布 任务)的占位符。 有关详细信息,请参阅 了解应用程序和数据文件 - 作业管理器
标准输出 任务输出应写入到的文件的路径(相对于任务的工作目录)。 此属性的最大长度为 160 个字符。

在包含子任务的任务中,可以使用星号 “、” 字符作为参数扫描索引(在 参数扫描 任务中)或子任务 ID(在 服务节点准备节点发布 任务)的占位符。 有关详细信息,请参阅 了解应用程序和数据文件 - 作业管理器

如果未指定 标准输出标准错误,则结果将定向到 HPC 作业计划程序服务数据库,并显示为任务的输出和错误字段。 每个任务最多存储 4000 个字符的数据。 在 HPC Pack 2012 中,存储最近 4000 个字符的数据。 在 HPC Pack 2008 R2 中,超出前 4000 个字符的任何其他数据将被截断。
标准误差 任务错误写入到的文件的路径(相对于任务的工作目录)。 此属性的最大长度为 160 个字符。

在包含子任务的任务中,可以使用星号 “、” 字符作为参数扫描索引(在 参数扫描 任务中)或子任务 ID(在 服务节点准备节点发布 任务)的占位符。 有关详细信息,请参阅 了解应用程序和数据文件 - 作业管理器

如果未指定 标准输出标准错误,则结果将定向到 HPC 作业计划程序服务数据库,并显示为任务的输出和错误字段。 每个任务最多存储 4000 个字符的数据。 在 HPC Pack 2012 中,存储最近 4000 个字符的数据。 在 HPC Pack 2008 R2 中,超出前 4000 个字符的任何其他数据将被截断。
核心数 任务所需的核心数。 可以为此属性设置最小值和最大值。
独家 如果 True,则无法与任务同时在计算节点上运行其他任务。
可重新运行 如果 True,则作业计划程序可能会尝试在任务被抢占或由于群集问题(例如节点无法访问)而失败时重新运行该任务。 如果 可重新运行False,则第一次运行尝试失败后任务将失败。 注意: 作业计划程序不会尝试重新运行运行到完成的任务,并返回一个指示失败的退出代码(默认情况下,任何非零退出代码)。 在 HPC Pack 2012 中,可以为单个任务或作业中的所有任务定义成功错误代码。
运行时 允许任务运行的时间量(dd:hh:mm)。 如果任务在达到指定的运行时后仍在运行,作业计划程序会自动取消该任务。
环境变量 指定要在任务的运行时环境中设置的环境变量。 环境变量的格式必须用逗号分隔:name1=value1。 名称的最大长度为 128 个字符。 该值没有最大长度。

还可以在作业级别设置环境变量。 作业级别环境变量是在作业的所有任务的上下文中设置的。

如果为同一环境变量设置了不同的值,则环境变量层次结构将确定任务上下文中使用的值。 例如,如果将 %TMP% 设置为作业和任务变量,则任务变量的值优先于该特定任务的上下文中。
所需的节点 列出必须分配给任务及其作业才能运行任务的节点。
扫描开始索引* 参数扫描任务的起始索引。 索引可以应用于应用程序的实例、工作目录以及输入、输出和错误文件(如果指定)。 要应用索引,必须在命令行和文件名中包含星号 \ 。 例如,myTask.exe *myInput*.dat
扫描结束索引* 参数扫描任务的结束索引。 索引可以应用于应用程序的实例、工作目录以及输入、输出和错误文件(如果指定)。 要应用索引,必须在命令行和文件名中包含星号 \ 。 例如,myTask.exe *myInput*.dat
扫描增量 在扫描的每个步骤中递增参数扫描索引的量。 索引可以应用于应用程序的实例、工作目录以及输入、输出和错误文件(如果指定)。 要应用索引,必须在命令行和文件名中包含星号 \ 。 例如,myTask.exe *myInput*.dat
取决于任务 按 ID 分配给定义任务运行顺序的组的任务列表。 有关详细信息,请参阅 定义任务依赖项 - 作业管理器
任务退出代码 指示任务成功完成的一个或多个数字代码的列表。 如果未指定列表,则 0 是唯一的任务退出代码。 注意: HPC Pack 2012 中引入了此属性。 它在以前的版本中不可用。

其他参考