HPC中国研发团队

微软亚太研发集团服务器与开发工具事业部高性能开发团队的中文博客。

HPC中国研发团队

  • 送给四川山区的儿童一份礼物 -- 希望小学 Give the gift of education and change someone's life!

    各位朋友:

    我们微软高性能计算上海团队去年探访了四川省一所条件艰苦的村小,那正是我们团队其中一员魏臻的家乡所在地。我们当时带去一些教学物资,捐了7000多人民币,之后其他团队有的同事也表示出了捐助的意愿。在此,我们恳请大家更进一步地支持慈善、传递爱心 –– 我们将会争取在今年六月前募捐到20万人民币(约3万美元),为那里的孩子们建立一所希望小学。

    · 目标简介 我们想与明日中华教育基金会(CTEF)合作,捐建一所小规模的小学。CTEF,是在西雅图注册的非盈利组织,旨在帮助改善中国农村教育状况,他们与微软以及华协(CHIME) 有长期良好的合作关系。如果能募集到20万人民币(包括微软对员工的等额匹配捐款),我们就能为70多个孩子和他们的家庭拥有一所学校的美梦成真。

    · 背景动机 我们团队去四川旅游的时候,在网上偶然得知当地南充日报对魏臻家乡的一所“夫妻小学”的报道。该山区以务农为主,主要收入来源为外出打工的农民工,人均月收入只有 600元左右。三年以前,很多孩子辍学在家,因为乡中心小学距离太远,低龄儿童无法独立上下学或住校生活。鉴于此,一对夫妻老师建立了这个民办村小,教书育人,这也重新燃起了许多家庭的希望。因经济拮据,他们租用农民房作为两间教室,一间土坯房,一间砖瓦房,房屋破旧,光线昏暗。该村小的运营费用,包括教师工资、蒸饭工人工资和房租等,仅靠幼儿园学生缴纳的学费和国家财政为每个小学生配发一年250元的补贴。由于房租年年上涨,连这样简陋的小学也渐渐难以为继。在探访期间,我们被孩子们的求知渴望和老师的无私奉献所深深感动,详情请参阅我们发在微软亚太研发集团博客上的文章

    · 请您行动

    o 我们春节后会在微软上海的办公楼组织一场项目介绍会,期待您的参加。到时您可以选择现场捐款,或是之后通过银行转账到我们的专户里面(详情届时在本页更新)。我们计划在学校的介绍铭牌刻上捐款达到或超过1000元(或200美元)的热心朋友的名字。

    o 口口相传:转发这封email或转讲这个故事给您的家人朋友。

    clip_image001 clip_image002

    clip_image003 clip_image004

    · 问题解答

    o 本次募捐仅限于微软技术计算(TC, Technical Computing)部门吗?

    § 不是,这一慈善努力由我们TC部门员工发起,乐于接受所有热心人的捐助。

    o 如何确保合理使用我的捐款?

    § 魏臻,将作为CTEF的志愿者担任本项目的项目经理,负责跟踪和监控捐款的使用情况。我们找到一位信得过的乡中心小学副校长作为当地联系人,将会详细记录和报告捐款使用情况,并在学校建设的各个阶段发送照片。

    o 新学校的所有权归谁?各利益相关方都协调好了吗?

    § 我们已经与村小老师、村委会领导、乡中心小学校长和县教育局官员达成书面协议:新学校归村委会所有,仅限于教育目的。CTEF董事会也同意了我们的项目提议。

    o 该小学位置在哪?

    § 四川省南充市营山县合兴乡糖房村大垭口http://cn.bing.com/ditu/?v=2&encType=1&cid=806B47350BB8F7FC!3502.

    o 如果这两位老师不能继续上课了怎么办,特别是政府最近在推行“清退民办教师”的政策?

    § 乡中心小学的校长称没有接到任何通知,在当地师资力量有限的情况下清退民办教师不太现实,就算以后清退了,他承诺会安排其他正规教师来这里上课。

    o 小学的占地面积和每平方米成本是多少?

    § 占地约400平方米,预算建设成本约500元/平米。由于两个原因成本比预想的略高:1)该址交通不便,从县城开车4小时,还要走30分钟山路,故而运费较高;2)经实地考察拟建校位置,地基需要打得比较深。

    o 捐款仅限于二月吗?小学什么时候竣工?

    § 无此限制,二月的捐款将用于修建小学,计划于今年秋季开学前竣工。二月以后的捐款将被用于购买教学用具:桌椅、书籍、乒乓球台等。

    o 其他问题或建议?

    § 请Email联系魏臻George Yan

    后续的捐款、进度情况也会在这个博客上列出。天寒人心暖,让我们伸出温暖的手,送给四川山区的儿童一份礼物 -- 希望小学。恭祝大家新春快乐!

    We Microsoft HPC Shanghai team visited a poor-condition village school in Zhen Wei (one developer in our team)’s hometown, Sichuan last year after the major earthquake; we donated over 7K RMB on the spot. We’re writing this email hoping for your support on the next phase of this charity effort – try to raise 200k RMB (or 30k USD) before this June to build a small school.

    · What we want to do  We would like to help build a small elementary school, partnering with a Seattle-based Non-Profit Organization China Tomorrow Education Foundation (CTEF, aiming to improve the education in rural China). If we can raise 200k RMB (30k USD) with Microsoft’s match for employee’s donation counted, then we can make the school a dream come true for 70+ students and their families.

    · Why we want to help We went to Sichuan for morale trip and happened to know this “Couple-Run School” from a local newspaper’s report in Zhen Wei’s hometown. The mountain area has only agriculture as the major industry. While the main incoming comes from migrant labor force working in big cities far away, the average incoming is about 600  RMB (less than 100USD) per month. 3 years ago, many students there discontinued studies because it’s too far away to go to the only one central primary school ran by government. At that time, 2 teachers (husband and wife) founded this small school outside of government education system, to keeping the education for the local children -- the hope for many families. The teacher are running this small school with 250 RMB/year for each elementary school child from country finance and kindergarten students’ tuition fee and need to cover rental. Due to limited income, they are renting 2 terrible-condition classrooms from a peasant and barely able to afford the increasing rental fee. During the trip, we are deeply moved by the children’s hunger for learning and the teachers’ devotion for education. Microsoft China R&D blog has forwarded our trip report.

    · What help we need from YOU

    o Come to the project introduction meeting in Microsoft Shanghai office after Chinese New Year. Then you can choose to donate on the spot or later, cash or bank account transfer. (More information will be posted here.) We plan to make a plaque listing the donor names above $200 (or 1000 RMB).

    o Spread the word: Forward this email or tell this story to you family and friends.

    · FAQ

    o Is this donation restricted in Technical Computing organization, Microsoft?

    § No, we as TC team is initiating this charity effort and appreciate donations from all warm hearted people.

    o How do I know the money will be well utilized for the school project?

    § Zhen Wei will be the project manager, as a CTEF volunteer, responsible for tracking donation usage and monitoring the construction periodically. He has identified a vice-principal of the central village school as a worthwhile coordinator, and will report detailed donation usage and send photos for each important construction milestone.

    o Who will be the new school owner? Do all stakeholders agree with this plan?

    § We’ve got written agreement from the teachers, village head, central school principals and county education bureau officers:  New school will be founded for education purpose only, and will be owned by village governing committee. CTEF board meeting has agreed our project proposal.

    o Where does the project locate?

    § Dayakou, Tangfang, Hexing, Yingshan, Sichuan. http://cn.bing.com/ditu/?v=2&encType=1&cid=806B47350BB8F7FC!3502.

    o What if the 2 teachers cannot sustain, especially when government pushes the “Forcing unofficial teachers to quit” policy:

    § The central village school principal doesn’t think this can be executed in the coming years, and commits to arrange other teachers there if that happens.

    o What’s the school floor area and cost per square meter?

    § It’s about 400 square meters and 500 RMB/square meter. The cost is higher than expected because of 2 reasons: 1)the transportation material transportation fee is high due to terrible traffic and long distance – 4 hours’ drive from county and 30 minutes’ walk from road to the school. 2) It needs deep digging to build a good foundation after experiment.

    o Is February a hard stop for donation? When can the school be built up?

    § No, donation in February will be used for school construction. The school is planned to be put to use for next semester(September). So donation after February and before September will be used for buying desks, books, Ping-Pong tables, etc.

    o Other questions or suggestions?

    § Just drop Zhen Wei and George Yan an email.

    Following donation and progress can be tracked on this blog. Give the gift of education and change someone's life! Wish you a happy New Year!

    school

    Page1

    Page2

  • Visual Studio 2010 Beta1 中的 MPI Cluster Debugger

    在Windows HPC中写过MPI程序的朋友们应该用过Visual Studio2005/2008中的MPI Cluster Debugger吧。网上也可以搜到不少关于这方面的使用教程(blog, white paper)。在集群中调试MPI程序感觉如何?MPI Cluster Debugger用起来方便吗?Visual Studio 2010 Beta1已经发布,我们HPC组对其中的MPI Cluster Debugger做了很大改进,尽可能地使它变得更加便捷。下面就跟随我一起看看吧!

    在同样的地方( 项目属性页面) ,我们找到了MPI Cluster Debugger。不同的是,原先寥寥无几的参数被现在的一群参数所取代。不过不必担心,我保证大家很快上手。其实,在大多数的情况下,只要填写其中的3个参数。对于其他参数,MPI Cluster Debugger会使用默认值。

    image

    既然要在Windows HPC Cluster中调试程序,那么总得指定集群的头节点以及运行MPI程序的计算节点吧。“Run Environment”就是我们的第一个必填参数。点击”Edit Hpc Node…”即可进入”Node Selector”对话框。在此框中,我们可以选择想要使用的集群和计算节点。既可以笼统地指定所需要运行的MPI进程的个数,也可以精确地指定在那几个节点上分别运行多少个MPI进程。在选择节点时,我们还能看到各节点CPU实时负载情况。若仅仅想在本机上调试,运行4个MPI进程,则填入”localhost/4”就可以了。

    clip_image002

    clip_image003

    另一个必填参数是“Working Directory”。这是MPI程序运行的目录,必须是一个本地路径。若不存在,MPI Cluster Debugger会帮你创建。“Application Command”是第三个必填参数,通常使用宏“$(TargetFileName)”即可。它指定了需要调试的那个MPI程序。

    clip_image004

    “Deployment Directory”参数是可选,默认值是”\\<HeadNode>\CcpSpoolDir\<UserName>”。安装好Windows HPC Cluster后,CcpSpoolDir就会被创建并共享。若不想使用该默认值的话,需要填入一个网络共享路径,并且用户有读写权限。

    Visual Studio 从2008 SP1开始就有“Debugger Type”参数,于是我们有了选择调试器的自由。通常选择”Native Only”。若你是用MPI .Net写程序的话,那就选择”Managed Only”。

    clip_image005

    其他参数我就不一一赘述了。每个参数都有解释,相信大家可以看明白。不明白的话,那就回贴问我吧。

    填好以上参数,就可以使用MPI Cluster Debugger的基本功能了。按”F5”,你的程序及相应的pdb文件会被部署到刚才选的那些节点上,然后MPI进程就运行起来了。在”Output View”中,你可以看到MPI Cluster Debugger所做的工作。若有错误发生,在这里可以看到详尽的错误信息,不至于手足无措。在”Processes View”中,你将看到正在运行的MPI进程。

    clip_image006

    clip_image007

    以上是对MPI Cluster Debugger的简单介绍。在Visual Studio2010正式发布之前可能还会有一些改动。若大家有什么建议,欢迎回帖。谢谢!

  • “糖房村明日中华小学”落成典礼

    9月25日,我和三位同事张璐、熊小锐、赵迎宾拜访了由各位热心同事朋友捐资修建的四川山区村小,与村民、师生欢聚一堂,共同参加了“糖房村明日中华小学”的落成典礼。

    在我讲述走访村小的故事以前,废话几句。这个国庆我终于看了仰慕已久的一本书《三杯茶》,讲一个美国登山者Greg Mortenson,在攀登世界第二高峰K2失败后,饥寒交迫,又迷了路,幸而得到巴基斯坦村民的搭救。虽然村民们很穷,一年吃不上一次肉,还拿出了家里最好的东西,热情地款待了他。在那里养病过程中,他注意到该村的84个孩子坐在门外,用小木棍在泥地里扒拉着识字上课。这村子穷到连一天花一美元雇名教师都做不到。Greg离开村子时,他立誓一定要回来,为恩人们建所学校。他辛苦奔走,历时12年,迄今为止在巴基斯坦和阿富汗地区建了60余所学校。但故事绝不是一帆风顺的,Greg最初尝试写信给580位名人、商人和其他美国精英人士筹集钱款,结果只收到100美元,还需要面对恶劣的自然条件、地头蛇的算计和塔利班的监狱,对比一下我们项目的大事记(如下),我只觉得自己是多么的幸运啊。另外很受触动的是,我们并不需要等到很有钱了才能为公益慈善事业做很大贡献,因为钱从来都不是最重要的因素,很多事情看起来不可能,但这也许是因为我们对“关注圈”和“影响圈”的归类有些悲观,太容易找到借口说服自己接受“不能改变的事情”?

    • 2009年4月28日,在看到一篇“大山深处的夫妻小学”报道后,HPC组一行十人实地考察四川省营山县合兴乡糖房村大垭口民办村小地理位置)。
    • 2010年2月7日,HPC组发出倡议书送给四川山区的儿童一份礼物 -- 希望小学 Give the gift of education and change someone's life!发起非公司名义的慈善募捐,准备分两阶段捐资助学:第一阶段与在美注册非盈利慈善组织CTEF“明日中华教育基金会”合作捐资新建村小校舍(立项20万元人民币,所有个人善款和公司的匹配捐款汇入CTEF,如不足20万元由CTEF补足),第二阶段捐助内容在校舍修建完毕后视情况而定。
    • 2010年2月25日到2010年3月8日,在举行捐建四川希望小学项目介绍会后短短两周时间,募集到国内同事和朋友的捐款79584元人民币,在美国的同事和朋友为此项目向CTEF的捐款无法完全统计,大致估计约合人民币2至3万,包括《微软的测试之道》翻译团队稿费14463.36元人民币。
    • 2010年4月5日,在我们在当地的委托方王全明副校长收到首批十万元人民币工程款后,村小校舍正式动工。
    • 2010年8月19日,校舍建成,村小八十多名师生搬出昏暗的租借民房,从此有了属于自己的崭新校舍!
    • 2010年9月25日,村小落成典礼。

    等村小修好了之后去看看,是我们大家共同的心愿,听听可爱的捐助人怎么说:

    Claire Chen: I will take a 6 months rotation role in Redmond later this month so I would not be able to join you for this trip. Although I really wanted to. Can I donate some cash so that you can buy some pencils and books over to them? I know it’s gonna be heavy, but please do help to get something for them. I feel heart broken when I saw those kids with broken desks.

    Wu, Jiajie (with Intel): Thanks for organizing this, it is a pity that I can not go this round as I am in the process of buying a new house, and I need to stay here in Shanghai next week in case anything come up on the load side. I missed the fund raising activity last Friday, but I would like to donate 1000 RMB to your account for you to take to the kids and buy them some new books, or clothes they need.

    不过因为工作或家庭的原因,想要付诸实践并不容易。所以这次村小之行大家就被我们STBC的四位志愿者代表了:张璐(Stephanie Zhang, CTP)、熊小锐(Sherry Xiong, STBC ESSENTIAL)、赵迎宾(YingBin Zhao, Atlanta, STBC)和我(Zhen Wei, HPC, STBC)。最可惜的是闾烨(Lillian Lv)同学,机票都买好了,却因为临时的变故不得不取消行程,那白花花的银子,我都帮她心疼。据最终成行的其他三位代表说,品川菜之香则乐思蜀,爬山城之梯则心念沪,我把这次的成都-〉村小-〉重庆之行安排得井井有条,面对麻辣诱惑也没忘了一逞“口舌之快”,不去当导游真是入错行了,想去的同学下次报名请早啊,应该和这次一样,食宿还是自费,每人花费总计约为2500元。

    从上海出发,3个小时飞机到成都,4个小时汽车到营山县,3个小时汽车到合兴乡,半个小时山路徒步到村小。9月25日,蒙蒙小雨,我暗暗埋怨“天公不作美”,有点担心是否能按照预想时间到达村小,山路会不会太泥泞难行,打电话给村小的阳老师,他却说是好日子就是要下点雨,这个日子是几个月内来最好的两个黄道吉日之一,好多村里人都高兴地等着我们去呢。一大早两辆轿车从县城出发,满载着我们从上海带去的衣服、书包、纸笔、橡皮泥和在县城买的乒乓球器具等,沿着弯弯曲曲的山路开往合兴乡,随行的还有县教育局的副局长、县外事台侨办主任和他们找来的电视台记者等人。十点多到了合兴乡,还好雨停了,车刚在路边停下来,就看见有好几个村民等着我们。原来一些热心的家长,听说我们带了不少礼物给孩子们,已经带着赶集用的竹背篼来帮忙搬去山里的学校。一个大姐兴高采烈地说“我们这些小孩子有福气哦,这些上海的叔叔阿姨这么远,给他们修了学校,还带礼物来。”然后我们就一大队人浩浩荡荡走向村小,除了我,另外几位志愿者都不是在山区长大的,走山路欠缺技巧,而且去村小的路上有好长一段下坡,没有像样的石阶,他们一路上滑倒好几次,看得我和村民都心惊肉跳。

    远远地,就听到了村小里孩子们稚气而嘹亮的歌声--“爱心叔叔来了吗?爱心阿姨不怕苦,我们大家学习他,学习他们的好榜样,我们在学习上要努力,长大了不忘记,不忘记叔叔的爱心,学习他的好榜样。”和上几次来一样,廖老师指挥着孩子们唱着她自己作词作曲的歌欢迎我们的到来;和上几次来一样,我又被深深打动了。忘了是谁说的,这一刻开始觉得前面走那么辛苦的山路都是值得的。快步走到新建的村小校门,不太宽敞的校园已经被学生、家长和他们的欢声笑语挤得满满的,升旗台下搭了一排“主席台”,教室外墙张挂着大红的横幅,校门外准备了鞭炮,没想到村里把这个“糖房村明日中华小学”的落成典礼搞得如此隆重,安排了升国旗、嘉宾和学生代表发言、剪彩等环节,村小还送给我们捐赠方两件珍贵的礼物:一面锦旗和一个装有全部学生照片的大相册。细雨又开始纷飞,孩子们的头上都沾满了晶莹的白糖,仪式结束我赶快让老师把孩子们领进教室。

    接下来,按我们的计划是给孩子们上一节课。幼儿园和一年级有小孩子在哭闹,幸好有像大姐姐一样亲切的熊小锐在廖老师的配合下带着小朋友们一起高兴地做游戏;赵迎宾按照备课给“高年级”的学生寓教于乐地讲解了“二分法”找数。可爱的孩子们面对镜头,有的兴奋,有的淡定,但那份纯真,是任谁看了心都要为之柔软的。教室窗外挤满了家长,大都是老人或妇女,也就是当地人自嘲的386199部队--包括妇女儿童和老人的留守群体。从他们殷切的眼神,不难看出,这些下一代就是他们的希望,他们在大山里辛苦劳作了大半辈子,多么希望儿孙能学有所成,改变这面朝黄土背朝天、靠天吃饭靠地收的命运。夫妻小学”的这对夫妻老师以前走家串户地苦口婆心劝说要让孩子们上学,现在已经卓有成效,邻近几个村的村民普遍认为应该要送孩子读书,老师们可以专心教书育人了,而我们则只需要有一分热,发一分光,努力帮助改善办学条件。

     

     

    营山县建设工程质量安全监督管理站于7月6日现场考察,出具《关于合兴大垭口小学工程质量情况说明》,结论:该工程质量状况良好,满足使用要求。我跟县教育局副局长和县外事台侨办主任、合兴乡乡长、合兴乡小学校长、糖房村支书、委托监管人王全明副校长以及一些家长等仔细察看了校舍,对最决定建筑质量的基础材料辨识讨论,一致表示认可。与上次项目进展汇报相比,用电安全、室内粉刷、窗户玻璃等问题已经解决,购买的85套桌椅已经投入使用。水井还没完工,因山地条件限制,引自来水成本太高,村民基本都抽井水接水管使用,厕所也是砖瓦房,不过里面条件稍差,需要提桶冲洗,因地制宜建了化粪池,村民表示这样就够了,一是节约水二也方便收集农肥。我还拿到项目明细账目、汇款收据等原件,和施工方、王校长进行了一一核对,账目清晰详细,连钉子钱都一笔一笔计算在内,看起来没有问题。

    中午,我们受邀在附近农户家吃饭,就是在我春节时去吃过“杀猪菜”的颜社长家。主人热情地准备了好多农家菜,新鲜质朴,连咸菜都那么香。下午我们驱车访问了合兴乡完全小学。我们捐建的“糖房村明日中华小学”是一所政府教育系统编制外的民办村小,位于合兴乡糖房村,招收了邻近四个村的八十几名学生,而这个合兴乡完全小学则是“糖房村明日中华小学”的上级主管公办学校,包括小学初中共9个年级,条件也好了不少。电脑教室有二三十台电脑,由国家财政几年前配发,但因为硬件落后、维护费用高,已经基本无法正常使用,灰尘蜘蛛网都能看到。多媒体教室配有幻灯机和投影仪,是最受学生欢迎的上课形式,每个班一周能上一两次。老师会议室里装了基于电视的远程学习系统,有时成都的老师通过这种方法向他们传授一些教学方法技巧。

     

    我们几个志愿者回上海后聊了下一步的计划,建议项目的对象还是以村小为主,锦上添花,不如雪中送炭:

    • 如果项目有继续的必要,就一定要在十月成立一个项目小组,改变主要由我单打独斗的局面。
    • 爱心支援着力点
      • 改善硬件:订阅杂志报纸,PC/道路/玩具/书/文具/教具(录音机等),修建道路
      • 捐赠资金:设立奖学金/结对捐助(阳老师介绍该村小有两三名学生家境较为困难,可以利用县团委的爱心助学网渠道)。
      • 加强交流
        • 学生与志愿者面对面交流:志愿者访校/支教,可配合结对捐助达到更好的效果。
        • 学生与志愿者远程交流:书信/借用合兴乡完小的远程教育系统沟通。
        • 学生与外面的世界交流:收音机/到县城希望小学甚至成都与同龄孩子交流。

    以下是张璐、熊小锐、赵迎宾几位整理的详细笔记,再次感谢几位可敬可爱的志愿者!

    For Village School

    Issue

    Current Status

    Needs of Improvements / Possible solution

    Importance

    Emergency

    What Microsoft Volunteer Group Can Do

    What local Gov / Community  can do

    Notes

    shortage of toys The teacher is baby-sitting half of the total students    Toys needed as the teacher come up with High High Call for toys donation from MS or public channels Help to transfer To discover other ways to help the teacher to ease baby-sit pressure

    The road to school is not good

    There is only a mountain track students and teachers need to climb over on daily base, the road which vehicle can use is not standard one 

    Build up or improve the road

    High

    Low – the work of building up a road takes long time, money, resource and a lot of commitment from local gov, and the local residents are get used to the current situation, so the improvements on road can be hold on for a while when we have more funds

    Remember to bring it up when the time comes

    To get funds or utilize the funds to improve the road

     

    Lack of basic stationary

    There is lack of funds to support the basic stationary (Test book, exercise book, pen, etc), previous donations are used on school construction, desks & chairs etc.

    Provide basic stationary 

    High

    High

    Donation stationary or  gather funds to purchase items

    Help to purchase those items, and deliver to school

     

    Water Supply

    No water supply in the school

    Provide water supply

    High

    High

    Bring it up to local community, provide funds if needed

    Build up water supply system

     

    Reading materials storage

    The school has various books donated from others, however, it does not have a book shelf to proper store / display the books

    Build up a book shelf

    Medium

    Medium

    Bring it up to local community

    Build up a book shelf

     

    Connections with outside

    With electricity enabled, the school is be able to use broadcast, not sure if they can receive Radio signals (due to the physical location) 

    If can use the FM/AM Radio, then check if they have one, if not, provide one;

    Magazine / newspaper  subscription

    Normal

    Normal

    Make the subscription for the school, ask local community to ensure the delivery

    Make sure the delivery of the  subscription

     

    Teaching Resource

    Only got 2 teachers (semi-funded) for 80+ students aged 6-10

    Have more teachers especially after the current ones are too old to continue the work

    High

    Low

    Need open for discussion

    Provide teaching resource

     

    School Construction Follow Up

    Only build 2 class rooms and 2-3 small rooms in between, might need enhancement  for earth quake, storm etc

    Zhen is working on this with CTEF

    High

    High

    Need open for discussion

    Depends on the action items of the discussion

     

      For Primary & Junior High School (完小)

    Issue

    Current Status

    Needs of Improvements

    Importance

    Emergency

    What Microsoft Volunteer Group Can Do

    What local Gov can do

    Notes

    Lack of computers

    Computers are too old to be used

    New computers / skills for computer repairing

    High

    High

    Check with Zizhu Council, Finance, LCA to see if we can donate the retired machine to the school

    Ensure the delivery

     

    Limited Remote Teaching Resource

    Only one remote teaching center for training up teachers

    Improve the teachers’ qualification, provide training to teachers as well

    High

    Normal

    Check with SH local schools to see if we can get some support

    Check with Zizhu Council to see if we can get some connection with local Unis

    N/A

     

    Sponsorship

    Sponsorship from various parties ( local gov, Edu Department, Donations etc)

    Set up Scholarship for students with high achievements ( in moral, scholarship etc);

    Set up scholarship for students whose families  are indeed need the economy help

    Normal

    Normal

    Provide Funds or set up connections with various format of sponsorship ( like trip in ChengDu for the students and teacher etc)

    Provide the information on students who need sponsorship; execute / monitor the sponsorship to ensure the help would reach those who need them. 

     

    最后,把锦旗和孩子的笑容送给大家。虽然锦旗上只写了“微软中国上海分公司”,但众所周知这个村小的建成,离不开许许多多微软上海以外的同事或朋友的关心和支持。这村小,是你们的骄傲,而你们,是我的骄傲!

  • 第8章 用户体验:上海汽车工业集团(上)

    中国是个制造业的大国。但在制造业中高性能计算普及度并不高。原因如同郎咸平教授所说,中国制造业企业大部分从事来料加工,处在制造业下游利润最低处。没有自主产品的设计,就无法获取丰厚的利润,也无法使企业的可持续增长有任何保障。本章我们走近我国一个具有自主设计能力的制造业公司——上海汽车公司。在上汽,高性能计算在产品设计中起到了举足轻重的作用。

    过去,基于Linux系统的集群给IT部门和工程师带来诸多管理和使用的障碍,使高性能计算技术在上汽各部门难以推广。从2009年开始,上汽IT部门成功地部署了Windows HPC Server集群及应用,成功地将高性能计算资源提供给多部门、上百个设计工程师,大大地提高工程师的设计的效率,同事降低了IT部门的管理开销。

    我们在本章介绍上汽的商务需求,过往使用Linux系统遇到的挑战和Windows HPC Server 解决方案带来的优势。 在以前的章节里,读者了解到Windows HPC Server 如何能够简化上汽系统和作业调度的配置、定制和管理。在本章,我们着重介绍简化提高工程师运行应用、监控结果的另外一个常用的解决方案 —— 仿真门户系统。

    本章的8.3~8.6节内容是摘录泛云公司的《仿真云计算平台SimCloud解决方案—Windows HPC 架构》白皮书,8.3~8.6节的内容属泛云公司的知识产权。笔者得到泛云公司对8.3~8.6节内容的书面许可,特此鸣谢!

    本章要点

    • 上海汽车工业集团简介和商务需求
    • 计算机辅助仿真(CAE)在高性能计算环境的应用现状和挑战
    • 泛云SimCloud:基于Windows HPC Server 的门户环境
    8.1 上海汽车工业集团简介和商务需求

    作为中国三大汽车制造商之一,上海汽车工业公司(简称上汽)主要致力于生产、销售、研发客车、商务车及其部件。在2008年,上汽销售超过182.6万辆车、营业额超248.8亿美金居全国榜首,在全球五百强企业中居第359位。上汽也在自主设计、生成和销售自己的品牌的小轿车,包括荣威750、550,MG 3-SW,MG 7和MG TF的品牌在中国成功推出,增强了上汽的品牌形象。上汽高性能计算中心是为了支撑自主品牌的小轿车的设计和安全分析。

    上汽开始主要为其他汽车厂商,如大众和通用。 自2004年其, 上汽开始自主设计和生产自己品牌的汽车。一开始他们使用的是租用的设计和测试设备。到了2006年,上汽开始创建自己的设计中心。

    2007年,上汽购买一个基于RedHat Linux操作系统高性能计算集群并使用此集群运行汽车设计模拟仿真应用。上汽在此集群上运行多种商业计算机辅助设计应用,包括FLUENT, STAR-CD, STAR-CCM, LS-DYNA, MSC.Nastran 和 ABAQUS。

    对于熟悉Windows工作站的工程师和管理人员来说, 管理、定制和使用一个基于Linux的集群是有很大的挑战的。 工程师被迫使用Linux的命令行界面与集群交互。这种体验既不友好又费时,极大地限制了IT部门向其他部门推广计算资源的能力。许多工程师情愿继续使用安装在Windows工作站上的应用。

    8.2 基于Windows HPC Server解决方案和优势

    2009年夏, 上汽决定采纳基于惠普刀片机和Windows HPC Server 2008 的集群。 他们发现应用在HPC Server集群在性能上和Linux集群是同等可比的,而在使用和管理的便捷性上远超Linux集群。尤其是系统的可定制性极强,可以满足不同部门的需求。

    上汽、北京微软计算中心和泛云公司一同开发了门户系统,在Windows HPC Server集群上成功部署了10个不同的工程仿真应用,前后只用了两个工程师两个月的时间。门户系统将HPC Server 2008 作业调度器和管理工具和上汽的工程应用无缝集成,为提交和管理作业提供了一个可视化的用户界面。门户系统也和活动目录域服务集成使得工程师能够如同使用任何上汽企业网上的资源一样方便地使用Windows HPC Server 集群。

    使用Windows HPC Server 作业调度器,上汽能够高效地提交并有策略地调度作业,使最关键的作业得到应有的优先级别。 上汽可以很容易地定制这个门户系统来满足不同部门的负载管理需求,这对于Linux集群来说是很困难的。 迄今,已有5个部门的200个工程师使用Windows HPC 集群,用户的人数还在增加。某些远程现场的用户也可以简单地通过Web界面访问HPC资源。 工程师能够在熟悉的工作环境里使用友好的用户界面,因此他们能够集中更多的精力在他们最擅长的工作上:设计顶尖水准的汽车!

    转换到Windows HPC Server 集群后, 上汽极大限度地简化了使用HPC资源的模式,大大地提高了工程师的效率,将有价值的计算资源推广到更多的部门。使用Windows HPC Server 的管理控制台界面,IT人员在管理效率上提高了至少20%。 近期内上汽计划将现有的集权扩容一倍,逐渐将Linux集群上��负载迁移到Windows。

    8.3 计算机辅助工程(CAE)在高性能计算环境下的应用现状和挑战
    8.3.1 应用场景

    CAE、CFD为代表的工程仿真软件是高性能计算的重要应用方向,同时HPC也是各类工程仿真软件应用过程中的最为重要的性能优化解决方案。近十年来,工业界、HPC方案商不断的沟通需求,企求逐步明确、深化、提升彼此价值,维系、增强、拓展合作关系,然而由于视角的不同,一直未能产生真正理解客户需求、方便客户部署使用的面向仿真应用的高性能计算解决方案。

    泛云科技作为独立的HPC/CAE方案提供商,在不同工业领域的仿真应用客户中进行了广泛调研与深入探讨,归纳总结出以下几类典型场景:

    场景一,工程师小张从学习某款仿真软件开始,就一直习惯使用个人电脑PC进行计算,可是随着PC的CPU主频技术出现了瓶颈,小张的计算工作效率就出现了停滞,无法针对工程问题进行大规模网格的解析仿真,小张因此苦恼不已;

    场景二,公司IT部门的小李得知小张的困境之后,建议小张利用多台PC组建了一个小型的计算网络,同时向公司领导申请引进了仿真软件并行License,利用分布式并行计算技术缓解了计算任务无法进行的燃眉之急。然而,过了不久,小张又开始犯愁了,PC组网极其不稳定,经常让计算工作半途而废,工作效率无法保证,并且,仿真团队由于任务多又引进了一位新人小王,而软件License价格昂贵,目前二人只能协调共享一个License,但是小王经常无法及时获得软件License权限,难以有效开展工作;

    场景三,IT部门经理老杨在得知这些情况之后,果断拍板引进高性能计算集群,并且从国外引进了任务调度软件,小张看着用户手册依样画葫芦的输入一些命令,总算成功的调用集群进行仿真计算了,小王也在集群空闲的时候过来学习使用调度器,仿真团队正常运转了,真是可喜可贺啊!可是,过不了多久,老杨就发现小张、小王都不来计算中心了,反而在自己的PC上装了仿真软件开始计算了,老杨这可生气了:“公司花了大价钱配套了计算设备和任务调度软件,你们怎么这么不知道珍惜呢?”其实小张、小王也有很大的委屈:“输入那一堆命令太麻烦了,根本就没有在PC上面那么方便,而且提交一个计算任务上去了,我就得时不时地往计算中心跑,担心计算状态,多麻烦啊!小规模的题目我还不如在PC上面计算呢!”

    场景四,小王逐渐熟悉了仿真软件,工作量也渐渐多了起来,某天领导将一个非常紧急的计算任务交给了小王,小王马不停蹄赶到计算中心准备提交计算,可是却发现小张有一个非常大的算例已经在集群里面运转了。小王非常着急,可是又不能贸然停下小张的计算,没办法只能打电话请示领导,领导从小张处详细了解情况之后,又好不容易说服小张达成一致,小张这才很不情愿的走到计算中心,输入命令、保存中间数据并且退出计算,这才让小王的题目先算。这样一圈下来,大半天的时间已经耽误了,小王已经基本无望按照约定时间完成计算工作了。

    场景五,小张好不容易盼到了休假,正在海南沙滩晒太阳,突然接到了一个紧急计算任务,而小王又不能顶替接手,小张在随身携带的笔记本上设置好了算例,可是却无法连上企业计算中心的服务器提交计算,没办法只好ftp传给小王,然后让他在服务器上跟踪调试。度假结束回来,小王无奈的告诉他,算例没有成功,自己不了解如何调节参数,所以只能等小张回来再做。又多了一个无法及时完成的仿真任务!

    场景六,小张经过多年的工程计算锤炼,已经在行业内小有名气,某天被一知名企业挖角了,这一下领导可着急了:“小张你可不能走啊!你走了,企业又要重新培养新人了,再者说,你这么多年积累的那些工程仿真经验怎么传给你的继任者啊?”小张也很无奈:“我可以把我的硬盘上的文件交给公司,但是我也一下子说不清这些文件的具体情况了,说实在话,那些仿真经验都在我的脑子里,也没有什么机会整理啊!”

    8.3.2 困境:HPC能力建设曲高和寡

    场景三中,HPC能力建设之后的事与愿违令人扼腕,究其原因,还是因为当前的任务调度软件使用太过复杂,并且其主要功能都是面向硬件资源的,并无针对各种仿真软件的不同特点进行量体裁衣,仿真工程师在全心投入计算工作的同时,仍然需要背诵那些晦涩的命令,调试庞杂的不知所谓的计算集群,实在苦不堪言。此外,如场景五中所描述,工程师一旦离开了企业的局域网环境,就被屏蔽于企业计算资源之外,遇到紧急任务时却是“巧妇难为无米之炊”,工作效率大打折扣。

    理想的仿真云计算平台应该彻底屏蔽计算集群的硬件与调度系统,让工程师在普通网络浏览器中即可完成计算工作,并且可以在任何地方安全调用企业的计算资源,这正是SimCloud的“平易近人”之处。

    8.3.3 缺陷:License资产管理混乱

    场景四突出表现了许多企业的一个共同弊端:“软件License资产管理混乱”。由于仿真软件价格昂贵,企业在购置时往往精打细算,然而紧急的项目常常无法用到软件License,领导在分配License时也是人为平衡、疲于应付。这种混乱的管理状态长期存在,会影响整个仿真团队的工作效率,甚至造成团队内部的不和谐气氛。

    SimCloud仿真云计算平台首创实现了精确化管理仿真软件License Feature的功能,无论是在线用户数还是并行CPU Core都可以实现实时最优化管理,成功解决License资产管理难题。

    8.3.4 短板:仿真数据及流程急需监管

    场景六所描述的人才流失令人痛心,但是市场经济下这又是不可避免的问题,企业领导是否“因噎废食”呢?其实大可不必,关键是要建立合适的仿真数据及流程管理系统,有效监管仿真团队工作,真正将仿真研究成果转变成为企业知识库。

    SimCloud Enterprise版本内置工作流引擎,可以针对客户仿真工作流程及数据管理进行快速部署,度身定制仿真知识库采集系统,帮助企业消除CAE仿真团队的“信息孤岛”现象,完善企业的核心创新知识储备机制。

  • 金融与高性能计算的华丽碰撞

     

    当金融遇到计算,我们赋予它一个新名词:金融计算。早在20世纪90年代末,纽约、伦敦、日本的诸多金融机构就已经开始了金融计算相关应用,始于1993年全球超级计算机500强排行榜(Top500)中,约450台为国际一流金融机构所用,中国先后已有70多台超级计算机跻身Top 500,但至今仍无一台用于金融领域。

        2008年以来,上海超级计算中心主任的奚自立先生一直在积极呼吁以打造国际金融中心为目标的上海加紧建设金融计算共同平台,在他看来,“国外同行早已利用金融计算创造出一批批金融衍生产品,并能准确推断出未来走势变化;国内机构还停留在使用HPC简单计算银行信用卡风险,或是通过随机过程分析计保费。”其间的差距恰如大学生与中学生之间的较量。在全球化势头无法阻挡之际,我们能做的只有迎头赶上,否则未来的某一天与国外金融机构真正地同台竞技,也许我们会输得倾家荡产。

    高性能金融计算应用三场景

    西方金融机构到底如何利用高性能计算提升其核心竞争力?我先举三个简单例子:

    案例一:为金融产品高效定价

    客户委托金融机构购买期权时,交易员需要快速计算出期权价格。期权价格的计算是要看所在资产(如股票或其他金融资产)的未来走势,这可能需要对上百万甚至上千万种价格走势路径都计算一边。以往,交易员们都是在笔记本电脑上用Excel计算,至少需要几分钟的时间。有了高性能计算后,所有路径可以采用并行计算,整体计算时间被缩短到了七秒钟,客户端计算机也只需16个核,交易员再也不用为需要拖住客户而绞尽脑汁为了。

    案例二:更准确评估潜在风险

    金融计算容易产生的一个误区是,大家都想算出能赚多少钱,这确实可以算出来,但更重要的是计算投资组合的风险值(value-at- risk),这不仅是对每个头寸重新定价,还要考虑各种参数的变化,例如金融系数、利率、汇率等因素都可能随时改变,这些变化会是一个巨大的组合,再乘上金融组合数,所需要的计算量通常需要花一整晚的时间,最后算出来的报告就是回答一个问题:这么多组合在第二天开市后,价值突然缩水到现有5%的可能性有多大?

    案例三:增强快速反应能力,提升程序交易效率

    当机构投资者买进大量股票时,往往会分拆成一百、几十股的买,这就要求金融机构的系统能从小小的一百股中发现,哪些来自个人,哪些来自机构,一旦发现有机构出动,就把周围能买到的股票全部买下,然后价格抬高就出货。要让系统做到如此智能,就必须通过神经元网络进行算法训练,其中的难点在于如何算出不同股票持有人之间的关联,不同公司的资产结构有时很复杂,只有大规模的计算才能核算出来。

    金融计算离不开数据、模型、计算平台和人

    这四大要素中,数据排第一。金融说到底就是数据。相比国内金融行业的严重信息不对称,国外的信息完全开放,所有金融衍生品都会明白告诉客户,它们是怎么计算出来的。中国要发展金融计算,首先要解决数据真源性的问题,然后才能去考虑对数据的分析。谁都知道,针对二十年数据的分析比十年的精确,针对三十年数据的分析比二十年的精确。从现在开始积累我们的真实数据,亡羊补牢,为时不晚。

    模型和金融计算平台,不妨借鉴国际上最为主流的模型和技术。随着高性能计算与云计算的结合,金融服务业或可成为这一领域的主流商业应用。在美国,为各大机构提供风险分析服务的RiskMetrics,已经将其计算搬到了云计算平台Windows Azure上,启动初期就已提出6,000个核的需求,是我们之前预期的12倍;为保险业提供精算软件的Milliman,目前也已搬到了Windows Azure平台上。目前欧洲、日本的发展形势非常喜人,与美国相当。

    数据、模型、金融计算平台,再加上另一个不可或缺的因素——人才,我们的金融计算就完整了。中国最缺的就是交叉学科人才,尤其在金融领域。为此,我们日前与摩根士丹利和上海超级计算中心联合举办了“微软—摩根士丹利杯”2011金融超级计算挑战赛,即国内首个金融与高性能计算的跨学科竞赛。我们希望通过此次竞赛为金融和计算机等专业的同学提供一个学以致用的平台,也希望以此引起高校、业界和政府部门对高性能金融计算的关注与重视。在为期五天的挑战赛期间,参赛队伍在上海超算中心的曙光5000A超级计算机平台上,运用Windows HPC Server 2008 R2等软件,根据万得资讯提供的金融产品的真实历史数据,对摩根士丹利提供的多种虚拟金融衍生产品进行建模定价与评估,去解决国际金融交易员、风险管理员、分析师每天面对的真实问题。

    曾有一位参赛选手在挑战赛论坛上说到,“这几天起早贪黑和高强度的作业,我们理解了更多程序语言的新方法,熟悉了各种期权条款,接触到不少市场股票数据,以及解决问题的基本方法。还有更加体会到市场的无情。” 尤其这最后一句话让我颇有感触,正如《冰与火之歌》中所说的那样“Winter is coming”,惟有无情的市场才能让我们在磨练中成长。

    入世十年,中国金融业在规模上取得了长足进步,单论资产规模,中国银行已经位居世界前列;而下一个“十年”,无疑将会面对更加广泛和激烈的国际竞争,中国金融机构如何实现质的飞跃?如何借助高性能计算等尖端IT技术,帮助以上海为代表的中国城市成为国际金融中心?这些悬念,或许要留待通过此次大赛成长起来的一代人,来为我们解开。

     

    徐明强

    高性能云计算部门经理

    微软亚太研发集团服务器与开发工具事业部

    ++++

  • 加入Windows HPC Server 2008 微软客户体验改善计划(Customer Experience Improvement Program)!

    您想帮助我们一起改进Windows HPC Server 2008产品吗?请加入微软客户体验改善计划(Customer Experience Improvement Program)!只需要以下几步即可方便完成--

    1) 打开Microsoft HPC Pack –> HPC Cluster Manager;

    2) 在菜单中选择Help –> Customer Feedback Options;

    clip_image001

    3) 选择”Join the Customer Experience Improvement Program”,点击”OK”.

    clip_image002

    您的参与对于我们持续改进Windows HPC Server产品非常有价值!:)

  • 基于Windows HPC Server 2008 R2 (SP1)监控管理包的节能解决方案

    摘要

    为了支持绿色IT行动,随着Windows HPC Server 2008 R2 (SP1)的发布,我们在Windows HPC Server 2008 R2 (SP1) Monitoring Management Pack 添加了两个可配置的规则:“基于时间的能耗管理规则”和“基于利用率的能耗管理规则”

    ·          基于时间的能耗管理规则

    此规则可以在一周的某几天和一天的某时段内,将一部分计算节点休眠以降低能耗。

     ·          基于利用率的能耗管理规则

    此规则通过监控一段时间内集群的负载状况和作业队列长度,以决定是否将部分计算节点休眠以降低能耗。

    此规则定义了三个级别的集群可用率,每一次休眠的条件触发时,集群的可用率将调整到下一个级别;另一方面,当唤醒的条件触发时,集群的可用率将调整到上一个级别。

     

     配置规则

    在默认情况下,以上两个规则都被禁用。在SCOM服务器导入Windows HPC Server 2008 R2 Monitoring Management Pack后,管理员可以方便地启用、配置规则。

    打开SCOM的界面,进入“Authoring”界面,选择“规则”,查询关键字“Power Management”,你就可以发现这两个规则,如下图所示:

      

    下面是一些重要配置的默认值,管理员也可以对默认值进行修改

    Calendar-based Rule

    Parameter Name

    Default Value

    Notes

    Enabled

    False

    The rule is disabled by default

    Start Time

    0:00

    The time each day when power-saving mode for compute node starts.

    End Time

    6:00

    The time each day when power-saving mode for compute node ends.

    Exclude Days

     

    A list of days each week when compute nodes are excluded from entering power-saving mode. The “exclude days” format is like: “Saturday, Sunday”

    Power On Percentage

    70

    The percentage of compute nodes that will remain power on during the power-saving mode

    Consumption-based Rule

    Parameter Name

    Default Value

    Notes

    Enabled

    False

    The rule is disabled by default

    HighCapacityLevel

    100

    The percentage of high compute node capacity definition

    MediumCapacityLevel

    80

    The percentage of medium compute node capacity definition

    LowCapacityLevel

    60

    The percentage of low compute node capacity definition

    UpperQueueLength

    5

    The length of the job queue above which the rule can cause the compute nodes to reach a higher capacity level

    LowerQueueLength

    1

    The length of the job queue below which the rule can cause the compute nodes to reach a lower capacity level

    LowConsumption

    40

    The compute node consumption percentage below which the rule can cause the compute nodes to reach a lower capacity level

    Number of Samples

    6

    The number of samples to identify the LowConsumption which can push the compute nodes to enter a lower capacity level, the sampling interval is following “interval seconds”

    Interval Seconds

    300

    The sampling interval, default is 300 seconds.

    节能性能评估

    为了评估节能性能以及对作业吞吐量的影响,我们进行了以下实验

    (1)   安装一个HPC集群,该集群包含1个头节点,1个代理节点以及4个计算节点

    (2)   模拟一个典型的工作日内的作业提交情况:

     

    同时,作业运行时间分布如下:

    (3)   在以下三种情况比较节能性能以及对作业吞吐量的影响

    a.     禁用能耗管理规则

    b.     仅启用时间能耗管理规则

    c.     仅启用利用率能耗管理规则

    注意:

    我们在实验中对两个规则的参数设置作了调整:

    ·          时间规则:

    o    设置StartTime22:00, EndTime 7:00, PowerOnPercentage60%

    ·          利用率规则

    o   设置UpperQueueLength2.

     下面是实验结果:

    ·          节能效率

    我们使用休眠的节点数量乘以休眠的时间来衡量节省的能耗。在使用时间规则时,有2个节点从2200700处于休眠状态;使用利用率规则,有2个节点从2100900处于休眠状态。两种规则都起到了很好的节能效果,相比之下,利用率规则更胜一筹。

    ·          可用核利用率

     利用率规则取得了最高的可用核利用率(49.1%),其次是时间规则(47.1%)。在没用启用规则的情况下,利用率为42.7%

      

    ·          对作业吞吐量的影响

    作业吞吐量代表了每小时完成的作业的平均数量;启用两个规则,对作业吞吐量没有影响。

     

    ·          对作业周转时间的影响

    作业周转时间代表了一个作业等待时间与作业运行时间的比率。在启用利用率规则之后,作业周转时间有微幅提高(从0.436增长到0.437);时间规则对作业周转时间没有影响。

     

    结论

    基于以上的模拟评估,在不影响作业吞吐量和作业周转时间的前提下,能耗管理规则能提高集群的能耗效率,真正实现集群的绿色ITJ

  • 第8章 用户体验:上海汽车工业集团(下)

    8.4 SimCloud: 基于Windows HPC Server 的门户环境

    上汽使用了泛云公司提供的高性能计算门户系统——SimCloud。

    8.4.1 平台架构

    SimCloud仿真云计算平台是将CAE/CFD等仿真应用、高性能计算集群管理、SOA(Service-Oriented Architecture,面向服务架构)等IT技术高度融合的企业级高性能计算中心软件系统方案。

    我们可以从多个角度分享、剖析这个全新的云计算平台。

    平台的整体网络架构如图8-1所示。

    图8 1  高性能计算平台网络架构

    图8‑1 高性能计算平台网络架构

    平台架构的中心是仿真云管理门户,它负责联通客户端与HPC集群,实现活动目录(AD) 用户管理、邮件服务、仿真流程/数据管理、仿真数据存储等功能的表现层服务。仿真云管理门户的左侧主要是HPC集群及相关附属设备,右侧主要是各种类型的仿真应用(图中仅为示例,可拓展至所有仿真应用客户端)。

    8.4.2 功能架构

    SimCloud平台的功能架构可以分为资源层、服务层、业务层与表现层,具体如图8‑2所示。

    图8 2  SimCloud系统栈

    图 8‑2 SimCloud系统栈

    资源层主要负责整合硬件资源、网络资源与软件资源,Windows HPC架构下的SimCloud平台主要利用Windows HPC Server操作系统进行这一整合工作,通过.NET服务将仿真软件封装成Web Service接口。

    服务层封装了Windows HPC Server R2,Email Server,FTP Server,AD Server等服务器角色功能,为整个平台提供丰富的服务接口与扩展功能接口。

    业务层囊括了用户管理、作业管理、数据管理、邮件通知、调度策略管理、系统资源管理、日志管理、统计报表等业务功能,并为PLM等工作流系统提供业务流程扩展接口。

    表现层通过SimCloud仿真云管理门户,以Web Portal的方式统一整合了任务提交、资源监控、管理作业、文件传输、License管理、使用统计、用户管理、决策分析等一系列应用功能。

    8.4.3 仿真工程师”常用场景:

    SimCloud仿真云计算平台具有操作便捷、功能丰富的特点,其应用流程也紧密贴合企业内部不同角色的使用人员,在功能完备的基础上力求逻辑简洁。

    图 8 3 仿真工程师常用场景

    图 8‑3 仿真工程师常用场景

    如图 8‑3所示,一般仿真用户可以使用企业域用户帐号登录SimCloud仿真云管理门户,通过简单操作之后即可将仿真任务提交到高性能计算集群头节点,头节点遵循既定任务调度策略,根据当前硬件资源利用情况以及仿真软件License使用情况,提交任务至计算队列并进行自动的任务分配,计算完成后,计算节点整合仿真数据,通过邮件通知仿真用户,用户即可从SimCloud门户获取仿真结果文件。

    8.5 应用集成案例

    SimCloud仿真云计算平台可以集成多种仿真应用软件,包括计算结构力学、计算流体力学、计算声学、多体动力学、计算电磁学等多种学科常用商业软件,并且提供开放的接口方便集成各类软件应用。架构于Windows HPC Server 2008 R2之上的SimCloud平台支持所有可安装于Windows操作系统的仿真应用软件,以下仅针对部分常用软件做出图释说明。

    图 8‑4显示了常用计算结构力学软件ANSYS的集成界面:

    clip_image038

    图 8‑4 提交ANSYS作业

    用户在选定ANSYS求解器及对应版本之后,可以选择并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定),然后在指定工作目录中上传并选定输入文件,同时设定可监控的输出文件(可以通过该文件实时监控计算收敛情况),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    图 8‑5显示了常用计算流体力学软件FLUENT的集成门户界面:

    clip_image040

    图 8‑5 提交FLUENT作业

    用户在选定FLUENT求解器之后,需选择求解算例的空间拓扑属性(2D或3D)、并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定)、标准脚本文件(脚本文件中规定了cas、dat文件的名称及相关计算迭代控制);仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱;FLUENT仿真任务可以通过Web页面进行图形化监控收敛曲线。

    图 8‑6显示了常用非线性力学软件ABAQUS的集成门户界面。

    用户在选定ABAQUS求解器之后,可以选择求解器版本以及并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定),然后在工作目录中上传并选定输入文件(.inp文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    clip_image042

    图 8‑6 提交ABAQUS 作业

    图 8‑7显示了常用计算结构力学软件MSC.Nastran的集成门户界面:

    clip_image044

    图 8‑7 提交Nastran作业

    用户在选定MSC.Nastran求解器之后,可以选择求解器版本以及并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定),设定作业需要的内存,然后在工作目录中上传并选定输入文件(.dat文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    图 8‑8显示了常用显式动力分析程序LS-DYNA的集成门户界面:

    clip_image046

    图 8‑8 提交DYNA作业

    仿真工程师在选定DYNA求解器之后,可以选择求解器版本,并行计算的CPU核数(个人所允许使用的最大核数已由管理员设定),设定该作业所需的内存,然后在工作目录中上传并选定输入文件(.k文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。


    集成案例

    图 8‑9显示了常用虚拟样机仿真分析软件软件MSC.Adams的集成门户界面:

    clip_image048

    图 8‑9 提交Adams作业

    用户在选定MSC. Adams求解器之后,可以选择求解器版本以及并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定)然后在工作目录中上传并选定输入文件(.acf文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    图 8‑10显示了常用连续介质力学仿真软件STAR-CCM+的集成门户界面。

    用户在选定STAR-CCM+求解器之后,可以选择求解器版本以及并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定),然后在工作目录中上传并选定输入文件(.sim文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    clip_image050

    图 8‑10 提交StarCCM+ 作业

    8.5.8 RECURDYN集成案例

    图 8‑11显示了常用多体动力学机构仿真软件RecurDyn的集成门户界面:

    clip_image052

    图 8‑11 提交RecurDyn作业

    用户选定RecurDyn求解器之后,可以选择求解器版本以及并行规模(即并行CPU核数,个人所允许使用的最大核数已由管理员设定),然后在工作目录中上传并选定输入文件(.rdyn,.rss文件),然后即可提交作业至仿真云系统;仿真任务开始、失败或者成功均会有email通知发至工程师的个人信箱。

    8.6 License许可证管理

    SimCloud仿真云计算平台的License管理模块将昂贵的仿真软件License以直观的方式进行实时的动态的资产管理,有效监控License使用情况,为后期License资产利用率统计提供数据支持。图 8‑12显示仿真软件License许可证列表。此列表显示SimCloud平台集成各仿真求解器所对应的License许可证数目以及当前使用情况。

    clip_image054

    图 8‑12 软件许可证管理

  • 送给四川山区的儿童一份礼物 -- 希望小学 捐款进展 Donation Progress

    (English version below)

    各位热心的同事和朋友:

    很高兴地告诉大家,从2月25日捐建四川希望小学项目介绍会至今,项目得到了大家的巨大支持,我们已经募集到了国内同事和朋友的捐款79584元人民币(美国同事和朋友向CTEF此项目的捐款还在统计中,比如《微软的测试之道》翻译团队承诺将稿费14463.36元RMB捐给项目)!我代表山那边的小孩子们诚挚地感谢大家的慷慨解囊!

    我们已经达到项目第一阶段的募集目标:10万人民币(包括公司等额匹配),CTEF已将这10万元工程预付款汇至该村,启动希望小学开工建设。从3月9日起,我们进入项目的第二阶段:在6月前再筹集到10万人民币,以完成学校全部施工建设。如果您希望加入我们的爱心大军,现在行动还不晚!更多信息,请参见http://blogs.technet.com/chinahpc/archive/2010/02/07/school.aspx (公司外) 或http://sharepointasia/sites/SichuanSchool(公司内) 。此外,几点声明:

    • 此希望小学项目,不是微软公司的官方活动,也与希望工程没有关系,是由HPC上海团队员工们发起的民间慈善活动,跟与微软长期合作的明日中华教育基金会CTEF联合实施。魏臻,作为CTEF的志愿者担当项目经理,负责所有善款的合理使用。
    • 后续计划:如有必要,成立项目小组,商讨捐款的用途,组织实地考察和短期支教等活动,有意者回信与我联系。

    记名:(以下均为人民币)

    编号 捐款人 捐款额 捐款方式 (转账账号最后四位)
    #7 Commerce Transaction Platform team 1659 现金
    #8 Jeffrey Zhou 1000 现金
    #9 Violet Cong 1000 转账 486
    #10 Qiufang Shi 1500 转账 魏臻中转
    #11 Qing Zhi 1000 现金
    #12 Yutong Sun 1000 转账 417
    #13 Yiding Zhou 1000 转账 537
    #14 Ming Li 1000 转账 152
    #15 Feng Zhou 1000 现金
    #16 Commerce Transaction Platform team 950 现金
    #17 Stephen Li 1000 现金
    #18 Elfe Xu 1000 转账 486
    #19 Ting Wang 375 转账 599
    #20 Lin Jin 1000 转账 031
    #21 黎阳(魏臻的朋友) 1300 转账 魏臻中转
    #22 魏臻的高中同学 500 现金
    #23 Jun Su 1700 现金
    #24 Commerce Transaction Platform team 975 现金
    #25 Keshuang Shen 1000 现金
    #26 Claire Chen 1000 转账 魏臻中转
    #27 Donald Lu 1000 转账 114
    #29 Guang Hu 1000 转账 460
    #30 Collin Wang 1000 转账 072
    #31 杨建国(魏臻的朋友) 200 转账 481
    #32 Maine Qin 1000 转账 049
    #34 Adam Herscher 1000 现金
    #35 Wu, Jiajie (Intel) 1100 转账 604
    #36 梁霄(魏臻的朋友) 500 转账 异地存款
    #37 Yi Zhang 1000 转账 831
    #38 Commerce Transaction Platform team 100 现金
    #39 汤锲(魏臻的朋友) 500 转账 147
    #40 ASG Developer Experience team 7100 现金
    #41 何奎(魏臻的朋友) 500 转账 166
    #42 Huaiyang Zhou 200 现金
    #44 徐威(魏臻的朋友) 200 转账

     不记名

    编号 捐款人 捐款额 捐款方式(转账账号最后四位)
    #5 四楼某同事 10000 现金
    #6 四楼某同事 1000 现金
    #7 四楼某同事 5000 现金
    #8 四楼某同事 2000 转账 796
    #9 三楼某同事 300 现金
    #10 四楼某同事 1024 转账 982
    #11 四楼某同事 500 现金
    #12 四楼某同事 1001 转账 161
    #13 四楼某同事 500 现金
    #14 四楼某同事 500 转账 131
    #15 四楼某同事 3000 现金
    #16 三楼某同事 100 现金
    #17 一楼某同事 1000 现金
    #18 四楼某同事 1500 现金
    #19 四楼某同事 1000 转账 240
    #20 四楼某同事 300 现金
    #21 北京某同事 200 转账 魏臻中转
    #22 四楼某同事 100 转账 320
    #23 四楼某同事 600 现金
    #24 五楼某同事 500 转账 990
    #25 一楼某同事 100 现金
    #26 四楼某同事 1000 现金
    #27 四楼某同事 5000 现金
    #28 四楼某同事 500 现金
    #29 港汇某同事 1500 转账 248
    #30 CSS某同事 1000 转账 345
    #31 四楼某同事 2000 转账 623
    #32 一楼某同事 1000 现金

    如何捐款,很简单,只需要2 步:

    第一步:

    • 在美国工作的微软同事, 请直接捐至CTEF 并指定用于MS TC Sichuan School项目,或在此Microsoft-TC-School-in-Sichuan 网页通过PayPal捐款,然后到 http://give去要求公司匹配捐款。

    • 中国的朋友,可以选择付现金给魏臻(上海市紫星路999号4239),或转账至中国建设银行上海市紫竹支行 魏臻 6227 0012 1754 0002 351。

    • 其他,请联系魏臻, Emailzhenwei@microsoft.com, 电话(86-21)61885187

    第二步:(为了更好地统计捐款情况)

    Hi, Dear warmhearted colleagues and friends,

    I’m so glad to tell you that, our project has got huge support and raised 79584RMB (not including the donation made to CTEF directly, for instance <How We Test Software at Microsoft>’s translation team committed to donate all translation payment 14463.36 RMB to this project). I sincerely appreciate everyone’s support and generosity on behalf of the children over the mountain!

    We've already achieved the fund raising goal of the first milestone: 100K RMB(including company’s match). CTEF has wired the 100K RMB to the village to start building school. From 9th, March, we’re entering the second milestone, with another 100K RMB fund raising goal for the whole school building project before end of July. If you would like to join us giving campaign, it’s not too later now. Please check out our project: http://blogs.technet.com/chinahpc/archive/2010/02/07/school.aspx (extranet) or http://sharepointasia/sites/SichuanSchool (intranet). 2 clarifications:

    • Our Hope School project, isn’t a Microsoft official event, and has nothing to do with “Hope Project”. It is initiated by HPC Shanghai team, partnering with China Tomorrow Education Foundation CTEF. Zhen Wei, as CTEF volunteer, is acting on the project manager and responsible for making sure the donation is used appropriately.
    • Further plan: set up a project team if needed, to discuss the donation usage, organize school visit and volunteer teaching. Please contact me if interested.

    How to donate? Simple and easy, just 2 steps:

    Step 1:

    • U.S.-based Microsoft employees, please donate to CTEF and specify it’s for the MS TC Sichuan School, or click Microsoft-TC-School-in-Sichuan page if you want to donate via PayPal. Then also go to http://give and ask for your donation to be matched.
    • China-based friends, please choose either hand over cash to Zhen Wei (4239, 999 Zixing Road, Shanghai, China), or transfer your donation to Zhen Wei’s account (中国建设银行上海市紫竹支行 魏臻 6227 0012 1754 0002 351).
    • Others, please contact Zhen Wei through zhenwei@microsoft.com or (86-21)61885187

    Step 2: (to better track the donation)

  • 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

  • 高性能计算,高兴能计算

    大家都喜欢听故事,那我就先讲一个故事,为我的这篇文章争取一点读者。这个故事的名字叫做:“我不想懂什么高性能计算,我只在乎高兴了就能计算”。
     
    在业界,“高性能计算”是个越来越火的词,在高校里,它的另一个兄弟“并行计算”更为大家所熟悉,在很多场合,这两个词指代的其实是同一个很有意思很有潜力的领域。之所以说它有意思有潜力,是因为年轻的计算机学科和其他历史悠久的学科交叉结合在一起,迸发了魔术般绚烂夺目的光彩。
     
    2004年我还在中国科学技术大学读本科大四的时候,在机房做“并行计算导论”课程的上机作业,上这门课程的教师就是并行计算领域的领军人物--陈国良院士,和他的弟子我的朋友孙广中博士。我正专心敲着代码呢,几个不认识的其他院系的同学走了进来,看来也是来上机的。不过他们进来后不久,就开始抱怨后台的计算机性能太差,软件硬件的版本都太落后。当时我自认为是计算机科学技术专业“科班出身”,自然要比他们对计算机的了解强很多,有点轻视地说你们懂高性能计算吗。
     
    这时一个年龄看起来跟我差不多大的学生说了一番话,原话我记不住了,大意就是“你们计算机专业硕士学的这点并行计算东西,在我们实验室还不如个本科生,我们实验室的机器也比这破机器强多了,要不是这几天我们的机器出了故障,又急着等一个结果跑出来发论文,我们才不想过来呢。计算机,不是计算器,它只有跟各行各业领域充分结合时才能发挥出最大的功用。计算机专业,就是应该做好其他专业行业的服务业。哪一天我们物理数学生物这些传统学科真的不用关心并行计算机、并行算法、并行程序了,才好呢。我不想懂什么高性能计算,我只在乎高兴了就能计算。现在是反过来的,要难搞的机器高兴了,难写的算法高兴了,难调的程序高兴了,我们才能计算,这哪行啊。”于是我哑口无言。现在想来当时他有这样的见解,很可能是个在读博士。在有少年班的科大,从来都不缺少这样遭遇牛人的意外。而“我不想懂什么高性能计算,我只在乎高兴了就能计算”这样的论点,我在微软的高性能计算部门工作的三年多中又多次从制造业、金融、渲染等行业的客户和合作伙伴那里听到。
     
    这也显示了一个有趣的现象,高校里最懂高性能计算的,并不一定是计算机专业的师生,而往往是其他学科有高性能计算需求的师生,同样在业界最懂高性能计算的,也不一定是计算机专业的科学家和工程师,而往往是各行各业的领域专家。其实在高校关于高性能计算的课程设置和人才培养上也能看出同样的规律,大多计算机专业只在“计算机体系结构”、“操作系统”、“计算机算法”等课程中对并行概念点到为止,专门开设《并行计算》课程的高校屈指可数,而实施起来也容易变成“空中楼阁”,学生除了用MPI写写类似“Hello World”的并行程序,并没机会接触实际应用。相反,数理化专业开设如何利用并行计算帮助科研的课程却屡见不鲜,学生目标明确,更容易体会到高性能计算的威力和甜头,只是计算机基础偏弱,有时候学起来比较费力。
     
    鉴于高性能计算领域的发展,在硬件和软件上离“高兴能计算”的目标都还有距离,我建议,对于有兴趣从事高性能计算,或者说用高性能计算来让自己“高兴能计算”的学生,既要认真搞清楚并行计算机的体系结构和工作原理,并行算法的一般规律和常见模式,并行程序的开发特性和调试技巧,也要针对某一具体领域的应用夯实基础,积极实践,这样自然能够积累很多实战经验,其中甚至有很大一部分是放之各领域皆准的问题和解决方案的“模式”。至于是否能在学校开设的课堂上学到这些东西,可能相当受制于学校的办学条件,比如是否真能合理调配师资力量硬件设备,为交叉学科做好交叉教学。但是在大学最重要最应该培养的能力,不就是自我学习能力吗?你完全可以没有机会创造机会,(借用一句被用滥了的书名模版,)让自己“高性能计算,从入门到精通”。
     
    我相信,我们在高性能计算方面培养出来的人才越多,离“高兴能计算”的目标也就更近!而这和微软对高性能计算的愿景相当契合-- Windows HPC帮助用户运用已有技能和工具以更短时间便捷地完成更多任务。我们在上海的高性能计算研发团队,非常高兴能为“高兴能计算”贡献自己的力量。

    <本文已刊发于《中国教育网络》2010年6月--HPC下个路口见>

  • 亲历北京Top 500

    金秋的北京,一年中难得的好天气,人们还沉浸在08年奥运会的喜悦中,而一项影响中国高性能计算发展的大事,也正在紧锣密鼓地进行 – 近两千台新研制开发的曙光5000A机器已从天津工厂运抵北京!这么多的机器太沉,一楼的地面无法承重,找不到合适的数据中心,造价两亿元的这两千台高性能计算服务器暂时落户在中科院计算所的地下车库里。

    中国人的力量和速度再一次让世人惊叹:地下车库的改建,制冷水管的铺设,整个临时数据中心的建成一共只用了十天时间,夜以继日的努力只为了一个共同的目标 – 那就是11月中旬即将在美国奥斯汀举办的第21届超级计算机大会。世界权威的Top 500超级计算机排名将在这次大会上正式公布,跻身前列是每一个中国高性能计算工作者的梦想!

    image clip_image004

    作为微软高性能计算中国开发团队的一员,我也有幸加入到这次影响中国高性能计算历史的努力中!曙光,是中国高性能计算的代表企业,与微软公司的结缘始于2007年底。一向依托于UNIX/LINUX高性能操作系统环境的曙光公司,对刚刚踏入高性能计算领域并于2006年发布第一版高性能计算产品Windows Compute Cluster Server 2003的微软公司,产生了浓厚的兴趣。这一过程是艰难的,压力与希望同在,挑战与机遇并存。

    9月15日刚刚成功发布微软高性能计算的第二个版本Windows HPC Server 2008,我们来不及任何的休整,一行四人立刻踏上了北京的征程。清楚地记得第一次踏进中科院的地下车库,憋闷的环境,数千台机器共响的轰鸣声立刻让我觉得透不过气来。简易的工作台,没有任何的噪音隔离和防护措施,这就是我们接下来一个多月里需要战斗的地方。来不及多想,放下简单的行囊,立刻加入到这1920个节点部署Windows HPC Server 2008系统的工作中。这是第一次Windows HPC Server 2008产品在这么大规模的计算集群上部署和应用,我们的心情真是既兴奋又紧张。旁边来自曙光,AMD等各家高性能计算领域的同行们也都看着我们,想看一看初出茅庐的Windows HPC Server 2008到底表现如何。在基于Windows部署服务(Windows Deployment Service)的裸机部署模式的强大支持下,部署工作进行得异常顺利。部署完成后Windows HPC Server 2008简单易用的管理操作平台显示出了对近2000个计算节点的强大的管理能力,深得同行的赞誉,我们也终于舒了口气。

    clip_image006 clip_image008

    然而接下来的工作远没有期待中的这般顺利。一个刚刚搭建的数据中心,全新的硬件,全新的软件,对于一个至少需要连续运算7-8个小时才能取得较理想计算结果的基准测试来说,任何一个环节的细微差错,例如网络连接的松动,电源过热,15360条内存中任何一条内存的故障都会导致整个测试运行的失败。我们甚至发现,在如此大规模尚未经过时间考验的计算集群上,取得一个有效的测试结果都是相当的困难。当有节点发生故障时,我们需要和曙光的硬件工程师,来自Mellanox/Voltaire的网络工程师一起,登录到故障节点,查找可能的软件、硬件或者网络的问题,并对问题进行记录和总结。曙光也设立了简单的工作台,进行现场的故障硬件修复。如果用四个字来形容当时的工作状况,那真是“没日没夜”。从数据中心的搭建到最终Top 500的提交期限,一共只有不到一个半月的时间,每个人都不愿浪费一点点可以进行故障排查或者运行测试的时间,所以常常忘了外面是白天还是黑夜。经常拖着疲惫的身体走出计算所的大门,才意识到,早起的人们已经开始了晨跑,原来熬夜也是这么容易习惯的。更多的时候,我们也只是在车库角落里搭建的临时床,甚至机柜旁伴随着近2000台计算节点的轰鸣声席地而睡。

    clip_image010 clip_image012

    我们感激曙光公司在如此大规模的计算集群上率先采用刚刚发布的Windows HPC Server 2008产品的信任,但作为Windows HPC Server 2008在如此大规模的计算集群上的首次尝试,大家也曾犹豫和怀疑过。继9月29日取得116.3TFlops的运算结果之后,我们在将近10天的时间里一直无法取得任何的突破,眼看着提交结果的期限一天一天接近,怀疑的声音也开始出现。Windows HPC Server 2008真的是如此大规模计算集群的正确选择吗?在这样的质疑声中,顶住压力,永不放弃是我们的唯一选择。记得当时美国总部团队的老板们正在上海访问,和上海的团队讨论下一个版本的计划,但是在Top 500项目的巨大压力下,上海开发团队的主管严治庆于当晚就飞回了北京,还记得他那个时候诙谐地说:“不是天不助我,而是时机未到”。越是这样紧张的时候,越是要镇定,我们总结了前段时间屡屡失败的教训,为每次基准测试程序的运行制定了详细的准备步骤:包括各个节点的排查,网络状况的检查,小规模测试等等。虽然每次这些准备工作都需要花费2个小时左右的时间,但我们发现这对确保测试运行的成功率发挥了至关重要的作用。在10月9号的早晨,顶着巨大的压力,我们终于突破了140T的大关,我们终于证明了自己,证明了Windows HPC Server 2008对于大规模集群计算的能力,我想这是我们在Top 500道路上最艰难也是最重要的一个结果,连曙光的同行都表示没想到你们真的能跑出这个结果!

    在整个Top 500的项目中,和我们一起并肩作战在中科院计算所地下车库里的还有一位法国朋友,他就是来自微软法国团队的Xavier Pillons。Xavier有着丰富的Top 500基准测试的经验,但是他表示像这次如此大规模的集群以及如此艰难的测试他还是第一次遇到。虽然作为他的第一次中国之行,Xavier在29天的时间里只得空休息了2天,但是他对此次的中国之行非常兴奋,记得在10月13号167.4TFlops之后的庆功宴上,Xavier自豪地说:“我们创造了中国高性能计算的历史,我很高兴成为其中的一员”!

    clip_image014clip_image016

    在临近提交结果期限的两天,经过一次次地改进和测试,我们又取得了新的突破,180.6TFlops的结果,78%的效率对于Windows HPC Server的历史,对于中国高性能计算的历史都是划时代的,也为我们一个多月的辛勤工作,无数的不眠之夜交上了一份满意的答卷!在11月中旬召开的世界超级计算机大会上,我们非常荣幸地跻身全球超级计算机前十的行列,并成为在美国之外唯一一个进入前十的超级计算机集群!当怀抱奖状的时候,成绩的取得已经成为了过去,我们会怀抱更大的热情和理想做好Windows HPC Server的下一个版本,也祝愿中国高性能计算行业的发展越来越红火!

    clip_image018 clip_image020

  • Visual Studio 2008 HPC SOA C# 调试器插件

    就在这个月,负责微软Developer Devision工作的微软全球副总裁Soma先生写了一篇博客介绍Visual Studio 2008和即将发布的Visual Studio 2010中支持并行程序开发的一系列工具。在这篇博客中文翻译版)中,Soma先生不仅介绍了用于开发MPI程序的MPI debugger,还介绍了用于开发Windows HPC Server 2008中集群面向服务架构(Cluster SOA)应用的SOA Debugger插件。在我们前面一篇博客中已经对MPI Debugger的功能做了介绍,其实SOA Debugger也是我们小组努力工作的成果。通过本篇博客,我想请大家和我一道预览即将发布的HPC SOA C# Cluster Debugger插件。

    大家知道集群面向服务架构是我们随Windows HPC Server 2008的发布而新推出的并行应用架构和编程模型。通过集群面向服务架构,我们可以把原先运行在单机上的WCF应用扩展成运行在`Windows HPC Server集群环境中的并行应用。要创建一个SOA应用程序大致上需要经历以下的三步:创建服务(WCF Service);将服务部署到集群中;创建客户端应用。如果我们想调试包括客户端和服务在内的整个应用,还要加上如下的步骤:1)在运行服务的计算节点上安装并运行远程调试器(msvsmon.exe);2)在Visual Studio中运行并调试客户端程序;3)在SOA会话(SOA Session)被创建以后,将Visual Studio调试器附加(attach)到计算节点上的服务宿主进程(HpcServiceHost.exe)上从而调试服务进程。这样调试一个SOA应用一共需要3+3=6个步骤,这还不包括每次修改服务的代码还需要重新执行服务部署的过程。听上去是不是很复杂?别急,下面随我看看SOA Debugger如何为你简化SOA应用开发和调试的体验!

    安装SOA Debugger插件后,在Visual Studio的新建C#项目的对话框中,我们看到了一个新的项目类型:SOA Client。没错,就是它了!

    clip_image002

    建立一个SOA Client项目并把它命名为MySOAClient。在我们研究这个新项目之前,还是让我们进行SOA开发的第一步:创建服务程序。大家知道SOA服务程序其实就是一个WCF服务,你可以把现有的WCF服务项目添加到刚刚的MySOAClient解决方案中,也可以在这个解决方案中新建一个WCF服务项目。在我的示例中,我在解决方案中新建了一个叫“EchoService”的简单WCF服务。在创建完服务之后,让我们跳过下一步“将服务部署到集群中”,因为下面我们将看到SOA Debugger可以自动帮我们完成服务部署的工作。

    下面让我们回到客户端项目来创建客户端应用程序。大体上编码SOA客户端程序和编码普通的WCF客户端程序比较类似,在此就不一一赘述,具体信息大家可以参看Cluster SOA架构白皮书。客户端编码完成之后,我们还需要对项目的一些属性进行设置才能进行集群上的调试工作。在Visual Studio的解决方案浏览器中右键点击MySOAClient项目,点击属性打开项目属性页面,如下图,

    clip_image004

    我们可以看到这个项目比一般的C#项目多了一个SOA Settings的属性标签。在SOA Setting的属性页中,我们首先在Head node下拉列表中选择我们的集群头节点名。这里的头节点名必须与我们在客户端代码中创建的会话启动信息相一致。比如在我的代码中,

    ……

    SessionStartInfo startinfo = new SessionStartInfo("SHPC-0052", "EchoService");

    ……

    于是这里我就选择头节点为“SHPC-0052”。接下来我们需要在Available service列表中勾选需要调试的WCF服务。在这个列表中会列出当前解决方案中的所有WCF服务类型的项目,我们只需要选择客户端代码调用的服务(或者多个服务)即可。这里的服务名和服务项目名称以及会话启动信息中的服务名都应该是相同的(在这里是“EchoService”)。除了头节点名和被调试的服务以外,其他的属性都有合适的默认选项,我们暂时不要改变它们的设定。好了,调试的准备工作全部完成了,让我们开始调试吧!

    首先将MySOAClient项目设置为调试的启动项目,随后我们在客户端程序创建SOA会话(Microsoft.Hpc.Scheduler.Session.Session.CreateSession(startinfo))的代码后放置一个断点。按“F5”启动调试器,MySOAClient程序会运行到CreateSession()之后中断。这时SOA会话以及SOA服务job已经创建完成了,让我们来看一看Visual Studio是不是已经附加到所有的服务进程上。从调试菜单打开进程工具窗口,我们可以看到,

    clip_image006

    Visual Studio调试器已经附加到所有的服务宿主进程上。WCF服务部署,远程调试器的启动以及附加远程进程的工作都被SOA Debugger自动完成了,是不是有WOW!的感觉呢?既然我们已经完成了服务进程的附加步骤,我们就可以直接调试WCF服务的代码了。所有现有的调试器功能我们都可以使用,包括在在服务代码的断点上中断,F10/F11的单步调试,表达式求值(Watch)以及条件断点等等。当调试结束后,SOA Debugger还会自动完成服务的清理工作。

    我们已经完成了整个SOA开发/调试的过程,回头看看是不是很简单呢?原先的六个步骤最终被简化为:1)创建服务;2)创建客户端程序并设置SOA调试选项;3)F5!这三步,是不是很简单呢?

    以上就是对SOA Debugger的简介,SOA Debugger中还有很多很cool的功能,包括:调试不在Visual Studio解决方案中的WCF服务; 为被调试的服务部署额外的文件;只调试运行在特定计算节点上的服务;只调试某些特定的服务请求(Service Request)。对于这些功能我就不一一介绍了,我期待你试用我们即将发布的SOA Debugger之后自己亲身体验所有这些实用的功能!我们的开发工作还在进行之中,在最终发布之一定还会有一些改动,如果大家有什么意见或者问题,欢迎回帖。谢谢!

    Ps.,Visual Studio 2008中的MPI Debugger 插件已经发布了,欢迎大家从这里免费下载使用。Visual Studio 2010中的MPI Debugger将随Visual Studio 2010发布,敬请期待。

  • [转载Soma的博客]Super Computing 2010

    [原文发表地址] 英文:Super Computing 2010 中文:Super Computing 2010

    [原文发表时间] 16 Nov 2010 9:44 AM

    本周在新奥尔良举办的Supercomputing  2010大会上,我们宣布了Windows 高性能计算服务器(HPC Server) 2008 R2版Service Pack 1。这个版本将Windows Azure的计算周期与HPC server紧密结合在一起:当突发的工作量对计算周期产生高的需求,而用户的资源无法满足这些需求时,HPC用户通常会希望能利用云计算资源,作为现有HPC系统的补充。另外也有一类用户有偶尔大量的计算需求,这种需求并不经常发生,因此用户不想购买和维护的一个私有集群(cluster)。对于这些用户来说,云是个理想的、低成本的解决方案。

         Windows HPC Server可以很容易地用一个简单的向导和Azure紧密集成。只需要 输入你的Azure证书,HPC服务器就会连接到Windows Azure。当需要云资源时它会提供给你,而当你结束了任务后它就会自动收回资源。在 Supercomputing 2010大会上,HPC团队演示了如何通过Windows HPC Server,将Visual Studio创建的并行应用以及大型Microsoft Excel并行计算扩展到云端运行。集群用户可以像以前一样向集群提交工作,HPC服务器将决定这些工作是否要在现有集群、cycle-scavenged桌面,或是Windows Azure上运行。

          HPC Server团队也在东京科技研究院用Tsubame 2.0集群完成了他们的首次petaFLOP 超级计算的运行,加入了全球不到十个的petaFLOP超级计算机专有俱乐部。Windows HPC Server在1,296个计算机节点中能达到1.127 petaFLOPS。petaFLOP 级别的运行证明了Windows能满足超级运算规模的最苛刻要求。尽管说这是一个很大的成就,但我们的目标是把HPC带到技术计算的主流,并为更多的科学家、工程师和研究人员提供工具、平台和服务的支持,以满足他们日益增长的计算需求。petaFLOP 的运行证明了Windows HPC的规模级别,而云计算则为我们普及高性能计算提供了最大的机会。

    您可以点击这儿获得更多的信息。

  • HPC Pack 2008 R2 Service Pack 2 (SP2) 发布了

    HPC Pack 2008 R2的第二个Service Pack正式发布了! 这次更新包括很多好东西:

    • 加强与Azure的集成,比如把添加Azure VM节点加入您的 集群,创建Azure节点配置脚本和支持远程桌面连接。
    • 把MPI程序提交到Azure中运行。
    • REST接口的作业调度支持和基于IIS的作业网站。
    • 一种新的使用“资源池”来保证不同用户组使用计算资源的作业调度策略。
    • SOA改进,比如支持更快速的“进程内代理”和一种新的“公共数据”中转功能
    • 还有其他通常的service pack稳定性改进。

    如需更多信息,请参阅TechNet文档SP2安装文件适用于Express版和企业版,以及单独的“客户端工具”和“MS-MPI”包。您可以从微软下载中心下载。值得注意的是这个service pack本身不能被卸载,除非完全卸载HPC Pack整个产品。所以如需“回滚”,您需要在安装前做完全备份(包括数据库)。

    如果您还没有HPC Pack 2008 R2集群,可以下载一个免费的Windows HPC Server 2008 R2试用版。安装前,您还可以尝试一下新的安装准备向导,以分析您的环境,检测常见问题,并提供最佳实践建议来帮助您轻松完成HPC集群安装。

    如有任何问题和建议,我们非常乐意听取,请移步Windows HPC 论坛

  • Windows HPC Server 2008 下围棋得了世界冠军!

    今年10月在北京举行第13届国际计算机棋类奥林匹克大赛上,经过激烈的角逐,程序Many Faces of Go以全胜战绩囊括了围棋项目19×19和9×9两个棋盘规模级别的冠军!而为这一世界冠军围棋程序提供超强马力的,正是运行在四台八核计算机上的Windows HPC Server 2008系统。这配备了高性能武器的32个核,果然不负众望,打败了拥有更多核的法国劲敌MoGo。

    13th Computer Olympiad, Go Results

    (本图片来自http://www.grappa.univ-lille3.fr/icga/tournament.php?id=181 屏幕截图)

    故事是怎么开始的呢?话说我们组美国的两位工程师在公司走廊里侃大山,聊到国际象棋问题现在已经差不多解决了,一台笔记本电脑都可以“欺负”世界冠军卡斯帕罗夫了。但是围棋却要复杂得多(棋盘更大,可行的着法更多,局势判断更复杂),要很强的计算能力才能勉强跟一个业余选手抗衡。要是能用我们的产品帮助开发人员写游戏程序去冲击计算机围棋届的奥林匹克大赛,想必相当好玩。光说不练假把式,我们的工程师随即联系了Many Faces of Go程序的作者David Fotland,稍加讨论,双方一拍即合。经过移植、调试和优化,一个基于MSMPI的集群版Many Faces of Go诞生了,一个新的计算机围棋程序世界冠军诞生了。

    更精彩的是,我们为这个围棋程序开发了Surface版本!(什么?你还不知道Surface?赶快看看这张神奇的桌子吧,无数人,包括我,都梦想把它摆在自己家的客厅呢,虽然可能会超出装潢预算)在刚刚过去的微软专业开发者大会PDC和超级计算大会SC08上,这一Surface围棋程序演示都吸引了好多好多的眼球,好多好多的WoW,不信?看看这段超酷的视频http://www.youtube.com/watch?v=Qe0o-IvHOa0 吧。

    Go on Surface

    下图为超级计算大会SC08的微软展台,我们组的一位法国工程师正在做一件我们都很喜欢做的事情——跟四台机器下围棋。每落一子,就看看我们自己开发的Heat Map(即Windows HPC Server 2008中的热图功能,参见下图Surface上的显示器)显示这些机器的CPU都biu的一下上去了,集群吭哧吭哧地开始算起来,后台程序还能告诉我们它尝试思考了下一步走哪些地方,几秒之后它选出觉得胜率最大的一招后再得意地落下棋子,CPU就又biu地一下凉快下来。联想到我见过的随温度变化而变色的茶杯,如果用茶杯来反映CPU的忙碌情况,当两台计算机纹枰论道,只见两个茶杯涨红了脸冥思苦想,应该相当有趣:)

    Heat Map for Go on Surface

  • 捐建四川山区村小项目进展5/12/2010 Sichuan village school building project status update 5/12/2010

    (English version below)

    SANY0063SANY0057

    各位热心的同事和朋友:

    我在4月30日探访了我们捐建村小的在建工地和在租用民房里学习的孩子们,具体情况和照片如下:  

    • 在建工地
      • 村委会和工程队于四月份签订工程合同,约定工程完成时间为七月底,对材料规格等进行了细化设计和规定,并将教室宽度由原计划的6.5米改为国家教室标准的6米,符合实际需要。
      • 准备工作和辅助事宜
        • 征地完成,村小新校址就在现租用民房旁。
        • 简单修缮了连接公路和村小校址的乡村公路,以便从公路运送来的建筑材料能够经过小货车的二次搬运运到工地。
        • 工地用水准备就绪。
      • 工地:地基挖坑完成,地基石料运送在此后一天内完成。工地进度比预想的略慢,主要原因是四月中下旬当地下雨较多,简陋的乡村公路雨天泥泞,无法通车。
    • 村小现状:
      • 村小现租用一楼一底两间民房作为教室,由照片可见比我们第一次去考察时教室条件稍有改善,因为房东去年在听说我们有意捐助村小后,���造原房屋以期夫妻教师用我们的捐款买或租做教室。考虑到改造后的房屋在通风采光和安全等方面不能达到正规教室的标准,而且如此办学对房东的依赖性太大,去年我和县教育局和乡中心小学老师去访问时拒绝了房东的提议。
      • 4月30日我达到时,村小刚好准备要放五一和农忙假,所以我只简单在二三年级合用的教室里拍了两张照片和一段视频
    • 捐款情况:
      • 我们项目在当地的监管代理方--乡完小王副校长出具10万元人民币首批工程款的收据,我已由挂号信寄给CTEF在杭州的副主席罗绍伟。
      • 我们在第一阶段捐款募集了约合10万人民币,加上公司的等额匹配刚好达到20万的村小建设预算。我准备在七月份村小接近竣工时,再发起一次较大规模的捐款倡议,以解决村小的桌椅和运动器材等。
      • 捐款情况,和以前的项目进展报告,请访问项目网站:http://sharepointasia/sites/SichuanSchool(公司内网)或http://blogs.technet.com/chinahpc/(外部网站)。
    • 后续计划
      • 我会每两至三周发一次在建工地照片。
      • 七月组织一次项目讨论会,讨论大家关心的话题,包括募捐、捐款使用、实地考察和支教安排。

    如果您有任何建议和意见,请联系我。

    谢谢!

    魏臻 四川山区村小项目经理

     

     

    Hi, dear warmhearted colleagues and friends:

    On 30th, April, I went to visit our village school in construction and lovely students studying in rented houses. Here comes the details and photos:

    • Construction
      • The village committee has signed contract with a local construction team. The construction will be completed by the end of July; Some construction details such as material specification are designed and written down; The classroom width is changed from 6.5 meters of original plan to 6 meters, which is the national classroom standard and meets real requirement.
      • Preparation work
        • The land for new village school has been requisitioned for free. The new location is besides the current rented classrooms.
        • The country road, connecting road and the school, has been roughly fixed so that construction materials can be carried from road to school by small truck.
        • Water supply has been completed.
      • Main construction work: the ground foundation is almost done. The progress is a little bit slower than expected because there were many rainy days in April there, so that the country road is too bad for truck to get through.
    • The current situation of the village school
      • The school is renting 2 classrooms from a peasant. If you look at the photo, the classrooms look a little bit better than the first time we saw them. This is because the landlord knew that we want to support the school, and then improved the houses, in order to sell or rent his houses to the couple teachers. However, the houses are still not qualified for standard classrooms even after improvement, and it will make the school take a hard dependency on landlord if the couple teachers accept his offer. As a result, we rejected this offer when county education bureau officer, village central teachers and I went to investigate the village school last year.
      • At my arrival time, the school is about to start the May Day holiday and busy farming vacation. So I just took 2 photos and one short video in one of the 2 classrooms.
    • Donation:
      • Our local coordinator has written a receipt for the first project expense 100k RMB. And I have mailed it to vice president of CTEF Waisiu in Hangzhou.
      • We have raised about 100k RMB in the first fund raising milestone. Counting in company’s match, it’s about what we need for construction – 200k RMB. I plan to initial another wave of fund raising in July, in order to buy desks, chairs, sports apparatus, etc.
      • Please find the donation progress and previous status reports at the project website: http://sharepointasia/sites/SichuanSchool (Intranet) or http://blogs.technet.com/chinahpc/ (Extranet).
    • Next Step
      • I will send construction photos every 2 to 3 weeks.
      • Have a project meeting in July, discussing all topics interesting to you, such as fund raising, donation usage, school visit and volunteering teaching arrangement.

    Feel free to contact me if you have concerns, suggestions or questions.

    Thanks!

    Zhen Wei, Sichuan School Project Manager

  • 高性能系统棧的推倒和重建(一)

     

    作者简介

    徐明强博士现任微软中国研发集团服务器与开发工具事业部高性能计算资深架构师,领导HPC产品中的并行编程模型和运行时系统的设计与架构。

    徐明强博士拥有21年高性能计算领域专业经历,包括8年学术政府实验室的研究和13年的业界经验。

    2004年徐明强博士加入当时成立不久的微软HPC团队,带领了一个跨国团队(雷德蒙和上海)完成Windows Compute Cluster 2003Window HPC Server 2008地开发工作。

    加盟微软之前,徐明强博士在1996年之2004年间担任Platform Computing公司(HPC中间件的领导者)的首席架构师,负责其旗舰产品LSFSymphony产品的设计和技术战略规划。

    1993年至1995年,徐明强博士专注于并行语言的编译和运行是系统的研究,并在阿冈国家实验室完成博士后研究。在此之前,徐明强博士先后在英国埃克塞特大学取得计算机博士学位,在曼切斯特大学担任研究助理员。

    我预备写几篇我过去二十一年所见证的HPC发展史。

    ---------------------------- 

    我从事HPC工作已有二十一年,见证了一个完整的并行系统棧被推倒和重建。 旧棧的机器造价高,只有国家实验室可以支付,性价比很差。后来HPC世界有一个大的变更,由微处理器来代替定制的向量机。 现在的各行业成为这个变革的受惠者,变革的结果,使得每一个科学家和工程师,可以付担得起原来只有获取优厚研究经费的国家实验室才能使用的高性能计算机。

    这个变革经过二十多年,共三个时期:(1) 专有机时期 (2) 微处理器初期 (3)微处理器盛期。

    20-year HPC History

    专有机时期,活跃在市场上的超级计算机公司开发定制化的硬件、软件及开发工具。 微处理器初期,计算机主流公司用精简指令芯片代替了定制化芯片,自开发的定制化网络竞争。到微处理器盛期, 商品化的芯片、标准网络再次把成本降低。 回头看着二十年, 显见有一只看不见的手,要把高性能计算机从国家实验室里推到各个行业、企业。 

    在这变更中,我也曾多次更换主攻方向。或者说是从原来的棧上端一直“跌”到下面,如下图所示。

    fall and rise

    然后,我一级一级的帮助重建并行系统棧.   从这棧“跌”落的原因,是因底层的支持无法能够满足高层的需要,而从底层往高层去的原因,是为了能够使系统能够支持主流的应用和程序员编程的需要。

    我记得C++ 的发明者Bjarne Stroustrup 曾说过:“如果某件事值得做,那么这件事值得做两次”。 他曾把这句话用在他撰写的C++ 一书上。 这也是我从事HPC的经历。 到现在为止,我已经重复做了两件事情 (1) 作业调度系统 (2) 面向服务的运行时系统。 将来或许还会再次回到应用层。

    (待续)

  • 如何在Windows HPC Server 2008 R2中提交作业

    有几位读者在之前的高性能计算文章上留言,表示这个话题离主流开发人员太远。其实微软的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所示。

    clip_image002[4]

    图 3‑2 创建参数扫描任务

    (3)在“任务名”文本框中,键入作业的名称“AsianOptions Valuation by Interest Rate”。

    在“步骤1”中,键入起始值为“0”,最终值为“9”。

    在“步骤3”中,键入命令行“AsianOptions.exe 1.0*”。

    在“工作目录”文本框内,键入“\\<headnode>\Applications”(将<headnode>替换成您的头节点名)。

    (4)预览参数清除任务。如果任务不是如图3-3所示,请进行更改,并再次预览。

    clip_image004[4]

    图 3‑3 设置命令行、工作目录

    注意:

    设置任务访问必需数据的方式是在作业提交时获得最佳任务性能的一项重要因素。该设置应随数据集的大小和稳定性而异。如果数据集不会经常更改且相对较大,则应将其设置为任务的本地数据。如果数据集较小,可通过文件共享方式访问。如果数据集很大且会经常更改,则需将数据传送到节点。Windows HPC Server 2008 R2 支持并行和高性能的文件系统来提高对非常大的数据集的访问性能。通过指定工作目录,小型和中等数据集的用户将获得最佳的即用即取的体验。当任务开始时,计算节点将看到此工作目录中的所有文件并可正确处理该任务。

    (5)单击“提交”按钮。此时,用户回到了作业管理器。 在所有作业列表内,您会看到作业正在运行。等几秒钟后,作业结束,如图3-4所示。

    clip_image006[4]

    图 3‑4 监控参数扫描作业

    (6)在任务标签下,双击如图3-4所示的“任务1.1-1.10”,弹出“查看作业”对话框,如图3-5所示。上面是所有的10个任务的列表。当选择一个任务的时候,可以看见计算结果在“输出”的文本框内,比如,如果选第四个任务,会看到如下的输出:“Option Price / interest rate (1.03) = 9.15572854540851”(注意:结果不一定完全一致,因为这里采用的是蒙特卡罗算法,结果有随机性),如图3-5所示。

    clip_image008[4]

    图 3‑5 查看参数扫描任务细节

    3.3.2 使用作业调度器命令行程序

    (1)启动命令提示符。

    (2)键入“job submit /parametric:0-9 /workdir:\\shpc-0110\Applications AsianOptions.exe 1.0*”。此命令将输出作业的ID,如图3-6所示。

    clip_image010[4]

    图 3‑6 使用命令行提交参数扫描作业

    (3)监控作业状态:在命令提示符窗口里键入“job view 33”,结果如图3-7所示。

    clip_image012[4]

    图 3‑7 使用命令行监控作业

    (4)显示某任务输出结果:在命令提示符窗口里键入“task view 33.1.<参数扫描序列号>”。例如,看第四个任务输出,键入“task view 33.1.4”,按回车键,结果如图3-8所示。

    clip_image014[4]

    图 3‑8 使用命令行显示输出结果

    3.3.3 使用Powershell

    (1)启动HPC PowerShell:选择“开始-〉所有程序→Microsoft HPC Pack 2008 R2→HPC PowerShell”。

    (2)在HPC PowerShell提示符下,键入“New-HpcJob”,按回车键,结果如图3-9所示。

    clip_image016[4]

    图 3‑9 使用PowerShell创建作业

    (3)然后,键入“Add-HpcTask -JobId 35 -Parametric -Start 0 -End 9 -WorkDir \\shpc-0110\Applications -CommandLine "AsianOptions.exe 1.0*”,按回车键,结果如图3-10所示。

    clip_image018[4]

    图 3‑10 使用PowerShell添加任务

    (4)键入“Submit-HpcJob -Id 35”,按回车键,结果如图3-11所示。

    clip_image020[4]

    图 3‑11 使用PowerShell提交作业

    (5)监控作业状态:键入“Get-HpcJob –Id 35”,按回车键,结果如图3-12所示。

    clip_image022[4]

    图 3‑12 使用PowerShell监控作业

    (6)显示任务结果输出:为显示第四个任务的结果,键入“Get-HpcTask -JobId 35 -TaskId 1 -SubTaskId 4 |fl”,按回车键,结果如图3-13所示。

    clip_image024[4]

    图 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

  • Windows HPC Server 2008 R2: 高性能计算的下一幅篇章

     

    [原文发表地址] Windows HPC Server 2008 R2: The next step in High Performance Computing

    [原文作者] S. Somasegar 微软开发工具事业部 高级副总裁

    [原文发表时间] 20 Sep 2010 7:31 AM

    今天,我们发布了微软技术计算(Technical Computing)创新的一个重要组件:Windows HPC Server 2008 R2套件。Windows HPC Server提供了一个端到端的高性能计算(HPC)解决方案,并与用户已有的基于微软技术的IT架构紧密集成。它不仅提供了高难度工作量所需要的性能,而且提供了更新更好的能力–比如说让Excel 2010在集群(cluster)上处理长时间的复杂计算,或者是使用空闲的Windows 7工作站作为“桌面计算云”的一部分–所有这些都是低成本的。

    在我们继续推动高性能计算服务器平台的同时,我们也在推进技术计算创新的最关键元素之一:让开发人员可以更好地编写运行在台式机,集群,私有云以及公共云之上的并行应用。并行化长期以来一直是高性能计算关注的主要领域,随着多核处理器以及云计算的革新,提供更好更简单的并行开发工具的需求越来越强烈了。

    微软高性能计算服务器(Windows HPC Server)与Visual Studio 2010并行开发工具以及微软云计算平台(Windows Azure cloud platform)一起使用,提供了客户更简单地编写并行程序,以及更好地扩展并行应用,并延伸到云端的能力。这会使得更多的人能够利用并行化的能力和今天尚未使用的计算资源来处理更复杂的应用,解决更具挑战性的问题。一段时间之前,我写过一篇关于Visual Studio并行开发功能的文章,包括并行模式库(Parallel Patterns Library),用户级别任务,并行调试器和描述器 (parallel debugger and profiler), 以及其它的一些工具。

    作为一个并行计算平台,Visual Studio提供了一个具有高水准的并行结构以及抽象能力以帮助并行开发的集成开发环境。它可以帮助开发人员描写逻辑并行性,并将之转化为物理并行性。集成了对并行编程的支持,开发者可以简单地通过并行化应用程序,使之运行在多台机器上以提高性能。Visual Studio 2010中的调试工具窗口在传统的线程模型的基础上还提供了对任务模型的支持,此外,Visual Studio 2010还包含可以帮助你分析和测量应用程序并行程度,发现系统中资源冲突,以及可视化基于核的线程分布的描述工具。

    我们的目标是帮助你构建可以从客户端无缝地扩展到集群以及云上的应用。分布式运行时涵盖了多核单机,集群和云的情况。开发人员可以从Visual Studio 2010创建在多种不同架构上扩展的并行应用,包括在CPU和GPU上扩展的架构。

    Visual  Studio合作伙伴解决方案一如既往的扩展着我们的平台。例如,NVIDIA的Parallel Nsight允许开发者调试和分析在GPU上运行的代码。Intel的Parallel Studio使得开发者能够从多核系统中提取到全部的性能。

    最近,一家名叫Hanweck Associates的金融服务风险管理解决方案提供商使用Visual Studio和NVIDIA CUDA为高端对冲基金,银行,代理和其它的金融组织开发了基于GPU程序的风险管理解决方案。Hanweck使用了Visual Studio和C,C++,C#,VB以及CUDA开发出每秒处理百万条消息并在几微秒完成计算的实时金融风险管理软件。所有这些处理仅仅是在几台运行Windows HPC Server的普通服务器和NVIDIA Tesla GPU计算单元上完成的。在这里可以看到Hanweck Associates首席执行官Gerald Hanweck, Jr.对该解决方案的深入介绍。

    同时,你还可以在这里了解更多关于微软高性能计算服务器Windows HPC Server的介绍。

    Namaste!

  • 高性能计算成就光荣与梦想

    中国高性能计算大会(HPC China 2010)上个月在北京举行,微软高性能计算产品的第三个版本Windows HPC Server 2008 R2也于同期发布。这是高性能计算领域的两大盛事,加之我的新书《微软高性能计算服务器》也一起与读者见面,这三者交织在一处令我异常激动。想当初,我就是被一股无法逆转的大趋势 —— 高性能计算的普及所推动,才义无反顾地投身这一激动人心的领域。也是这一全身心的投入带我穿越迷雾,走向明朗的未来,成就了我生命中的光荣与梦想。

         什么是高性能计算?高性能计算是提高仿真和决策支撑应用性能相关的硬件、网络和软件技术的总称。高性能计算通过整合、管理和调度硬件和网络资源,提供强大的计算和数据处理能力,帮助人们随时随地精确的模拟现实,认识现实,使得现实为己所用,为己造福。从应用方面看,高性能计算最开始都是用在先进国家的一些科学前沿的基础研究上面,而现在已经普及到了普通的通用产品,象汽车、飞机、医药和金融风险分析等。事实证明,高性能计算有效地压缩了从建立模型和分析数据到提出解决方案所需的时间,被誉为名副其实的创新催化剂,也是各个国家创新竞争力的重要指标之一。

         这股时代的浪潮从20世纪80年代末开始,把高性能计算技术从发达国家的实验室推向全球的实验室;从高等学府和研究院推向工业界;从制造最先进的杀人武器推向研究将生命从绝症中挽回的药物;从研究大自然的规律的应用推向预测市场风险和决策支撑的应用;从少数几个推进科技前沿的项目的数据中心里,推向普通学校、研究院教授和研究人员桌面。

         我是一名六零后。八十年代初,我作为大学生见证了高性能计算普及浪潮的开端。1987年,我获得“中英友好奖学金”赴英留学。我选择了并行计算——这一我认为当时最先进的技术。同年,我以英国埃克塞特大学博士生的身份去伦敦参加研讨会。会上,我遇到一个工业界人士,当他问及我的研究方向时,表达了他的观点:“你这是在浪费青春。第一,未来会有越来越快的向量机;第二,没有人会修改自己的应用,并让这些程序运行在并行机上。”然而,我还是偏执地认为,并行一定是未来的方向。后来回想,正是这种偏执,让我在这条路上,披荆斩棘,迎接曙光;更让我明白了,哪怕是权威人士,一样会有局限性,自己的抉择才是最重要的。这两点道理,让我不论在研究方面,还是职业选择方面,都能够听凭自己内心的声音,做出无悔的选择。

         今天,我在中国、在微软从事高性能计算技术的研发——从某种意义上来说,微软是最具草根精神的企业之一。比尔·盖茨在创立微软的时候,有个家喻户晓的愿景:“让每个家庭有台电脑。”微软所培育出来的600万名开发者,给整个PC产业带来了杰出的贡献,这也为微软成为整个软件界的霸主奠定了坚实的基础。全面的通用化给整个产业带来了快速的发展和进步,而包括以TCP/IP为基础的互联网产业的兴起,更是将原来神神秘秘的企业计算、网格计算等云端的技术带到了一般开发者面前。

         2004年,微软成立了高性能计算产品组。在一次产品组策略审核会议上,盖茨看了高性能计算产品组的演示。演示包括两步,使用的是一个制造业的应用。第一步是串行应用运行,花了很多时间。第二步,把应用连到集群,很快就结束。盖茨当时就说了一句话,在创建公司的时候,他的愿景是让每个家庭都有台电脑,看了这个演示后,他觉得高性能计算的下一个目标就是让每个科技人员都拥有高性能计算机!

         也正是在2004年,在从事了8年时间集群、网格作业调度系统、并行应用运行时环境的产品架构和开发工作后,我意识到了我的职业理想与微软的草根精神、公司愿景是一致的,于是我加入其中,决心将HPC的事业彻底贡献给每一个专业用户。

         在过去6年中,我和中国研发团队一起顺利完成了新平台作业调度模块中的全新用户界面、SOA(面向服务架构)编程模型的开发和测试工作。在上述几个重要功能中,全新用户界面包括图形用户界面和传统的命令行界面,不仅使系统管理人员能直观、快捷地管理整个HPC集群,更帮助桌面用户在熟悉的界面上使用高计算能力解决复杂问题;SOA编程模型为开发人员提供了简单易用的并行计算编程方法,为并行计算进入主流应用打下坚实基础;报表功能帮助系统管理人员及时收集集群运行和作业执行信息,以图表形式显示集群、各个用户、作业等的“健康”状况;基于PowerShell的全新命令行管理工具,加速系统管理和提交作业任务的自动化。

    此时,整个高性能系统栈的重建几近完成,原来的向量机系统已开始出现被通用型微机体系取代的真正可能。最初偏执的信念,让我抓住了趋势的发展。用我的总结来说,微软具备做高性能计算,并且完成高性能系统栈所缺乏的关键的优势在于以下方面:

    1、拥有600万程序员用户——了解他们的编程习惯和模式。

    2、拥有最流行的编程环境——Visual Studio的多年积累。

    3、一流的作业调度和管理系统——Windows 高性能计算服务器。

    4、基于WCF的高性能面向服务的平台作为运行时环境。

         这些优势全都是独一无二并令人心动的。加上微软长期以来在大规模客户端和服务器平台的丰富经验,让我对微软充满信心。我坚信,我将伴随微软最终能实现整个高性能计算普及的目标;我也相信,微软的理想足以打动那些有志于此的同仁加入,并为之奋斗。

         美国总统杜鲁门在二战后和冷战期间的1950年发表如下讲话:“我们已经意识到我们国家生存和发展的能力在极大的程度上取决于我们的推进科技的步伐。此外,仅仅跟上世界其他国家科学的脚步是不够的。我们必须保持我们的领先地位。”的确,美国在科学和工程领域的领先地位得益于杜鲁门政府所设立的目标。今天,杜鲁门所说的话对于任何希望通过创新来维持可持续的竞争力和经济增长力的国家依然有极大的可借鉴价值。

         有人说:“要与他国竞争取胜,必须在计算模拟上取胜。”在计算模拟上取胜是什么概念呢?IDC 2009年发表的“全球高性能计算硬件、网络设备和软件销售数据”显示:高性能市场份额中北美占了50%,欧洲32%,日本5%,亚太12%,其他地区1%。北美绝大部分是美国所占有。所以,从资金投入上,我们清楚地看出美国在高性能计算上的投入超过世界上任何国家,显示出美国要在计算模拟领域继续保持领先地位的决心。因此,高性能计算技术的重要性不言而喻。

         承载了我多年来在高性能计算领域积累的思想和经验,我希望通过《微软高性能计算服务器》一书帮助专业领域的读者一步步掌握HPC服务器的使用诀窍。它有几百张截图,而且书中所有的示例代码、脚本文件、Visual Studio项目都可以从TechNet下载。

         路漫漫其修远兮,吾将上下而求索。在梦想照进现实的生命旅途中,我将义无反顾,始终执着。

    徐明强

    高性能计算首席架构师

    微软高性能计算服务器

    《微软高性能计算服务器》的封面图,本书由人民邮电出版社出版。

    HPC in sichuan

    去年5月,我和HPC中国研发团队成员在为汶川临时图书馆送物资时合影

  • 微软上海高性能计算组欢迎您

    大家好!请接受微软HPC(高性能计算)上海开发团队全体成员的诚挚问候。

     

    在微软,HPC组是服务器与开发工具事业部中积极推动全球分布式软件开发的一员先锋。不管是在美国华盛顿州的微软总部雷德蒙,在大洋彼岸的中国上海,还是在员工自主选择的其他工作地点,都有我们组员群策群力,协同开发的身影。

     

    我们在中国组建一个开发团队,不仅是为了更方便地招贤纳才,更及时地聆听亚太客户的声音,更体现了我们对快速崛起的亚太地区市场,特别是HPC市场的重视和承诺。 在产品Windows HPC Server 2008中,上海开发团队主要负责的模块有:图形化管理界面, powershell脚本命令, 报表和一种新的面向服务架构的编程模型。我们是一个年轻而充满活力的团队,热切期望“牛人”的加盟。如果您愿意参与微软 HPC产品的开发,作为开发人员直接编写产品代码或测试代码,抑或是作为程序经理去决策做什么样的产品,联系我们吧!

     

    在这个blog上,我们希望一两周发一篇文章,向大家提供HPC的业界新闻动态和Windows HPC Server 2008的开发进展,并希望与您交流一些您关注的HPC方面的问题。

     

    Alex Sutton—司徒安

    中国上海Windows HPC项目组经理

     

     

    Hello from the HPC Shanghai team.

     

    The HPC group at Microsoft is one of the pioneer teams doing distributed development in the Server and Tools Division at Microsoft. We have development teams in Redmond, Washington and Shanghai, China, with some other individuals scattered across the United States.

     

    Having a team in China allows us to recruit and work with some of the top computer talent in the world. It also brings us closer to customers in the Asia Pacific region, showing our commitment to the HPC market and this rapidly growing region.

     

    For Windows HPC Server 2008, the team is working on the GUI, scripting, reporting, and the new SOA programming model.

     

    We’re a young and dynamic team, and are always looking for talented people to join us. So if you are in China or want to work in China on Windows HPC as a developer (writing product code or test code), or program manager (they figure out what to build) let us know.

     

    We’ll be posting to this blog every few weeks or so to let you know more about what we are doing with HPC in China and Asia.

     

    Alex Sutton—司徒安

    Group Manager

    Windows HPC

    Shanghai, China  
     
    HPC Shanghai Team
  • 如何测试资源分配—失败及恢复

    我们知道所有程序都会和各种资源打交道,硬件资源类型如硬盘,系统资源如句柄,因此如何做好资源相关的测试很重要。大家熟知的是测试资源的泄漏,但这里我想更多的从资源分配失败及恢复角度去谈资源分配测试。

        对于资源通常有如下操作:

    1.分配资源

       我们熟知的一个典型例子就是 C语言中'malloc()' 系列函数。

    2.释放资源

       同样的一个例子就是C语言中'free()'系列函数。

    3.资源计数

       比较常见的例子就是性能计数器,比如文件句柄计数器,它能够提供“有多少文件句柄被打开”的信息

        我们编写软件的时候,我们一般都会经常使用这些资源管理类函数来帮助我们,从而得以申请和释放多种类型的资源。当然我们也会编写一些自己的代码来申请和释放资源。一般情况下,这些代码会处于我们的软件架构的相对底层上。我们可能有一个系统,在这个系统里,我们分配资源,使用资源,还可能管理并监控资源,最后当处理完后释放掉这些资源。同时还存在着当代码运行时替我们分配资源的情况。

        由于各种原因,资源的申请和分配并不总是能够成功的。其中一个原因可能是某种特殊的资源被消耗殆尽了。比如在磁盘空间不够时,我们申请使用更多磁盘资源的话就会失败;还比如内存总是是有限的;句柄空间总是那么多。总之软件有可能因为各种原因而出错,但一个主要的原因就是资源的消耗。

        对于服务型软件而言,提供长期稳定的服务是重要的设计目标之一。从而,相对于客户端程序,它需要运行得更加可靠、健壮。为了确保软件的可靠性和健壮性,我们必须确保它在资源可用率发生异常变动的情况下,它还是可以正常运行。如果某一个程序消耗了所有的内存,那么我们可以假定它肯定会出错了;但如果由于系统内存的不足导致内存分配的偶尔失败,那么我们的软件应不应该完全崩溃?还是应该仅仅让当前操作出错并让软件其他部分能够继续正常运行?同样的问题也适用于其他类型的动态分配并被共享的资源,比如磁盘空间,内存,文件,网络连接等。

        致错测试是一个重要的测试场景,可以帮助我们了解当资源使用达到极限的时候会发生什么。简单地说, 这种测试可以用以下伪代码描述:

    Pallocatedthing[<use more than enough space here>]

    counter n

    While(Pallocatedthing[n++]=allocate(<whatever size you like>))

    While(n)

    free(Pallocatedthing[n--])

        这种测试很简单,就是申请分配资源直到失败,然后释放掉所有分配的资源。这只是一种最简单的测试,如果你确保它可以工作了,那么还有几件事情等着你去做。

        首先,将它放到一个循环里面,然后执行很多次。它是否依然可以正常工作?

        其次,在它运行的时候观察整个系统,看被测试进程是否有内存,句柄或者其他资源的泄漏。这种场景下的一个典型的BUG就是资源分配函数发生错误时没有被正确处理。即使它不会立即导致崩溃,但仍可能会导致内存泄漏或者错误。这种事情我以前也遇到过。

        如果要更深入此类测试场景,则需要理解资源的依赖关系,以及在软件依次消耗掉所有的这些资源情况下其是否正确处理了所有的资源错误。这方面的一个例子就是处理消息的软件。它将在等待处理的消息在磁盘上保存为一个队列。那么磁盘如果满了的话会发生什么?这种场景可能会比较难设置,它看起来类似于:

    1. 限制硬盘空间

    2. 将消息注入到队列中

    3. 停止从队列中取消息

    4. 磁盘满了,会发生什么?相应的工作行为是正确的吗?

    5. 重新开始从队列中取消息。是否一切工作正常?

        接下来的几个步骤类似于我们上面已经做的,那就是在更多的情况下去重复测试它,并观察结果:

        尝试取出所有的消息,直到队列为空。

        建立一个稳定的消息输入流,但时而暂停并再恢复取出消息,反复执行磁盘空间测试用例,看是否在这样的情况下仍然工作正常? 如果出错的话,是否该出错被正确处理?是否有副作用,比如内存泄漏,句柄泄漏或者数据出错?是否队列的生产者和消费者都正确处理了错误用例?

        在你的软件中还会有很多关于这个主题的情况等待你去挖掘,我不准备将所有可能的情况都列在这里。我想你能够自己考虑这些事情。

    John Daly

    高性能计算美国团队测试经理

    翻译:周毅, 高性能计算(HPC)中国团队测试开发工程师

  • “微软–摩根士丹利杯”2011金融超级计算挑战赛

    (转载自 http://www.hpc-in-finance.com)

    在如今瞬息万变的金融市场中,拥有速度就意味着更高的生产力和更多的市场份额 —— 时间就是金钱的铁律被无限尊重。金融分析师都迫切地需要一个能模拟复杂现实环境,并进行精确处理的金融计算程序,以便对每个投资产品及时地评估投资收益,衡量投资风险,以期获得更好的投资回报。也正因此,高性能计算(High-Performance Computing,简称HPC)已经越来越多地应用到全球资本市场,以期在最短时间内实现对市场的动态响应与转换。

    为培养具备国际视野的金融人才,促进中国金融计算学科与金融产业共同快速发展,普及高性能计算在金融服务行业的应用,微软亚太研发集团、摩根士丹利管理服务(上海)有限公司和上海超级计算中心联合举办“微软–摩根士丹利杯”2011金融超级计算挑战赛。

    大赛宗旨:旨在激发和培养中国学生的跨界应用创新技能和团队协作精神,发掘优秀的复合型人才。

    主办单位:微软亚太研发集团、摩根士丹利管理服务(上海)有限公司、上海超级计算中心(以下简称“竞赛组织方”)

    协办单位:上海万得信息技术股份有限公司

    参赛对象:中国大陆地区高等院校的在校本科生与研究生

    参赛者必须年满18周岁。如参赛者不满18周岁,则其参加本竞赛活动中的民事行为(包括但不仅限于接受本条款和条件)均需由其监护人代理作出。

    参赛人员包括中国大陆地区的公立或民办学院/大学(以下简称“参赛机构”)中在册的所有本科生和研究生(包括外国学生,以下简称“参赛者”),都有资格参加此次竞赛。但竞赛组织方及其关联机构、子公司、及协办公司雇员及其家庭成员不得参赛(家庭成员包括父母、子女、兄弟姐妹、配偶和生活伴侣)。

    参赛者选拔及奖励:

    1. 此次比赛的获奖人员名单将在 2011 年 11月5日公布。

    2. 竞赛组织方将共同评选出三组优胜团队,分别授予“最佳软件设计奖”(Best Software Design Prize)、“最佳金融模型奖”(Best Financial Model Prize)和 “最佳并行计算奖”(Best Parallel Computing Prize)。竞赛组织方就有关获奖学生和获奖指导教师所做的决定为本次大赛具有约束力的最终决定。

    3. 优胜团队将获得最高价值人民币伍万元的实物奖励,其中学生的实物奖励价值不超过人民币肆万元整,指导教师的实物奖励价值不超过人民币壹万元整。优胜团队还将受邀参加在上海举办的挑战赛颁奖典礼、与组织方高管及金融行业专家面对面交流,并参观组织方的办公环境。所有优胜团队的学生可优先申请进入组织方的实习生招聘流程。

    4. 奖励条件:

    ·竞赛组织方保留取消违反任何竞赛条款和条件的获奖者奖励的权利。

    ·由任何有关政府或税收机构对学生实物奖励和指导教师实物奖励征收的税款完全由获奖学生和获奖指导教师承担,竞赛组织方将承担代扣代缴义务,并直接从涉及实物奖励的金额中将个人所得税款扣除缴纳主管税务局。

  • 高性能计算系统栈的推倒和重建(四)微处理机初期

    逃匿MPI进程

    1993年我加入阿冈国家实验室数学和计算机科学部做Ian Foster 的博士后。

    clip_image001

    Ian 告诉我,现在科研经费的要求和实际实用应用相结合。为此,我们不能再搞什么logic / functional 语言了。必须和Fortran/C有关。 此时他发明了一个新的语言Fortran-M (M- 代表message passing)。 这个语言实在太像Occam了。Occam 里有Channel, Fortran-M 叫port. Occam的Channel 是强类型的,Fortran-M Port 也是强类型的。Occam 里有Process,Fortran也有,并且,Process可以��态产生!

    clip_image002

    Source:

    我为这个语言写了编译器。Steve Tuecke (后来的globus 架构师)和Bob Olsen写了运行时系统。我倒是非常享受这个项目。那时的我,就是喜欢往系统栈的底层钻。当时的我,觉得世界上没有任何其他的研究比创建并行语言的编译和运行时系统更有吸引力。我当时觉得,并行计算的栈MPI 已经差不多完善了。而并行语言和运行时系统将是把并行计算推向主流的关键技术。

    clip_image004

    不过,一件事情改变了我的看法。

    一次,我正在做MPI 和Fortran-M 的性能比较实验。结果Rusty Lusk来到我的办公室。满脸不悦。他说我在他的机器上运行了一个MPI 程序,使他的机器非常慢。问我是否可以杀掉它。我觉得很奇怪,我是用了他的机器跑了mpirun. 不过我已经Ctrl-C停掉了我的mpirun。怎么还会在他的机器上跑呢? 后来才知道,他写的MPIRUN是使用rsh 在远程机器上启动MPI 进程。Rsh可以将远程进程的stdout, stderr 转到客户端,使用户有个透明的感觉。但是,当用户键入Ctrl-C 的时候,只是把mpirun 进程杀掉,而远程的进程就逃匿了。 不光没有被杀掉,而且在背景里跑得非常欢。 结论是,Rusty是“自食其果”。

    我搜索了网络,发现这种逃匿MPI进程(Runaway MPI Processes)是许多超级计算机中心中造成极大的破坏。用户总是抱怨,怎么超级计算机越用越慢!其实都是因为每次mpirun 非正常中断后,在远程节点就会有逃匿进程出现。管理员最头痛地就是要时不时地登陆到几十个甚至上百个节点上去清除这些逃匿进程。

    后来当我加入Platform Computing时候,周松年问我能为MPI做什么?我就说我要解决逃匿进程问题。在1996年我花了半年写了一个Parallel Application Support Software. 能够完全解决逃匿进程,并且还能精确地采集计算资源使用数据。后来成为公司LSF Parallel产品。

    今天您使用HPC服务器的MSMPI,您也不会发现逃匿进程。这就是投入生产使用的运行时系统和学术界软件的区别。 这点,我们必须归功于那次Rusty Lusk和我的小小的不愉快。这点小不愉快,让我开始关注到许多用户因受MPICH的启动方式而导致的逃匿进程之苦。