大家好,我是HPC 中国研发团队的新程序经理(PM)实习生刘贤斐,听言“PM是连接用户和开发团队的重要角色”,因此,在加入微软HPC组之后,尽快熟悉微软HPC的产品成为我的重要任务之一,在在得到了包括老板George,育彤兄的大力支持以及天驰兄的大力PUSH之后,我成功地把Microsoft Windows HPC Server 2008(Beta1) 部署到了一台具备一个头节点4个计算节点的集群(Cluster)上。原来用HPC PACK部署集群是如此方便快捷(不是广告,看后面就知道了),其兴奋不言而喻,在此和大家分享一下我的经历。
那么什么是集群(Cluster)呢?比较正式的解释是:集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,能够为用户提供各种服务。我们部署的集群外观是这样的:
HPC Server 2008的作用是在这上面部署操作系统以及集群管理工具等。先来说说HPC Server 2008的概念吧,它是由两个部分组成的:Windows Server 2008和Microsoft HPC Pack。
Windows Server 2008主要是提供64位的操作系统支持,Microsoft HPC Pack提供了集群管理,任务调度,MPI编程环境,SDK等一系列工具。了解了概念后,就动手部署了,首先要做的是插好电源并检查鼠标键盘以及网线有没有接对(不是废话,当时我就没注意分清CONSOLE的接口和头节点的接口,惭愧惭愧),之后就在头节点上装好Windows Server 2008和HPC Pack。接下来当我准备在四个节点上如法炮制时,立马被无情地鄙视了,因为这是最低效率的做法了,我们要做的事情只是把四个节点的电源接通,然后利用HPC Pack的 Node Template(节点模板)功能就可以很方便地在所有的节点上搞定这些事情。具体的过程如下:进入Configuration后,你可以看到如下的界面:
首先,就是配置网络(有5种网络拓扑结构,具体的奥妙大家可以自己研究一把),配置系统帐号,给节点批量命名,最有意思的是第4步了,创建新的节点模板,如图所示:
在向导中稍作配置,一路“Next”,即大功告成。然后选择在哪些节点上部署这个模板。我们支持对三种节点的部署:裸机节点,以前把其配置导出成XML文件的节点,和已经安装好操作系统的节点;对我来说在空节点上安装当然是第一种情形了,点击“PROVISION”, 部署就开始了。现在可以在“Node Management”(节点管理)导航栏里面看到这些节点在“Provisioning”(正在部署)的列表中,单击节点就可以看到它们部署的状态,在执行哪些命令。
部署完毕后,就可以使用这些节点了,包括让它们online或者offline,提交任务等。
HPC Server提供的一个很有意思的功能是查看节点的健康状态(如下图),我们可以选择添加一些标准(Metric),添加之后,这些标准会以一个柱状图的形式显示出来,颜色越深表示它的值越高。在我们的图中可以看出来,头结点(TYANHEAD)上的每秒系统调用数量(System Calls/ Second)和硬盘的吞吐量(Disk Throughput)都比其他节点高,所以它们对应的颜色也越深,而头结点可用的物理内存(Available Physical Memory)最少,所以相对于其他节点来说,它的颜色也教浅。这样可以让管理员直观的看到现在每个节点的状态。
怎么样,是不是很方便啊,没有繁琐的步骤,不用记大量的命令,一切都很一目了然就可以部署集群了。
以上是我的一些体验,欢迎大家指出不当之处,多多交流~, 同时也感谢全体HPC 中国研发团队对我撰写此文的帮助。
Liu Xianfei
PM INTERN, HPC Group, STB China
Shanghai
HPC2008的用户界面与CCP2003相比,发生了巨大的变化。且不用说那精美的GUI,单就历来枯燥乏味的命令行界面也能令你眼花缭乱。我们将会在以后的篇幅中逐一介绍GUI,本篇将着眼于命令行。
用过CCP2003的朋友们应该还记得那经典的几个命令吧,分别以job,task,node等打头,然后跟上操作符和参数。HPC2008仍然支持CCP2003的命令,以确保向后兼容。除此之外,我们开发了更为强大的基于Windows Powershell(下文简称PS)的命令行界面。这也是我今天想向大家推荐的重点。
(1) PS CLI 的功能比CCP2003的命令行多得多。
PS CLI覆盖了GUI除Reporting之外的所有功能(如Deployment, Node Management, Job Management, Operation, Diagnostic, Cluster Configure等)。换而言之,原先必须用GUI才能做到的事,现在可以统统使用PS CLI完成。最直接的好处就是,可以使整个集群的安装,配置,诊断,作业提交实现脚本化,极大地提高管理员的工作效率。
(2) PS CLI 充分运用PS自有的功能。
如果用一句话来描述PS的强大之处,那就是它引入了基于对象的管道。简而言之,一个命令可以向管道输出一个对象,也可以从管道中接收一个对象作为参数。
举个例子:
命令New-HpcJob,创建一个job并输出到管道;Submit-HpcJob,从管道中获得一个job并将其提交;Add-HpcTask,从管道中获得一个job,添加一个task到job中,再将job输出到管道。不难看出,管道可以将这三个命令连接起来:New-HpcJob | Add-HpcTask | Submit-HpcJob。当然,我们可以向job中添加多个task,New-HpcJob | Add-HpcTask | Add-HpcTask | Add-HpcTask |Submit-HpcJob。
PS的另一个可圈可点之处在于可以定制输出格式。以查看job为例,我们可以指定若干个需要查看的属性。PS会自动的将它们排列成表头,以表格的形式输出整个job table。下面的截图使用了刚才介绍的管道,将一组job通过管道传给了PS自带的Format-Table命令,打出了一张job table。
细心的朋友可能已经发现了PS命令的一个语法特征,统统是 verb-noun的形式。无论是PS自带命令还是我们开发的命令都遵循这个规则。PS在今后的版本中仍将继续使用这个规则。
(3) PS CLI强大的help message
我们的PS CLI有80条命令左右,不排除今后继续添加新命令的可能。大家不可能记住所有的参数,怎么办,看帮助文档。以Get-HpcJob为例,输入“Get-HpcJob -?”,您将会得到最简洁的帮助信息,例如参数名称,类型等;输入“Get-Help Get-HpcJob -Full”得到最全面的信息,包括各个参数的作用,可以管道的参数,支持通配符的参数,以及应用实例等。
今天就先介绍这些吧。绝大部分的PS CLI在我们已经发布的CTP 版中都已经可以使用,多多欢迎宝贵意见。
Qing ZhiDEV,HPCGroupShanghai
中国老一辈的人都流行说:我几几年参加工作,言语中掩不住自豪。小弟我*在小中大学校摸爬滚打了近二十年,终于在去年三月成为一名Dev--软件设计工程师,马上就可以拿到在微软“幸存”一周年的纪念牌牌,得意地宣布实现工龄零的突破,参加工作一年了。追昔抚今,以继往开来, 2007这一年,我这个一年级新兵看到的是微软HPC活动迭出,捷报频传,研发销售两手抓两手都很硬的一年。为免把本文写成形神聚散的散文,下面我就以擅长的文体--流水帐,把2007年微软HPC,特别是在中国市场的一些亮点给大家做个汇报:
* 我是谁呢,不才就是上一篇帖子里说到的菠萝头兄弟,简历可由微软之缘为线索总结为:
1.MSNCDC扛过枪:MSN中国开发中心最早的一批实习生,对大队人马奔赴中山公园打彩弹记忆犹新;
2.GTSC帮过忙: 微软全球技术支持中心兼职做过几个web项目;
3.MSRA翻过墙: 微软亚洲研究院访问学生,爱极了每天的酸奶和桌上足球,也目睹和亲历了年底冲国际会议论文的疯狂--比如说优化论文算法到半夜,翻北航的校门回招待所睡觉;
4.MVP得过奖: ASP.NET微软最有价值专家,只当了半年就因加入微软而自动终结:);
5.STBC留过洋: 被微软服务器与开发工具事业部(中国)收编为正规军后,不到半年即通过“丝绸之路”项目发配总部“朝圣”一个半月,见到了传说中的美国和Bill,至此始信,世上确乎有美国,世上确乎有Bill,众之人不余欺也。