如何在Windows HPC Server R2 中使用提交作业
2010-11-12 16:10
363 查看
有几位读者在之前的高性能计算文章上留言,表示这个话题离主流开发人员太远。其实微软的DNA就是将复杂的东西变得简单,把给少数人群使用的能力传播给大多数人。因此节选了《微软高性能计算服务器》”第三章 使用作业调度系统“中两个实际操作章节与各位博客园的读者共享,祝大家周末愉快!
作业调度系统提供了许多作业提交和管理的方式。通过友好的界面,用户可以方便地提交和管理作业。通过应用编程接口,第三方软件商可以实现与作业调度器无缝集成。通过脚本和PowerShell功能,管理员可以编写各种方便最终用户运行应用的脚本文件。
本章要点
理解作业管理器的概念和使用原则
使用用户界面、C#应用界面、命令行和强大脚本提交作业
使用用户界面监控应用运行情况
3.1 作业调度系统概念
集群是Windows HPC Server 2008 R2的顶级单位。一个集群包含下列元素。节点:具有一个或多个处理器的单一物理或逻辑计算机。节点可以是头节点、计算节点或 WCF Broker节点。
队列:提供排队和作业调度功能的元素。每个 Windows HPC Server 2008 R2集群都只包含一个队列,且该队列包含挂起的作业。已完成的作业将从队列中定期清除。
作业:由用户启动的一组任务。作业用于保留资源以供随后的一个或多个任务使用。
任务:是指在给定的计算节点上执行的程序。其可以是串行程序(单一进程)或并行程序(使用多线程、消息传递接口 [MPI] 或 OpenMP)。
作业调度程序用于对作业及其任务排队。它为这些作业分配资源,启动集群计算节点上的任务,监视作业、任务和计算节点的状态。
3.2 安装应用
博主注:本书附带光盘为Windows HPC Server 2008 R2试用软件安装盘,可为读者提供180天的免费试用。此处安装顺序略去。3.3 提交作业
第2章介绍了作业提交有多种方式。本章详细介绍3种方式:使用作业管理器;使用命令行和PowerShell;使用C#程序。3.3.1 使用作业管理器
(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 支持并行和高性能的文件系统来提高对非常大的数据集的访问性能。通过指定工作目录,小型和中等数据集的用户将获得最佳的即用即取的体验。当任务开始时,计算节点将看到此工作目录中的所有文件并可正确处理该任务。 |
图3‑4 监控参数扫描作业
(6)在任务标签下,双击如图3-4所示的“任务1.1-1.10”,弹出“查看作业”对话框,如图3-5所示。上面是所有的10个任务的列表。当选择一个任务的时候,可以看见计算结果在“输出”的文本框内,比如,如果选第四个任务,会看到如下的输出:“Option Price / interest rate (1.03) = 9.15572854540851”(注意:结果不一定完全一致,因为这里采用的是蒙特卡罗算法,结果有随机性),如图3-5所示。
图3‑5 查看参数扫描任务细节
3.3.2 使用作业调度器命令行程序
(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 使用命令行显示输出结果
3.3.3 使用Powershell
(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小结
作业调度器命令行和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 Cls |
相关文章推荐
- 如何使用submit,进行ajax数据提交
- window7使用eclipse提交Hadoop作业到Hadoop集群运行方法
- springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配报错400时如何处理
- spring中如何使用quartz实现定时作业
- 如何在班级博客中提交作业
- 遇到no changes added to commit时如何正确使用git提交命令
- 问题:如何不使用submit按钮来提交表单?
- java web开发中,jsp使用了frameset框架,如何实现整个页面跳转,并且同一个表单中可以提交两个action
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- ExtJS框架下如何使表单不使用AJAX方式提交
- 如何向hadoop集群定时提交一个jar作业?
- 当出现no changes added to commit时如何正确使用git提交命令
- 如何使用小乌龟提交自己的python代码
- 如何在Myeclipse中使用Mercurial(Hg)进行代码的提交
- 【案例】SVN下载时如何使用“使用配置库最后提交时间”
- 如何在Eclipse上使用SVN,安装、提交、拉取代码、解决冲突等操作
- VIsual Basic 2005 - 如何使用 SqlBulkCopy 对象来执行大量复制作业
- JavaWeb 如何防止表单重复提交 - 使用Token,令牌
- 如何使用Dojo提交上传文件请求
- 如何使用 SVN 找到一段时间内提交的代码文件