【IT168 专稿】在"作业管理"中,可以监视、管理和提交群集作业。所有作业都必须有关联的作业模板。HPC 群集管理器提供了几个图表和报告,用于跟踪群集的作业统计信息。
了解作业和任务
Windows HPC Server 2008 作业是提交到 HPC 作业计划程序服务的资源请求,其中包含一个或多个任务。作业会请求"在 Z 时间量内使用 X 数量的 Y 资源"。例如,作业可能会请求使用"有大量内存"组中的八个节点两个小时。将作业提交到 HPC 作业计划程序服务后,作业将被放入队列中,它将在队列中等待,直到运行其任务所需的资源可用为止。
在 Windows HPC Server 2008 中,任务是作业运行的不连续命令。任务可以直接运行应用程序,也可以由执行多个活动的批处理文件或脚本组成。任务属性定义了任务所需的运行方式。任务可以包括属性,例如要使用的输入、输出和错误文件。在需要的节点、需要的处理器数量、运行时间限制和节点独占性方面,您也可以指定类似于作业属性的任务属性。
1、了解作业类型
可以在 Windows HPC Server 2008 中运行的最常见并行计算作业类型有:"MPI 作业"、"参数清除作业"和"任务流作业"。以下几部分将介绍这三种作业类型:
MPI 作业
参数清除作业
任务流作业
注意
这三种作业类型并不是互斥的。一项作业可以包含多项任务,其中一些是参数任务、一些是序列任务,另外一些是并行任务。例如,可以创建一项由 MPI 任务和参数任务组成的任务流作业。
A、MPI 作业
MS-MPI 是为 Windows 开发的消息传递接口 (MPI) 的 Microsoft 实施,它允许 MPI 应用程序在 HPC 群集上作为任务运行。对于运行 MPI 应用程序的任务,mpiexec 必须在任务命令之前。
MPI 任务本质上是并行的。并行任务可以有多种形式,具体决于支持它的应用程序和软件。对于 MPI 应用程序,并行任务通常由在多个内核上同时运行的单个可执行文件组成,各个进程之间存在通信。
下图展示了一项并行任务:(图1)
B、参数清除作业
参数清除作业由同时运行的同一应用程序(通常是序列应用程序)的多个实例组成,其输入由输入文件提供,输出定向到输出文件。输入和输出通常是一组索引文件(例如,input1、input2、input3...,output1、output2、output3...),这些文件驻留在一个公共文件夹或若干个独立的公共文件夹中。这些任务之间不存在通信或相关性。这些任务可以并行运行,也可以不并行运行,具体取决于作业运行时群集上可用的资源。
下图展示了一项参数清除作业:(图2)
C、任务流作业
在任务流作业中,通常由于一项任务依赖于另一项任务的结果,会按指定顺序运行一组不同的任务。可以通过定义任务之间的相关性来建立任务的运行顺序。
下图展示了一项任务流作业:(图3)
任务 1 首先运行。请注意,由于任务 2 和 3 不相互依赖,所以只有这两者可以并行运行。任务 4 在任务 2 和 3 全部完成后才运行。
2、了解作业和任务属性
下表列出了您可以设置的所有作业和任务属性。这些属性定义了作业和任务的运行方式。
这些属性的默认值由作业模板定义。
作业属性
作业属性 | 说明 |
作业 ID | 作业的数字 ID。创建作业时,HPC 作业计划程序服务会分配此数字。 |
作业名称 | 作业的名称。 |
模板 | 用于提交作业的作业模板的名称。作业模板是由群集管理员创建的用于定义应用程序作业参数的自定义提交策略。有关详细信息,请参阅作业模板。 |
项目 | 作业所属的项目的名称。 |
优先级 | 作业的优先级。值选项包括: · 最低 · 较低 · 正常 · 较高 · 最高 |
运行时间 | 作业可以运行的时间量 (dd:hh:mm)。如果在达到指定的运行时间之后任务仍在运行,则 HPC 作业计划程序服务会自动取消该任务。 |
一直运行,直到取消 | 如果为“True”,则作业将一直运行,直到被取消或其运行时间过期。没有其余任务时,它不会停止。 |
任务失败时失败 | 如果为“True”,则作业中的任何任务失败都会导致整个作业立即失败。 |
内核数 | 作业需要的内核数。可以设置最小值和最大值,或选择“自动计算”,让 HPC 作业计划程序服务根据作业的任务自动计算所需内核的最小和最大数目。 |
套接字数 | 作业需要的套接字数。可以设置最小值和最大值,或选择“自动计算”,让 HPC 作业计划程序服务根据作业的任务自动计算所需套接字的最小和最大数目。 |
节点数 | 作业需要的节点数。可以设置最小值和最大值,或选择“自动计算”,让 HPC 作业计划程序服务根据作业的任务自动计算所需节点的最小和最大数目。 |
独占 | 如果为“True”,则其他作业不能与此作业同时在计算节点上运行。 |
节点组 | 节点组的列表。作业只能在属于所有列出组的成员的节点上运行。例如,如果列出的组为“Have Application X”和“Have Big Memory”,则节点必须同时属于这两个组。 |
请求的节点 | 节点的列表。作业只能在此列表所包含的节点上运行。 |
内存 | 运行作业的任何节点必须拥有的最低内存量 (MB)。 |
每节点内核数 | 运行作业的任何节点必须拥有的最少内核数。 |
节点排序 | 选择作业的节点时使用的顺序。此属性可以让具有特定属性的节点排在前面。此属性可以让具有特定属性的节点排在前面。值选项包括: · 更多内存 · 更多内核 · 更少内存 · 更少内核 |
许可证 | 作业需要的许可证的列表。可以通过群集管理员定义的作业激活筛选器对此列表中的值进行验证。 |
可取代 | 如果为“True”,则该作业可被具有更高优先级的作业取代。如果为“False”,则该作业不能被取代。 |
任务属性
任务属性 | 说明 |
任务 ID | 任务的数字 ID。创建任务时,HPC 作业计划程序服务会分配此数字。 |
任务名称 | 任务的名称。 |
命令行 | 对任务运行的命令。可执行文件的路径相对于任务的工作目录。通过 Microsoft 消息传递接口 (MS-MPI) 处理并行任务的作业需要使用 mpiexec 命令,因此并行任务的命令必须采用以下格式:mpiexec [mpi_options] <myapp.exe> [arguments],其中 myapp.exe 为要运行的应用程序的名称。 |
工作目录 | 任务运行时使用的工作目录。 |
标准输入 | 应从中读取任务输入的文件的路径(相对于任务的工作目录)。 |
标准输出 | 任务的输出应写入到的文件的路径(相对于任务的工作目录)。 |
标准错误 | 任务的错误应写入到的文件的路径(相对于任务的工作目录)。 |
内核数 | 任务需要的内核数。可以设置此属性的最小值和最大值。 |
独占 | 如果为“True”,则其他任务不能与此任务同时在计算节点上运行。 |
可重新运行 | 如果任务运行且失败,并且“可重新运行”为“True”,则 HPC 作业计划程序服务将尝试重新运行该任务。如果“可重新运行”为“False”,则在第一次运行尝试失败之后,任务即失败。 |
运行时间 | 任务可以运行的时间量 (dd:hh:mm)。如果在达到指定的运行时间之后任务仍在运行,则 HPC 作业计划程序服务会自动取消该任务。 |
环境变量 | 指定要在任务的运行时环境中设置的环境变量。环境变量必须采用以下格式,并由逗号分隔:name1=value1。 |
必需的节点 | 列出为了让任务运行而必须分配给任务及其作业的节点。此列表中的所有节点将全部分配给此任务。也就是说,如果节点有八个内核,则这八个内核都会分配给此任务。 |
清除开始索引* | 参数清除任务的开始索引。索引可以应用到应用程序实例、工作目录,还可以应用到输入、输出和错误文件(如果已指定)。要应用索引,必须在命令行和文件名中包括通配符 (*)。例如,myTask.exe * 和 myInput*.dat。 |
清除结束索引* | 参数清除任务的结束索引。索引可以应用到应用程序实例、工作目录,还可以应用到输入、输出和错误文件(如果已指定)。要应用索引,必须在命令行和文件名中包括通配符 (*)。例如,myTask.exe * 和 myInput*.dat。 |
清除增量 | 在每个清除步骤参数清除索引增加的数量。索引可以应用到应用程序实例、工作目录,还可以应用到输入、输出和错误文件(如果已指定)。要应用索引,必须在命令行和文件名中包括通配符 (*)。例如,myTask.exe * 和 myInput*.dat。 |
3、了解作业和任务状态
在 Windows HPC Server 2008 中,作业和任务有几乎相同的生命周期状态(任务没有"外部验证"状态)。主要的生命周期状态包括"正在配置"、"已排队"、"正在运行"、"已完成"、"失败"和"已取消"。作业和任务也经过短暂的过渡状态。
HPC 作业计划程序服务可以对作业和任务进行排队、分配资源、为计算节点分派任务,以及监视作业、任务和节点的状态。
状态 | 定义 |
正在配置 | 作业或任务位于系统中,但还未提交到队列。 |
已提交 | 作业或任务已提交且正在等待验证,然后才能进行排队。 |
外部验证 | 作业正在通过群集管理员定义的提交筛选器应用程序运行这些筛选器的条件示例包括: · 项目验证:此条件用于验证项目名称是否为有效项目的名称,且用户是否属于该项目的成员。 · 使用时间:此条件用于确保没有超出用户的时间分配。与强制性策略不同,该筛选器将作业限制到用户对所有可能作业所拥有的总时间分配内。 如果作业通过了外部验证,则其状态会变为“正在验证”。如果作业未通过外部验证,您会收到错误消息,且作业状态会变为“失败”。 |
正在验证 | HPC 作业计划程序服务正在验证作业或任务。在验证期间,HPC 作业计划程序服务会确认权限、为您未指定的所有属性应用默认设置,以及对照约束验证每个属性。默认设置和约束由作业模板定义。HPC 作业计划程序服务还会确认作业属性是否涵盖所有任务属性(例如,没有任何任务的运行时间长于作业的运行时间)。 如果作业通过验证,则其状态会变为“已排队”。如果作业未通过验证,您会收到错误消息,且作业状态会变为“失败”。 |
已排队 | 作业或任务通过了验证,且正在等待安排和激活(运行)。 |
正在运行 | 作业或任务正在一个或多个节点上运行。 |
即将完成 | 作业或任务已完成,正在进行作业或任务清除。 |
已完成 | 作业或任务已成功完成。 |
失败 | 作业或任务未能完成。 |
正在取消 | 作业或任务已取消,正在进行清除。 |
已取消 | 作业或任务已取消。作业所有者和群集管理员可以手动取消作业或任务。如果任务超过其运行时间或被取代,HPC 作业计划程序服务会取消这些任务。通常,HPC 作业计划程序服务会自动对被取代的作业进行重新排队。 |