有几位读者在之前的高性能计算文章上留言,表示这个话题离主流开发人员太远。其实微软的DNA就是将复杂的东西变得简单,把给少数人群使用的能力传播给大多数人。因此节选了《微软高性能计算服务器》”第三章 使用作业调度系统“中两个实际操作章节与读者共享。
作业调度系统提供了许多作业提交和管理的方式。通过友好的界面,用户可以方便地提交和管理作业。通过应用编程接口,第三方软件商可以实现与作业调度器无缝集成。通过脚本和PowerShell功能,管理员可以编写各种方便最终用户运行应用的脚本文件。
本章要点
集群是Windows HPC Server 2008 R2的顶级单位。一个集群包含下列元素。
作业调度程序用于对作业及其任务排队。它为这些作业分配资源,启动集群计算节点上的任务,监视作业、任务和计算节点的状态。
博主注:本书附带光盘为Windows HPC Server 2008 R2试用软件安装盘,可为读者提供180天的免费试用。此处安装顺序略去。
第2章介绍了作业提交有多种方式。本章详细介绍3种方式:使用作业管理器;使用命令行和PowerShell;使用C#程序。
(1)开始-〉所有程序→Microsoft HPC Server 2008 R2→HPC Job Manager。
(2)在“操作”方框下,单击“新建参数扫描作业”,弹出“新建参数扫描作业”对话框,如图3-2所示。
图 3‑2 创建参数扫描任务
(3)在“任务名”文本框中,键入作业的名称“AsianOptions Valuation by Interest Rate”。
在“步骤1”中,键入起始值为“0”,最终值为“9”。
在“步骤3”中,键入命令行“AsianOptions.exe 1.0*”。
在“工作目录”文本框内,键入“\\<headnode>\Applications”(将<headnode>替换成您的头节点名)。
(4)预览参数清除任务。如果任务不是如图3-3所示,请进行更改,并再次预览。
图 3‑3 设置命令行、工作目录
注意:
设置任务访问必需数据的方式是在作业提交时获得最佳任务性能的一项重要因素。该设置应随数据集的大小和稳定性而异。如果数据集不会经常更改且相对较大,则应将其设置为任务的本地数据。如果数据集较小,可通过文件共享方式访问。如果数据集很大且会经常更改,则需将数据传送到节点。Windows HPC Server 2008 R2 支持并行和高性能的文件系统来提高对非常大的数据集的访问性能。通过指定工作目录,小型和中等数据集的用户将获得最佳的即用即取的体验。当任务开始时,计算节点将看到此工作目录中的所有文件并可正确处理该任务。
(5)单击“提交”按钮。此时,用户回到了作业管理器。 在所有作业列表内,您会看到作业正在运行。等几秒钟后,作业结束,如图3-4所示。
图 3‑4 监控参数扫描作业
(6)在任务标签下,双击如图3-4所示的“任务1.1-1.10”,弹出“查看作业”对话框,如图3-5所示。上面是所有的10个任务的列表。当选择一个任务的时候,可以看见计算结果在“输出”的文本框内,比如,如果选第四个任务,会看到如下的输出:“Option Price / interest rate (1.03) = 9.15572854540851”(注意:结果不一定完全一致,因为这里采用的是蒙特卡罗算法,结果有随机性),如图3-5所示。
图 3‑5 查看参数扫描任务细节
(1)启动命令提示符。
(2)键入“job submit /parametric:0-9 /workdir:\\shpc-0110\Applications AsianOptions.exe 1.0*”。此命令将输出作业的ID,如图3-6所示。
图 3‑6 使用命令行提交参数扫描作业
(3)监控作业状态:在命令提示符窗口里键入“job view 33”,结果如图3-7所示。
图 3‑7 使用命令行监控作业
(4)显示某任务输出结果:在命令提示符窗口里键入“task view 33.1.<参数扫描序列号>”。例如,看第四个任务输出,键入“task view 33.1.4”,按回车键,结果如图3-8所示。
图 3‑8 使用命令行显示输出结果
(1)启动HPC PowerShell:选择“开始-〉所有程序→Microsoft HPC Pack 2008 R2→HPC PowerShell”。
(2)在HPC PowerShell提示符下,键入“New-HpcJob”,按回车键,结果如图3-9所示。
图 3‑9 使用PowerShell创建作业
(3)然后,键入“Add-HpcTask -JobId 35 -Parametric -Start 0 -End 9 -WorkDir \\shpc-0110\Applications -CommandLine "AsianOptions.exe 1.0*”,按回车键,结果如图3-10所示。
图 3‑10 使用PowerShell添加任务
(4)键入“Submit-HpcJob -Id 35”,按回车键,结果如图3-11所示。
图 3‑11 使用PowerShell提交作业
(5)监控作业状态:键入“Get-HpcJob –Id 35”,按回车键,结果如图3-12所示。
图 3‑12 使用PowerShell监控作业
(6)显示任务结果输出:为显示第四个任务的结果,键入“Get-HpcTask -JobId 35 -TaskId 1 -SubTaskId 4 |fl”,按回车键,结果如图3-13所示。
图 3‑13 使用PowerShell显示作业输出结果
作业调度器命令行和PowerShell使用小结如表3-1所示
表 3‑1 作业调度器命令行和Powershell使用小结
操作
命令行
PowerShell
创建和提交作业
Job submit
New-HpcJob, Add-HpcTask, Submit-HpcJob
显示活跃(等待和运行)状态下列表
Job list
Get-HpcJob
显示所有状态下的作业列表
Job list /all
Get-HpcJob –Owner * -State All
显示一个作业的细节
Job view <JobID>
Get-HpcJob –Id <JobID>
显示一个作业所有的任务
Job listtasks <JobID>
Get-HpcTask –JobId <JobID>
显示一个参数扫描任务的细节
Task view <JobID>.<TaskID>.<SubTaskId>
Get-HpcTask –JobId <JobID> -TaskId <TaskID> -SubTaskId <SubTaskId> | fl
Good post ming