Go Search

China HPC

This blog belongs to our Windows HPC Community members in the Peoples Republic of China. It is written in Chinese and English. The blog is owned by Alex Sutton of Microsoft China.
咱们TechEd见

技术盛会TechEd 2008即将拉开帷幕, 届时将发布几个重量级最新技术--虚拟化解决方案, SQL Server 2008, Microsoft Visual Studio 2008和Windows HPC Server 2008! 很高兴我们的研发团队有机会与国内的IT同仁面对面, “进享未来、连享未来、创享未来”(本届TechEd主题). 请参阅以下HPC的课程日程和介绍,并期待与您相会在广州,相会在上海,相会在北京!

广州:10月31日10:30 - 11:45 Windows HPC Server 2008核心精要 (课程编号HPC200, 讲师魏臻)
上海:11月5日16:00 - 17:15 Windows HPC Server 2008核心精要 (课程编号HPC200, 讲师周一丁)
上海:11月5日17:30 - 18:45 Windows HPC Server 2008面向服务的并行计算 (课程编号HPC201, 讲师周一丁)
北京:11月7日09:00 - 10:15 Windows HPC Server 2008核心精要 (课程编号HPC200, 讲师徐明强)
北京:11月7日13:00 - 14:15 Windows HPC Server 2008面向服务的并行计算 (课程编号HPC201, 讲师周一丁)
北京:11月7日16:00 - 17:15 动手实验室Windows HPC Server 2008 (课程编号HOL275, 讲师George Yan)
北京:11月8日14:30 - 15:45 动手实验室Windows HPC Server 2008 (课程编号HOL184, 讲师George Yan)
北京:11月8日14:45 - 16:00 Windows HPC Server 2008环境的部署,配置,和管理 (课程编号HPC202, 讲师苏骏)
北京:11月8日16:15 - 17:30 百万亿次的超级计算机诞生记 (课程编号HPC310, 讲师李铭)


Windows HPC Server 2008核心精要:Windows HPC Server 2008正将高性能计算(HPC)带向主流. 不管您是一位科学家,还是大公司的IT部门经理,都会感叹搭建和管理计算机集群系统变得前所未有的容易,集群管理员的工作效率将得到极大的提高. 新的作业调度器可伸缩性优越,支持基于WCF的面向服务的架构(SOA)和MS-MPI并行程序. 众多独立软件提供商的软件都能运行其上从而快速高效地满足用户的商用需求.

Windows HPC Server 2008面向服务的并行计算:Windows HPC Server 2008面向服务计算平台将高性能计算和WCF架构紧密结合,将面向服务的架构带入并行计算领域,提供了一种跨平台和语言提供计算资源的方法。基于Visual Studio 2008的端到端用户开发体验和Windows HPC Server 2008紧密结合,提供了方便易用的开发,调试,部署的环境。

Windows HPC Server 2008环境的部署,配置,和管理:管理大型计算集群是项困难的工作。快速部署集群、管理各种不同配置的机器、快速监视整个集群的状态、发现并定位系统的问题,跟踪系统变化。Windows HPC Server 2008 的管理系统整合了以上功能。在这个讲座中我们会一起了解微软在集群管理方面的解决方案。

百万亿次的超级计算机诞生记:曙光5000A是突破每秒百万亿次浮点运算的超级计算机,它有1920台4路4核的刀片组成,每个节点64GB的内存。通过这个课程你可以了解微软如何和曙光及其他合作伙伴一起,通过不同的测试办法在很短的时间内通过了Linpack 性能基准测试并得到了很好的结果。

Windows HPC Server 2008震撼发布了!

922日,Windows HPC Server 2008在华尔街HPC大会上震撼发布了! 微软副总裁Bill Laing在会上发表主题讲话,向大家说明微软正努力致力于把高性能计算平民化主流化,在众多合作伙伴的支持下也有实力完成这个目标。这一点,从我们的一些中国用户,比如上海超算中心、上海交通大学、南京地震局的产品试用感想中可以得到充分的证明。

 

我非常荣幸成为这个卓越产品组的一员,上海团队出色地开发完成了承担的功能: 图形化管理界面,  powershell脚本命令, 报表和一种新的面向服务架构的编程模型。我还有幸参加了刚在新加坡举行的亚太区发布仪式,如照片所示,我在那里向很多感兴趣的听众介绍了Windows HPC Server 2008

 

我们不会止步于此,关于微软高性能计算第三版的产品,我们会结合开发前两个版本的经验,开始在并行程序运行时和集群管理方面施展拳脚。同时,我们将和开发工具部门同事们紧密合作,为HPC平台提供在桌面机上同样简单高效的开发体验。

 

愿意加入我们吗?只需要发封简历到hpcjobs@microsoft.com。下次,大家就会在这里看到一位从美国团队转来我们队伍的HPC行业领军人物,带领我们开发并行程序运行时的功能!承担这一功能是我们团队向前迈进的坚实一步,也充分证明了我们过去几年脚踏实地的成绩。我都等不及要把这位兄弟介绍给大家了!

 

赶紧系好安全带吧,Windows HPC最精华的部分就要闪亮登场了!

 

On Sept 22nd, we announced the Windows HPC Server 2008 released to market at the HPC on Wall Street conference. Our VP Bill Laing’s well received keynote at the conference has convinced the audience that Microsoft is serious in taking HPC mainstream and is certainly able to do so thanks to the strong partner ecosystem and Microsoft portfolio of products.  And customer testimonials from the China customers such as SSC, SJTU, Nanjing Earthquake Bureau summed it up the best. 

 

I was fortunate to be a part of this nimble, overachieving team.  We accomplished what we set out to do, taking on a broad ownership in the areas of Admin UI, SOA programming model, Reporting and Powershell, and delivered with exceptional quality.  I was fortunate to participate in the APAC launch in Singapore, there were a good turnout of crowd and many were blown away to see Microsoft  Here is a picture of me giving a talk on our Windows HPC Server 2008.

 

And we are not stopping here, going forward in v3, we will consolidate our experience in building our v1 and v2 product, and start building a focused expertise around Parallel Runtime and Admin Experience.  Also we will work closely with our DevDiv friends to provide a seamless developer experience on HPC platform.

 

As always, if you are interested in joining this highly technical, overachieving team, send a mail to hpcjobs@microsoft.com.  Next time, you will hear from a HPC industry icon whom decided to join the Shanghai HPC team to build the Parallel Runtime features here.  This is a giant step for the team, and also validated the huge progress we have made in the past few years.  I can’t wait to introduce him to all the readers!

 

Strap on your seatbelt, The best of Windows HPC is yet to come!   

袖珍超级计算机Cray CX1

翻译自:http://blogs.technet.com/windowsserver/archive/2008/09/15/microsoft-and-cray-team-up-to-bring-high-performance-computing-mainstream.aspx

 

微软和Cray两家公司在历史上首次联手,提供各自最好的技术生产出了Cray CX1! CX1是个什么东东呢?它是一个运行Windows HPC Server 2008的超级计算机,大小和普通PC相当。这是Cray公司迄今为止提供的最实惠的超级计算机:两万五千美金,微软、Cray和其他一些公司9月15日早上八点宣布开始供货。

CX1的高性能和高生产力能满足用户、IT专家和开发者的需求,其环境高度集成,为用户所熟悉,大小和价格也非常适合部门和工作组。CX1集计算、存储和虚拟化技术为一体,瞄准的用户就是实验室、办公室等非传统部门。空间绝不会成为一个问题,因为你甚至可以把小小的它随随便便放在杂物室里。

怎么买呢?就像在Amazon上购物一样简单。用户可以在线订购CX1,并用信用卡付账。看吧,毋庸置疑,高性能计算正在主流化,个人化!

新PM来报道拉!-- 入职HPC三月之我见

大家好,我是丛兰兰,上海HPC Team的新PM。其实说新也不新,入职HPC Team已快三月有余,潜水至今是因为这个team,这个领域和这个项目有着太多吸引我而我又要努力去学习的东西,现在该上来呼口气和大家问声好了J

 

入职HPC Team之前,我效力于微软北京的Windows Live团队。这两个team给了我全然不同的体验和感受。Windows Live团队专注于在线服务,它强调对在线用户市场需求的快速响应,以及如何通过提供创新高效易用的服务吸引和维系最大量的在线用户群。而HPC Team作为Windows Server团队的一部分,它更加关注于对服务器底层技术的深入挖掘和优化,关注于高效、易用和高质量的服务器产品的开发。因为产品定位,市场和目标的区别,Live的项目和产品相对轻量,开发周期较短(3-6个月左右),增量的patching快速而有效。而Windows Server以及HPC项目开发周期较长(2年左右),对每个开发周期的定位,实现的功能和产品质量的把握也更加严格。试想一下,一个三个月没有做好的项目也许还可以用下面三个月来弥补,而一个投入两年多而失败的产品周期对整个产品的市场竞争力以及对公司的影响将是相当巨大的。这也是作为HPC Team的项目经理对我来说更加富于挑战性的一点,同时一个公司内部所能提供的这种截然不同的体验也使得微软成为一个非常富于人才竞争力的公司。

 

加入HPC Team以来,以下几个方面让我印象尤为深刻:

1)  对项目计划的重视,planning阶段的深入,细致和完备。随着Windows HPC Server 2008的开发周期接近尾声,HPC团队开始全力以赴投入下一个产品周期的计划阶段。一切从客户需求出发,通过与客户现场和电话的紧密交流,倾听客户的心声。把这些从客户需求收集来的零散的信息整理成完善的端到端的用户场景(end-to-end user scenario)。将这些用户场景分类,通过与产品的战略规划(business strategy)相结合,对场景进行优先级排序。同时对用户场景进行深入细化,根据产品项目周期和人员情况的安排,根据场景的优先级选择哪些场景是需要在下个产品周期中实现,哪些是可以在以后的产品周期中得到满足的。然后将这些用户场景转换成具体的产品功能和性能需求,PMSpecing工作也就由此开始。这样的Planning的阶段会持续三个月左右,如此细致的planning才能保证我们的产品可以最贴切地满足客户的需求。

 

2)  团队成员对技术的崇拜和热衷。有人说,微软是把一群最优秀的人才聚拢到了一起,每天和最优秀的人才一起工作也是这个公司最具有吸引力的地方。尤其对于HPC这样着重于Server技术的团队,我发现团队的每个成员都有一种对技术由衷地崇拜和热衷,总是非常积极地去了解最前沿的技术和产品,非常主动地将这些最新的idea应用到HPC产品中去,以最大地优化和改善我们的产品。这种对技术和产品的由衷的热情也成了产品不断向前进步的一股很大的推动力。你会发现,开发和测试人员不是在等待项目经理定义好项目需求之后去实现,而是非常主动地去挖掘可以优化产品的技术,将技术与客户需求相结合,通过实验原型加以验证,以推动将这些技术和想法最终应用到产品中去。这也同时促进了开发,测试,项目经理三者相互推进,有效互动的一种高效合作模式。

 

3)  上海团队和Redmond总部团队的紧密合作。Global development一直是我认为在中国的团队成员,以及在中国做PM的最大魅力之所在,而这一点在HPC这样的Windows Server团队显得尤为突出。因为与Windows Live团队项目较为轻量,中国的开发团队通常可以拥有较为独立的项目不同,HPC上海这样的团队开发出的产品作为最终Windows HPC Server产品的一部分,需要与美国团队更加紧密的合作。以Windows HPC Server 2008产品的开发为例,上海HPC Team负责的Admin Console用户交互部分以及PowerShell命令行部分的开发,需要与底层的各个模块的实现上的交互,而其中大部分模块的开发团队则在美国。令人欣喜的是中国团队和美国团队都非常积极主动地促进这种交流与合作,全球开发模式的成功也成为衡量一个项目,一个产品成功的很重要的方面。

 

随着HPC Server 2008产品的开发接近尾声,下一个版本的序幕才刚刚拉开。我们怀着无比憧憬和期待的心情,期望着上海的团队与美国总部的开发团队一起,开发出更加高效、易用、满足客户需求的高性能服务器产品,最大地实现客户价值!我们也期望着中国团队在微软服务器产品的开发中扮演着越来越重要的作用,期望着更多更优秀的人才加入我们!

 

丛兰兰

HPC团队项目经理

实习也能这样过!--直接参与产品开发

     大家好,我叫刘超,是服务器与开发工具事业部(中国)HPC团队的软件开发工程师(SDE)实习生。在微软实习了将近6个月了,在这段时间里对于实习、对于我们组的工作生活都有不少感悟和体会,所以很想借这次写blog的机会做一下记录,如果能对别人有所价值,那就是最大的开心了。

      在微软的实习经历对于我来说,是一份永远的记忆。在实习中开发的VS Add-in for Deployment,是我在公司中第一次独立开发的项目,而这个项目能够最终发布,得到了很多同事的帮助,老板们也给予了我充分的信任,让我很感激。这个项目虽然不大,但是其中也有着不少波折:刚开始接手这个项目时,我做了很多调研提出了不少实现方法,但是进度很慢,是因为对自己没有足够的信心,总希望得到同事们的支持才开始动手。后来老板看出了这一点,告诉我“纸上得来终觉浅,绝知此事要躬行”,也指出经过了一段时间的调研,其实我所了解的并不比别人少了。我一听,觉得可不是嘛,自信心立刻就有了,然后进度就赶上来啦。在这一次开发中我也深刻体会到了原型产品和正式产品的区别:自己觉得很稳定的产品,到了测试阶段却能够发现很多意想不到的bug;在修bug的过程中,不仅自己trouble shooting的能力得到了提高,与项目经理(PM)、测试开发工程师(SDET)沟通的能力也得到了很多锻炼。现在回想起整个项目的开发,还是感觉很幸运,从这次珍贵的项目经验中学到了很多。

      下面我来一步一步介绍怎样使用这一个VS Add-in for Deployment来把开发好的WCF Service部署到HPC Cluster上去。首先,用户需要安装Windows HPC 2008 SDK,其中包含了这个工具。安装好之后,用户就可以在在Visual Studio的Tools -> Add-in Manager菜单中选择使用这个工具。然后用户需要建立一个Setup Project, 并且将需要部署的WCF Service添加到Setup Project的Project Output中(图1)。

 

图1

   然后,用户可以在Visual Studio中的Solution Explorer中用右键打开这个Add-in工具(图2)。在Deploy Tool的界面里,用户可以选择要部署的WCF Service 包,要部署到的cluster,以及在cluster上具体部署的nodes或者group(图3)。用户还可以通过打开“Service Details”对话框(图4)来自定义在cluster注册的信息,这些信息往往对于正常调用WCF Service是很重要的。


图2


图3

      在开始部署后,用户可以看到各个节点的部署状态(图5),也可以通过进度条看到整个部署任务的进度。同时用户还可以点击部署状态上的链接看到部署任务在各个节点上执行的日志文件。


图4

图5

     在部署成功之后,客户就可以通过HPC Cluster自带的SOA功能对这些WCF Service进行调用啦。对于VS Add-in for Deployment的介绍就先介绍到这里了,希望这个工具能够给更多人带来便利。

      对于我们实习生本身,为了更好地把握实习机会,也有很多需要了解和准备的东西。下面是在这几个月的实习中我的一些体会,希望能对师弟师妹们有所帮助。:)

1. 一次实习最重要的是要抱着学习的心态进入公司,如果能有求知若渴的态度,那么这次实习的价值才能够被最大化。曾经听过一个经理对职场新人的建议是“榨干职位上一切你能学到的东西!”在大多情况下,一个职位一个人一生只会经历一次,比如现在的软件开发工程师,如果转做IT咨询或者项目经理,可能一辈子都不会再回到开发工程师的职位。对实习生而言,接触不同公司不同职位的机会还是很多的,所以如果能够在不同的职位上把能学到的东西尽量学好,往往会有很多受益良久的收获。曾经听人说过,如果是抱着拿工资的心态在工作,那至多只是工资慢慢地增长;如果是抱着学习的心态在工作,就一定有成为公司CEO的希望。

2. 要积极,才能有更好的机会。刚进入公司的时候老板会安排一些项目,而在组里待久了,往往会了解到其他同事的一些想法或者原型,如果感兴趣的话就应该积极地争取参与进去。被动地等待任务往往会让自己慢上半拍,毕竟老板们不是神仙而且很忙,无法完全了解实习生的兴趣、工作状态和工作强度,所以毛遂自荐往往是更受欢迎的。

3. 要有坚持的心态和责任感。在日常工作中,刚刚走上岗位的实习生一定会遇到各种各样的困难,这时一定要有坚持的心态和不畏困难的信念。很多人对一件事情开始时表现出很大的热情,却只有三分钟的热度,这对于与他合作的同事来说是灾难性的。如果承诺了一件事或者接了一个任务,就一定要坚持完成,信誉的建立比毁坏要难得多。实习生与正式员工相比,往往约束要少很多,学校课业的负担有时也成为逃避责任的一种借口。可是“人而无信,不知其可”,责任感是任何职业都不可或缺的,该修的bug一定要修,该完成的任务一定要完成,在战胜困难的同时,自己的自信也得到了非常大的提升,所以这不仅是对于公司的贡献,也是对于自己的贡献。

4. 不管是什么样的工作,一定有它的意义;退一万步,即使是最单调乏味的工作,也能提高做事的效率和锻炼时间管理的能力;同样的一件重复劳动,有的人能够二十分钟做完有的人却需要一个小时。在微软,实习生被安排到的工作往往是开创性的新产品的开发,所以大多是非常有趣的;可是即使这样,也要知道对于不怎么感兴趣的工作保持热情也是非常重要的。

5. 要有更好的系统性组织性。我以前做事风风火火的,有什么事情想到就做。看到别人给我发的bug,一旦想到解决的方法就开始修了。后来经过老板、mentor与我的沟通,了解到需要更多地为别人考虑,即使是修bug也要经过一定的流程、更加系统化才行,否则频繁的修改很可能引起别人的麻烦,而这些往往是在学校里进行手工作坊式的项目开发很少遇到的。

6. 要多交流,这一点我很汗颜。我的一个很大的缺点是在交流方面没有足够的热情,而这可能是职场的大忌。酒香也怕巷子深,花了几年酿出的酒如果不能运出巷子卖掉还是一点价值都没有。所以情商方面的培养也是实习中非常重要的环节。一个很直接的方法就是多于老板交流,老板之所以成为老板,肯定有成为老板的原因。在与老板的相处过程中,个人的阅历、眼界和处事风格等等都会有很多提升。

这篇文章到这里就要结束啦,在实习的过程中每个人肯定都会有自己不同的体会。希望各一位实习生不管在什么公司什么职位都能够得到更大的收获,在工作岗位上不断进取,走得更高更远。:)

 

刘超

高性能计算团队 实习生

Windows HPC Server 2008显山露水

Microsoft impressed the supercomputing community last week when a beta of its new Windows High Performance Computing (HPC) Server 2008 scored a top 25 ranking on the Top 500 list of world's biggest supercomputers.” 当我看到新闻上类似于这样的报道时,总会有一阵激动,微软的HPC产品终于开始在市场上显露出了力量,而且也得到了越来越广泛的关注。

 

在微软推出HPC产品前,高性能服务器领域一直是LinuxUnix的天下,作为高性能计算领域的新加入者,微软HPC研发团队的工程师们可谓是筚路蓝缕,以启山林,一切都要从头干起。通过不断的努力,我们在2006年推出了Windows Compute Cluster Server 2003,初步获得了肯定;而今年5月刚发布的Windows HPC Server 2008 Beta2版本引起了业界的极大关注;6月在TOP500.org公布的世界第31次全球超级计算机五百强排行榜上,位于美国伊利诺大学的超级计算机应用国家中心 (NCSA) 的服务器,浮点运算性能68.48TFlops的成绩登上了排行榜的23,而他们所使用的操作系统就是Windows HPC Server 2008 Beta 1

 

现在,Windows HPC Server 2008已经能够有效管理数千个计算节点,具备高速NetworkDirect RDMA技术、远程直接内存访问界面、高效集群管理工具、面向服务器架构的工作调度、HPCBP规范标准集群互连等等;而且与前一个版本相比,08版产品的易用性,稳定性等都取得了很大的提高。比如我们能在很短时间内在成百上千台的裸机上部署好Windows HPC Server 2008,并可以运行一些诊断程序方便地测试出现有机器的连通性等。此外,通过Heat Map,我们可以直观地看到包括头结点在内所有节点的状态,包括他们的CPU和内存使用率等信息,这些特性都取得了很多合作伙伴的好评。来自NCSA的副主管Pennington在反馈中提到:当我们在把Windows部署在超过一千个节点的机器上时,我们从这些机器是裸机时开始,到他们开始运行LINPACK测试程序仅仅花费了4个小时, WINDOWS HPC SERVER 2008的性能达到了我见过的同类机器中最高效的之一

 

除了在性能上的提升,我们也非常注重发展合作伙伴,从合作伙伴的反馈中改善我们的产品,就中国而言,我们已经和上海超级计算机中心,曙光信息产业有限公司等建立了紧密的关系,同合作伙伴一起,共同推动高性能计算产品在中国市场的普及与应用。

 

在产品不断取得成功的背后,我们中国研发团队也功不可没。Windows Compute Cluster Server 2003中的界面管理曾经被很多人批评,但是如何使得我们的HPC Server 2008具备强大复杂的功能的同时,又兼具易用等特性是一件非常有挑战性的工作,这直接关系到用户体验,如果在界面上就难倒了用户,则整个产品就不再让人感到舒适了。经过我们的不懈努力,以及不断吸取客户的反馈,Windows HPC Server 2008UI(用户界面)方面做了非常大的改进,包括管理界面,配置向导等都做了很大的改善。例如在网络拓扑结构选择部分,我们将抽象的网络拓扑结构转换为直观网络示意图(图1),这样即不容易出错,也易于用户理解和记忆。

 

NetworkTopology
图1

此外,前面提到的HPC Server 2008中受到很多客户欢迎的Heat Map功能,能够让管理员实时监控各个节点的状态,如图2中所示,管理员可以看到现在的所有节点中可用的物理内存(Available Physical Memory),硬盘的吞吐量(Disk Throughput)和每秒系统调用数(System Calls / S),并且这些指标都用图形化的方式直观的表现出来。

 

Heatmap

图2

 

      另外,强大的Reporting功能,也是由我们中国研发团队完成的:集群的管理员可以将一段时间内关于集群上的信息收集起来,并以图标的形式表现出来,以方便管理员对这段时间内集群的状态进行分析,图3中精美的图标就是Reporting功能生成的结果:

 

Reporting

图3

 

UI上的巨大改进也获得了很多客户的正面回应,来自英国的达斯伯里实验室(Daresbury Laboratory)分布式计算组的计算机科学家Igor Kozin说,“Windows HPC Server 2008的一个很突出的地方是它具备非常可靠的图形化用户界面,从很多方面来看这些仍然是Linux所缺乏的”,利用我们的UI界面,集群管理员能很快的上手并且高效的操作,因此大大降低了花在配置上的时间和精力。

 

除了在UI方面的改进,为了满足不同客户的需求,我们也支持在PowerShell中用命令行来完成包括管理和提交Job等。对于习惯使用C ShellKorn Shell的管理员来说,使用PowerShell脚本会相当方便。

 

我们还增加了对SOA的支持,提供了API甚至在Visual Studio中嵌入了Add-In,使得开发人员能方便的利用SOA去部署并行程序。开发人员不用去关心他的程序会部署在哪些节点上运行,我们提供了WCFBroker机制去自动的将程序部署到合适的节点上,简化了开发人员编写并行程序。

 

总而言之,我们提到的这些特性都是以给客户提供价值为核心的,目标是实现我们和客户双赢的局面,因此也获得了众多的好评,而用户的意见甚至批评都成为我们不断改善产品的驱动力,期待Windows HPC Server能取得更大的成功!

 

刘贤斐

微软中国服务器与开发工具事业部(STBC)

项目经理(实习生)

 

来看看我们的产品 之 集群性能监测
大家好,首先我非常高兴地为大家带来一个好消息,Windows HPC Server 2008的Beta 2已经发布啦!相较于上一个Beta版本,我们一方面进行了许多新的产品特性的开发,另一方面也修正了不少问题,相信大家一定已经迫不及待地想要一睹Beta 2的风采了吧。您可以从http://connect.microsoft.com了解更多关于我们的Beta 2的信息。
那么言归正传,本次我要为大家介绍的是Windows HPC Server 2008为我们提供的一系列性能监测的工具。通过这些工具,我们可以很方便地了解集群当前和过去的性能状况,发现可能存在的问题。
 
位于节点管理(Node Management)中的Heat map是HPC Server中一个很酷的功能。它允许我们同时选择一些Metric(性能标准),并以不同的颜色将每个节点上这些Metric当前的值显示出来。Heat map默认使用浅色表示较小的值,使用深色表示较大的值,如下图所示:

Heat Map

通过Heat map,我们不仅可以观察某个节点当前的状态,更可以很直观地在整个集群中找到那些与众不同的节点。举例来说,在一个非常繁忙的集群中,如果有某一个节点的CPU占用率总是为0,那么很有可能这个节点就没有正常工作。如果要通过查看每个节点上的CPU占用率来发现问题,在一个拥有许多节点的大集群上那将是非常困难的。不过如果用Heat map来进行观察,从一大片深色的小方块中找出一个白色的小格子应该是相当容易的吧。
 
我们也可以使用Windows HPC Server 2008的Powershell来完成这一任务,Get-HpcMetricValue命令可以被用来查看所指定的Metric的当前值。我们甚至可以运用Powershell强大的脚本功能来自动化一些性能监测任务,例如我们可以编写一个脚本当某个节点的磁盘剩余空间小于10%时让集群自动往发送一封电子邮件用于提醒。另一个非常有用的命令是Import-HpcMetric,通过这个命令您可以从您系统中已经注册的性能计数器(Performance Counter)导入新的Metric,系统中已注册的性能计数器可以通过Windows控制面板的管理工具中的可靠性与性能监视器(Perfmon)进行查看。
 
Heat map为我们展示了节点的当前状态,而性能图(Performance Charts)则为我们提供了Metric的历史数据。右键单击一个节点,从弹出的菜单中选择View Performance Charts(查看性能图)就可以观察所选择的节点的历史性能数据,如下图所示:
Performance Charts
在上图的窗口中,我们可以自由的选择想要查看的Metric,设定所要查看的时间范围(X轴),缩放图中可见数据的范围(Y轴)。我们甚至可以同时打开多个不同节点的性能图窗口,然后对它们依次做一比较。
 
看了这些,想必您一定有一个疑问,以上这些都是针对节点的Metric的监测,那么有没有对于整个集群的监测呢?答案当然是肯定的。位于图和报表(Charts and Reports)下的性能监视图(Monitoring Charts)就是用来查看整个集群的性能数据的。它提供了一个类似于性能图的界面,只不过这里可以选择的Metric不再是针对某个节点的Metric,而是针对整个集群的,例如总共失败的Job数目等等。同样的,这里的Metric也是可以通过Powershell的Import-HpcMetric命令进行定制的。
 
通过这些工具,我们可以自由的选择想要观察的性能数据,便于对集群的运行状况进行分析。是不是感觉一切尽在掌握之中呢?:)
 
Renqi Zhu
Dev, Windows HPC
Shanghai, China
Step by step LINPACK guidance

I’ve been working on deploying LINPACK on our Windows HPC Server 2008, including compiling source code, setting up environment for the machines and also making adjustments on input parameters for LINPACK, so I would like to share some experience with you on the issue.

In order to run LINPACK on windows platform, we should do such steps:

1.       Find out right version of source code and compile it.

There are several versions of LINPACK, the High Performance Computing LINPACK Benchmark is called HPL, and its current version is HPL 1.0a, you can find the source file “hpl.tgz” from the website: http://www.netlib.org/benchmark/hpl/.

If your machine is INTEL based, you can also find the binary version from INTEL MKL, but pay attention to find the one suits your machines.

 

2.       Set up running environment.

In order to run LINPACK, we should have MPI and BLAS (Basic Linear Algebra Subprograms) libraries on our machines. So first, have HPC Pack installed, and then we can use MS MPI, and have a choice among BLAS libraries: GOTOAtlasACMLESSLMKL. Some libraries are machine specific, so find out the suitable one from http://www.netlib.org/blas/faq.html. Here I take INTEL MKL as a first choice; you may find it from http://www.intel.com/cd/software/products/asmo-na/eng/266857.htm. Install MKL in the nodes that you want to run LINPACK.

3.       Install CCP SDK

Find CCP SDK from http://www.microsoft.com/downloads/details.aspx?FamilyID=D8462378-2F68-409D-9CB3-02312BC23BFD&displaylang=en, or if you have Windows HPC Server 2008 installed, then CCP SDK is already included.

 

4.       Configure paths

In order to run LINPACK on multiple nodes, we should set up shared folders for input, output as well as program executable. Take my setting as an example, we establish a new share folder on head node, named “Scratch”, then make three directories: input, output, bin. To run LINPACK, we should provide a file named “HPL.DAT” containing the input parameters; we should put this input file in the directory “input”.  Then the output file containing results will be put into “output”, and the executable file of LINPACK in “bin”.

 

5.       Estimate Results

For better tuning the input parameters, we would like to see the performance efficiency under current configuration. The maximum value is calculated in this way: Clock Speed (GHZ) * Flops per Cycle. Flops per Cycle” are the number of flops per clock, for Opteron and Xeon the value is 2, for Xeon dual-cores and Quad-Cores, this values is 4. Then current result / max value will be your efficiency. 

6.       Submit jobs

·         Input Parameters: Modify hpl.dat file to suit the target configuration. Firstly, four major parameters: N, NB, P, Q can be decided and the others remain default values. A standard input file is like the following:

linpack1

·         Submit job:

Use “Job submit /numberprocessors:P*Q /workdir : \\%CCP_CLUSTER_NAME%\Scratch\Linpack /stdout:hpl.log /stderr:hpl.err    mpiexec -wdir \\%CCP_CLUSTER_NAME%\Scratch\Linpack\bin xhp.exe” to submit the job. Then you may find it through “job management” in “admin console”:

linpack2

·         View the benchmark results: After the job is finished, you may find the result like below:

linpack3

7.       Issues on input parameters

Maybe you have heard there are 29 input parameters for LINPACK, so it is a very hard work to decide these inputs and it is always the most important work when running LINPACK. But   we can start from 4 parameters: N, NB, P and Q. N is the problem size, it should be large enough to reach the maximum performance, but not too large, which may result in paging, which would reduce the performance. . It is recommended that the matrix uses 80% of total memory. . As my experience, we can do some test on the machine, and monitor the available physical usage from heat map:

linpack4

If there are too many available physical memory, then we can increase N, and vice versa.  However, the best value will be obtained after several times of actual running.

The value of NB should also be achieved from the real tests, a guideline is N mode NB = 0. Some experience results tell, for Intel Xeon processors, NB should be 192, but according to my tests on our TYAN cluster with Xeon dual cores, 224 is a better choice.  So I think we may increase NB at a fixed N, increase NB by 16 each time until we find a max Gflops.

When related to P & Q, I really don’t know how to make a decision, the only thing I am very sure is, P * Q must be the number of cores. I’ve found a lot of materials written by different persons, some said values of P, Q must be close to each other, and others said P should be as small as possible. I’ve talked with Xavier, he suggests me to have a small P at first because when he does so, he gets the best performance.  However, it is very funny, when I am making a test on a four cores node, P = 4 with Q = 1 gets the best result and P = 1 with Q = 4 has a much poorer performance, the results are as below:

linpack5

But situation changes a lot when it comes to 3 nodes with 12 cores, P = 12 with Q = 1 performs much worse than P = 1 with Q = 12, the results are as below:

linpack6

Maybe the only way to find the best combination is through your own exploration.

 

So these are some experience these weeks, though I’ve not achieved a satisfying efficiency, I am sure the performance can be improved in many ways, also I am very appreciate George for guidance and Xavier for precious suggestion.

 

Lewis Liu 刘贤斐

PM Intern,Microsoft STB China HPC

来看看我们的产品 之 为Windows HPC Server 2008选择合适的网络拓扑结构

大家好,我是HPC组的DEV朱仁琪。在加入微软的一年里,非常有幸能够亲眼目睹我们的Windows HPC Server 2008捷报频传,从第一个Beta版本到最近发布的社区预览版本(CTP),功能越来越强大,着实令人兴奋。在此我和大家一起分享一下我对于Windows HPC Server 2008网络配置的一些心得。

众所周知,配置集群的网络通常是一件令人头疼但却又无法逃避的复杂工作。为了简化这项工作,Windows HPC Server 2008提供了一个向导(Network Wizard)来帮助我们完成网络的配置,如下图所示。

Network Wizard

在上图中我们可以看到,Windows HPC Server 2008支持五种不同的网络拓扑结构。那么我们应该如何去选择一个合适自身情况的拓扑呢?且听本文慢慢道来。

首先,让我们来了解一下各种拓扑结构中涉及到的三种网络:

  • Enterprise网络(企业网络,在Beta 1中称为Public网络)

不仅集群中的节点可能连接到这个网络,企业或机构中的其他计算机通常也连接到这个网络。大多数用户通过这个网络来进行通讯,进行他们的日常工作。

  • Private网络(私有网络)

这是集群的内部网络,它可以用来承载集群内部节点间的通讯,集群外部的计算机通常无法连接到这个网络。

  • Application网络(应用网络,在Beta 1中称为MPI网络)

这是一个集群内部的高速网络,通常具有很高的带宽和很低的延迟,可以用来满足集群内部并行MPI程序的通讯需求。常见的高速网络有Gigabit Ethernet、10 Gigabit Ethernet、Myrinet©、InfiniBand©等等。

Windows HPC Server所支持的五种拓扑结构的区别在于包含上述网络中的不同子集,并且计算节点(Compute Node)能够连接到的网络有所不同。

  • 拓扑1:集群有Enterprise和Private两个网络,计算节点仅能连接到Private网络。
  • 拓扑2:集群有Enterprise和Private两个网络,计算节点可以同时连接到这两个网络。
  • 拓扑3:集群有Enterprise、Private和Application三个网络,但是计算节点只能连接到其中的Private和Application网络。
  • 拓扑4:集群有Enterprise、Private和Application三个网络,计算节点可以连接到所有这三个网络。
  • 拓扑5:集群只有Enterprise一个网络,所有节点均在这个网络上。这是五种拓扑中最简单的一种。

在这五个拓扑结构中做出选择之前,我们可能会需要考虑这样一些因素:

  1. 是否想要利用Windows HPC Server 2008提供的一系列新的部署工具来部署集群中的节点?Windows HPC Server 2008利用Windows部署服务(Windows Deployment Service,简称WDS)来简化部署集群节点的繁琐工作,使得我们可以很方便的完成集群的部署(参见来看看我们的产品之Windows HPC Server 2008部署初体验)。如果您想要使用这项便利的功能,那么拓扑5将不在您的选择之列。
  2. 是否希望将集群内部的通讯同企业或机构内的其他通讯分离开以获得更平衡更好的网络性能?如果没有这种需求,可以考虑拓扑5,否则前四种拓扑会更为合适。
  3. 是否需要一个高速网络来承载MPI并行程序的通讯需求以获得更进一步的性能提升?如果您的答案是肯定的,拓扑3和拓扑4将会是最佳的选择。如果所有的应用程序都没有基于MPI程序库进行开发,那么Application网络就不是必须的,此时您可以考虑其他三种拓扑结构。
  4. 计算节点是否需要大量的访问位于Enterprise网络或Internet上的资源?如果是的,我们建议您使用拓扑2、4或5。虽然在拓扑1和拓扑3中,计算节点可以通过头节点(Head Node)上的NAT服务访问外部网络,但是此时所有与外界的通讯都需要通过头节点,头节点可能会成为性能的瓶颈。
  5. 安全性与访问方便性的平衡。拓扑1和拓扑3将集群内部的通讯与外部的通讯分离开,集群外部无法直接访问集群内部的节点,提高了集群的安全性。其他三个拓扑则将所有节点直接连在Enterprise网络上,使得在集群上开发和调试应用程序变得容易。所以您将不得不在安全性与访问方便性之间做出取舍。

我们可以将上述因素总结如下表:

拓扑1
拓扑2
拓扑3
拓扑4
拓扑5
计算节点连接到Enterprise网络
计算节点连接到Private网络

计算节点连接到Application网络

支持WDS
集群内部通讯与外部通讯分离
具有高速网络来提高MPI并行程序性能
计算节点需要大量访问集群外资源
较高的安全性

较方便的访问集群内节点

怎么样,现在是不是觉得很简单地能够在Windows HPC Server的五种网络拓扑结构中做出合适的选择呢?:)

 

Renqi Zhu

DEV, Windows HPC

Shanghai, China

HPC近况更新
  • Windows HPC Server 2008 产品里程碑: 自去年11月在超算大会上发布Beta 1以来,我们在3月底和这周分别发布了Windows HPC Server 2008的两个社区预览版 (Community Technology Preview, CTP版本) 这两个版本分别增加了不少功能(也修掉了不少bugJ),欢迎大家从www.microsoft.com/hpc下载最新的版本试用,给我们发送反馈意见。还可以利用HPC MSDN 论坛得到产品支持http://forums.microsoft.com/WindowsHPC
  •  HPC 垂直领域新闻: 3月底, 微软公布了石油天然气行业调查问卷的结果,结果表明这一领域对HPC的需要比以往任何时候都要强,增加HPC的使用将会帮助提高产量,支持决策,减少钻井延迟和消除项目危险。详情见