【IT168 专稿】作业为用户访问由其 Windows HPC Server 2008 群集提供的计算资源提供了一种方法。作业可以通过各种不同界面提交到系统。将作业提交到计划程序时,作业将被放入队列中,直到所分配资源可用为止,然后这些资源运行作业中的任务。
作业和任务概述
Windows HPC Server 2008 作业是资源请求。作业会请求"在 Z 时间量内使用 X 数量的 Y 资源"。例如,作业可能会请求使用"有大量内存"组中的八个节点两个小时。
作业在计划程序队列中等待的时间取决于多种因素,包括:
作业需要什么资源
当前正在运行什么作业
队列中有其他什么作业
由群集管理员配置的计划策略
可通过以下方式减少作业必须在队列中等待的时间量:
使用高优先级提交作业
为作业指定准确的最长运行时间
请求尽可能少的资源
不限定所需资源的类型
将资源分配给作业时,计划程序使用这些资源执行作业中的任务。任务是一个要执行的命令,以及有关该命令所需运行方式的某些相关信息。
作业可包含一个任务、多个任务,或无任务(这解释为:"为我预留一些资源,稍后我将想出如何使用它们")。作业中的任务可以完全独立,也可能互相依赖并需要以特定顺序运行。可以通过定义任务之间的相关性来建立任务的运行顺序。
有两种类型的任务:
基本任务 带有某些有关如何运行任务的元数据的命令行。例如,若要运行消息传递接口 (MPI) 应用程序,可创建基本任务,其中命令为 mpiexec [mpi_options] <myapp.exe> [arguments],且该任务请求跨越多个节点的多个资源。
参数任务 包含通配符 (*) 的命令。例如,<myapp.exe * > [arguments]。命令运行多次,每个实例使用不同值替换该通配符。
提交作业
在 Windows HPC Server 2008 中,提交作业有三个基本步骤:
创建新的作业。
为作业指定相应的作业模板。
提供有关作业的资源要求的详细信息。
将任务添加到作业。
提交作业。
可以使用 HPC 作业管理器、命令提示符窗口或 HPC PowerShell 创建作业。
注意:可以通过创建使用 HPC 基本配置文件 Web 服务的客户端,从其他操作系统或其他编程语言提交作业。
示例作业提交
为演示如何将作业提交到 Windows HPC Server 2008,本示例创建一个名为"Data File Processing"的作业。该作业包含一个参数任务(一个将针对不同数据集运行多次的任务),并具有以下属性:
它使用"默认"作业模板。
其运行不超过 10 分钟。
其运行所需处理器数不超过四个。
它对 200 个输入文件(input1.dat、input2.dat … input200.dat)运行 ProcessFile.exe。
本主题显示如何使用三个主要用户界面提交示例作业:
使用 HPC 作业管理器提交作业
使用命令提示符窗口提交作业
使用 HPC PowerShell 提交作业
要点:若要提交作业,您必须已在群集上添加为用户,或必须为已在群集上添加为用户的域组的成员。详细信息,请联系您的群集管理员。
使用 HPC 作业管理器提交作业
步骤 1:创建新的作业
新建作业的步骤
打开"HPC 作业管理器":
单击"开始",指向"所有程序",单击 Microsoft HPC Pack,然后单击"HPC 作业管理器"。
在"操作"窗格中,单击"新建作业"。
在"新建作业"对话框的左窗格中,单击"作业详细信息",然后提供作业的以下详细信息:
在"作业名称"文本框中,键入 Data File Processing。
在"作业模板"下拉列表中,选择"默认"。
在"作业运行选项"下,选中"不要运行此作业超过"复选框,然后选择"0 天"、"0 小时"和"10 分钟"。
在"作业资源"的"选择用于请求此作业的资源类型"下拉列表中,选择"内核"。在"最小"下,保留选中默认"自动计算"。在"最大"下,将值设置为 4。
步骤 2:将任务添加到作业
将任务添加到作业
在"新建作业"对话框的左窗格中,单击"任务列表"。
指向"添加"按钮,单击下箭头,然后单击"参数任务"
在"参数任务"对话框中,通过设置以下值将清除索引设置为运行从 1 至 200,增量为 1(这将创建 200 个步骤,指数为 1、2、3、4 ... 200):
将"开始值"设置为 1。
将"结束值"设置为 200。
将"增加值"设置为 1。
可以在对话框底部的"预览清除"下验证索引序列。
在"命令行"中,键入 ProcessFile.exe *。(此命令将运行 200 次,编号为 1 至 200 以替换清除中每个步骤的 * 字符)。
在"标准输入"文本框中,键入 input*.dat。(通配符 (*) 将清除索引应用于输入文件。)
单击"保存"将任务添加到作业并关闭"参数任务"对话框。
步骤 3:提交作业
提交作业的步骤
在"命令提示符"窗口中,键入以下命令:
job submit /id:<myJobID>
系统提示时,键入密码,然后按 Enter(键入密码时光标不移动且无字符出现)。
此命令产生以下输出:
Job has been submitted. ID: <myJobID>.
继续执行检查作业或任务的状态。
使用 HPC PowerShell 提交作业
步骤 1:创建新的作业
新建作业的步骤
打开 HPC PowerShell:
单击"开始",指向"所有程序",单击 Microsoft HPC Pack,然后单击 HPC PowerShell。
创建新的作业并提供作业的详细信息。请注意,参数 -numcores 将最小内核数设置为"自动计算",且将最大内核数设置为 4。键入以下命令:
New-HpcJob -TemplateName "Default" -Name "Data File Processing" -RunTime "0:0:10" -NumCores *-4
此命令产生以下输出(其中 myJobID 为 HPC 作业计划程序服务分配给该作业的 ID):(图1)

步骤 2:将任务添加到作业
使用运行至 200(默认递增为 1)的清除索引添加参数任务。命令 ProcessFile.exe 将运行 200 次,指数为 1、2、3、4 ... 200。使用通配符 (*) 将清除索引应用于输入文件和命令行。在 HPC PowerShell 中,键入以下命令(其中 myJobID 为您在上一步骤中创建的作业的 ID):
Add-HpcTask -JobId <myJobID> -Parametric -End 200 -Stdin "input*.dat" -CommandLine "ProcessFile.exe *"
此命令产生以下输出(其中 myJobID 为您在添加任务命令中指定的作业的 ID):(图2)

步骤 3:提交作业
提交作业的步骤
在 HPC PowerShell 中,键入以下命令:
Submit-HpcJob -Id <myJobID>
系统提示时,键入密码,然后按 Enter(键入密码时光标不移动且无字符出现)。
此命令产生以下输出:(图3)

继续执行检查作业或任务的状态。
检查作业或任务的状态
在提交作业之后,可以使用 HPC 作业管理器、命令提示符窗口或 HPC PowerShell 查看其状态。
在 HPC 作业管理器中查看作业或任务的状态
在"导航"窗格中,选择以下各组作业之一:
若要显示系统中所有未完成的作业:在"所有作业"下,单击"活动"。
若要显示所有已提交的作业,请单击"我的作业"。
作业列表将出现在中心窗格中。单击"数据文件处理"(上一主题中创建的示例作业)。
该作业中的任务将出现在"详细信息窗格"中。选中"扩展参数任务"复选框。在参数清除中的 200 个任务将显示为 200 个单独的命令。
查看任务结果:
双击任务以查看其详细信息和结果。对于早期提交的作业,应显示错误消息,从而说明命令 ProcessFile.exe 未被识别。(还可以双击作业以查看任务的详细信息和结果)。
从命令提示符窗口或 Windows PowerShell 查看作业或任务
若要从命令提示符窗口或 HPC PowerShell 查看作业或任务的状态,请键入下表中的相应命令。