分类: WINDOWS
2011-04-28 11:08:10
▲《微软高性能计算服务器》的封面图,本书由人民邮电出版社出版
IT168:假如我是一个刚毕业的计算机专业大学生,没有HPC专业知识,或者说我以前主要是熟悉Linux集群应用和开发,如果要转向Windows HPC Server,会不会很难?这本书能否帮到我?
徐明强:这本书最重要的一个特点就是不需要你有任何高性能计算的专业知识,可以说是以零基础讲解为宗旨,但很注重实用性,从集群安装、作业调度到编程开发和HPC应用,每一步都介绍得很细致。通过阅读本书,一般的用户可以了解如何使用集群来提交作业应用,IT管理员则能够部署、监控、诊断和调度集群资源,开发人员能够编写基于MPI、面向服务以及Excel的HPC应用。
▲中国团队深入参与微软高性能计算研发
对于一般用户和IT管理人员来说,Windows HPC Server可以大大简化他们的工作。比如书中介绍了一个用户案例是上海工业集团。上汽原来主要是使用Linux集群,但碰到一个很大的问题是在内部无法普及,因为很多用户对于Linux的命令行模式比较头疼,管理员也需要做很多工作来定制一些管理使用界面,效率很低。使用了Windows HPC Server之后,IT管理人员的效率提高了20%以上。因为Windows可以提供更友好的界面,用户使用起来很简单。现在他们内部已经把高性能计算推广到了五个部门,一共有200多名用户在使用,甚至远程的用户也可以通过Web界面来访问集群资源。
对开发人员来说,虽然不可能一夜间就能从Linux转到Windows,但微软也已经做了很多工作来帮助他们提高开发效率。有很多开源代码,比如分子化学、气象、计算流体力学、分子动力学、量子化学等方面的,原来只在Linux上开发,现在也都有了Windows的版本。对于一些工程计算、金融和保险等,也有一些第三方软件开发商推出了支持Windows的软件。在工具和编译器方面,也有很多,比如GCC、PGI、Intel以及微软自身的编译器,也有一些交互编译的工具和跨平台的界面。为了帮助纯Linux编程人员把应用迁移到Windows平台,微软也提供了一一对应的接口和帮助文档,帮助他们提高效率。
另外,微软还有专门的高性能计算性能实验室,现在主要是帮助第三方软件开发商,由专业的性能优化工程师来分析源代码,找到瓶颈,然后改进,如对I/O、分配和管理等进行微调,以实现最佳性能。
IT168:作为微软Windows HPC产品的第三代,Windows HPC Server 2008 R2和之前的版本相比,最大的改进在哪里?
徐明强:跟上一代相比,R2的改进主要有三个方面:
一是管理更加容易。尤其是针对有成百上千个节点的大规模集群,R2提供了覆盖式“热图”功能,可以看到节点、、网络的使用率等性能信息。比如我们可以定义内存泄漏的临界值,当内存泄漏导致节点可用内存变少,管理员通过不同颜色标识很快就可以监控到异常节点,然后进行诊断。
▲Windows HPC Server 2008 R2可扩展到上千个节点
二是应用编程模式更广、更好用。比如在面向服务的编程应用中,R2开始支持异步提交的模式,这对于那些希望在上提交了作业之后就关闭电脑的用户来说,就不用再担心关闭电脑会导致作业中断的问题。在广度上,R2开始支持Excel这样常见的“杀手级应用”,可以把应用领域从传统的HPC扩展到事务处理和数据分析。
三是作业调度更加灵活。比如新增加了平衡策略,作为对“先到先得”策略的补充,集群可以在用户作业之间自动分配资源,而不用象以前那样必须做硬性划分,导致资源分配不均、利用率不高等问题。另外新增加了可定制诊断、可定制报表等功能,前者让第三方软件厂商为用户提供常见问题诊断工具,比如软件许可证、集群安装、网络安装等方面,大大减少其技术支持成本。
IT168:跟现在应用非常主流的Linux集群相比,微软的优势在哪里?
徐明强:首先,我们认为高性能计算本身还没有进入主流。IDC的调研数据表明,有全球有7千万科学家和工程师需要高性能计算能力,但其中五分之四的人还没能用上。在国内,有许多大学老师仍然在单机上做模拟,但不得不把模型简化,这样精度会受影响,比如这种条件下设计出来的锅炉就不如在HPC环境下设计出来的节能。微软也曾经做过调查,发现一个很重要的原因是用户找不到合适的HPC管理人员,因为能够管理和使用Linux集群的人很少。比如中石油在野外勘探时需要做一些地震数据的辅助性分析,但很多操作人员都是中专生,不会使用Linux,一旦中间出错就没法再继续下去。相反,对于微软来说,大部分管理员都会Windows。
▲全球有7千万科学家和工程师需要高性能计算能力,但其中五分之四的人还没能用上
从投入来看,Linux厂商在HPC的投入也不够,他们更多是希望与微软竞争进入企业IT市场。而微软从今年5月开始投资数亿美元,专门成立了科学计算部门。另外从开发人员的广度来看,Visual Studio是目前最流行的开发工具,我们会让它更容易开发高性能计算应用。我们已经推出了多种编程模式,包括MPI、面向服务、Excel以及未来针对海量数据分析的MapReduce。
从集成性来看,微软与大量第三方软件开发商有合作认证机制,保证在作业调度器集成、MPI集成、诊断测试、硬件驱动等方面,Windows集群可以做到端到端的开箱体验,提高用户的使用效率。而且,微软会逐步实现所有编程模式的适应性,保证一次编程能够适应多种环境,包括多核的单机环境、多节点的集群环境以及云环境。
通过这些,我们希望那五分之四还没有使用HPC的人也能够用上高性能计算。
IT168:书中提到一个很有意思的比喻,微软将程序员分成三类:“机会主义分子莫尔特”、“实干家埃尔维斯”以及“偏执狂爱因斯坦”,那么,针对这三类程序员,微软HPC产品分别怎样帮到这些程序员?
徐明强:“莫尔特”和“埃尔维斯”属于那种边干边学,一步一步往前走的人,而“爱因斯坦”更象架构师,先想好解决方案,把大块大块的程序写好,然后再开始编译运行。
目前大多是“爱因斯坦”会用MPI来编程。不过,对于“莫尔特”和“埃尔维斯”,微软也做了一些工具让MPI编程更容易,一是在Visual Studio中有MPI调试工具,让编程人员可以在工作站上启动集群程序,也可以在多个进程设置断点,为调试程序提供方便。二是编程模式上提供了MPI.net,这样对象的序列化比较容易,避免一些常见错误,可以节省近20%的工作量。对于“爱因斯坦”,常见的问题是通过MPI把程序编写好之后,发现性能不够好,我们提供了性能剖析软件,把进程间的信息交互可视化出来,从而方便找到瓶颈。
总之,大多数高性能计算开发者都是行业专业人员,总是希望尽快解决问题,提高工作效率。我们主要通过调试工具、简化开发流程、性能调优等三个方面提供帮助。
IT168:谈到HPC的资源管理和作业管理,PLATFORM是很专业的一家厂商。您本人之前也在这家公司呆了8年,然后现在开发微软的HPC产品也有6年时间了。在您看来,这两家公司的产品设计理念上会有哪些不同?是否两家公司的产品针对不同的用户群?
徐明强:PLATFORM主要是针对高端客户,这些高端客户可以产生最大的利润,也可以提供最多的反馈,比如世界前几百强企业的数据中心。这些用户对产品的要求是功能强大、可定制,所以PLATFORM的管理员手册往往很厚,对需要定制的参数和属性有非常详细的描述。
不过,参数太多,调度策略以及策略交互产生的影响也比较复杂。比如PLATFORM LSF支持多个队列,每个队列中可以定制多种排序方法,包括先到先得、反填、合理共享等,队列之间还可以根据用户和作业的优先权相互抢占等等。而微软的设计理念是只有一个队列,大大简化管理监控过程,同时通过“作业模版”的方式来解决多用户群共享的问题,这些模版可以设置一些资源使用条件,比如多少个内核、多少内存、哪些用户有权限使用等等。
在我看来,作业调度已经发展了三代,第一代是PBS,每个节点就是一个队列,某一个节点死了,后面的作业要等上很久;第二代是PLATFORM的LSF,队列不是在节点上,而是在网络中,有一个节点死了,作业可以运行在其他节点上。微软要做的是第三代,在提供强大功能的同时,减少复杂性。当然我们也是站在巨人的肩膀上,如果没有PBS和PLATFORM和大量用户使用经验的积累,我们也不可能这么做。
微软的作业调度器还有很重要的一个特点是和管理系统无缝集成。当节点加入和脱离集群时,作业调度器都能自动识别,或为其分配作业,或清理作业。另外,作业调度器还为管理报表系统提供大量资源使用数据,如作业提交时间、运行时间、资源使用数量、软件许可证数量等等,借此可以简化管理员的工作复杂度。
总的来看,就当前的现状,PLATFORM与微软的客户群不大一样,前者主要是针对高端的使用Linux的数据中心,据IDC统计,全球有7千万人需要高性能计算能力,即他们的应用在本地遇到资源瓶颈,而其中只有1百万人能享用这种能力。 微软在不忽视数据中心用户的同时,更加重视仍未使用高性能计算的 6千9百万另外客户,把HPC市场这块蛋糕做大。当然,PLATFORM也是微软的合作伙伴,他们的作业调度器也可以在Windows上跑。并可以管理混合Linux和Windows集群。
IT168:我对Excel的高性能并行计算应用比较感兴趣,但书中只介绍了在金融产品定价方面的例子。我想了解一下,对于一般企业里可能会涉及数据分析的开发人员来说,应该怎么去利用这种方式来提高效率?
徐明强:我们最近在帮助印度一家做智能商业数据处理的外包公司,并行化一个有几十万行数据的Excel电子表格。微软提供的解决方案是写一个Excel宏,把每10万行数据切成多块,让每一块在不同的机器上运行,然后返回结果产生一个新的表格。通过这种并行化,可以大大节省处理时间。
▲Excel也能实现高性能并行计算
以前许多机构的做法是用Excel做模型,然后从数据库中把数据导出来,再用其他的软件进行并行化分析。但现在Excel 2010提供了端到端的解决办法,也就是可以直接在Excel中做并行计算,快速得到可视化结果,这样对用户来说是最方便的。用户不需要学习新的应用软件,甚至学习新的语言,一般会VBA的开发人员就会写这个宏。在扩展性上,自Excel 2007开始,我们就已经可以支持100万行的数据。而且这种方式支持多种计算后台,可以是Windows 7的工作站,也可以是Windows HPC Server 2008 R2集群,还可以是在Windows Azure云中。
我写这本书的一个初衷也是抛砖引玉,希望有更多人用Excel并行计算来做事务处理,我们相信用户是非常有想象力和创造力的。
IT168:书中提到微软有一个愿景是“让每一个科技人员都有高性能计算机!”我想要实现这个目标,除了把Windows HPC Server这个产品做得更加好用、易用之外,还需要做哪些工作?比如是否会考虑个人HPC、GPU桌面超算、云计算等方式。
徐明强:对于很多应用,当用户在自己的桌面上跑时,很少有人抱怨它很难用,而一旦跑到集群和云中去,问题就来了。我想主要原因是,单机交互模式确实比较简单,比如对于一些工程类应用,你只要提交数据,设置好边界条件,再选个求解器,然后让机器去模拟计算就行了,只是时间很长,效率比较低。而要在Linux集群中,你要安装集群,输入数据,提交作业,输入命令,再监控作业进度,进度慢了还要验证,最后把计算结果拿到工作站上去做可视化,中间有很多工作要做。Windows HPC Server就是要尽可能简化这个过程。
确实,现在微软所有的产品都要求要支持云环境,高性能计算部门也在跟一些第三方软件厂商合作,我认为关键的一个问题是如何提高远程运行的透明度问题,也就是让用户意识不到自己是在使用云来计算,让这个过程得以简化。对于GPU计算,我的看法是,GPU理论上可以提供100倍的加速,可以做一些实时计算,让用户很快获得结果,但精度还不够高,所以不会完全替代传统的CPU集群。
IT168:具体到云计算,微软是否已经拥有或正在开发针对云环境的高性能计算产品?
徐明强:美国WIRED杂志上曾有篇文章“Web is dead, long lives Internet”,即Web已死,Internet万岁!其观点的依据是,在十几年前Web上大部分应用都是FTP的文件传输,有一部分Email,而如今50%以上的流量则是视频,其他的是一些象Facebook这样的社交网络。今天我们用浏览器的时间少了,但用Internet的时间没有少,许多互联网协议还在使用。人们更习惯于通过各种客户端应用使用Internet。 因此,我们在使用云的同时也不能忽视客户端应用的作用,云服务作为架构是正确的,但最终用户还是希望使用客户端,苹果应用商店的成功也说明了这一点,需要把云和端有效结合起来。
实际上,我们的调查也发现,微软现有的对Windows Azure感兴趣的客户,有三分之一是希望用它来做高性能计算。我想这是因为当高性能计算变得越来越易用,用户的计算需求、处理问题的规模和数量也越来越多,但数据中心的扩容以及资金预算是有限的,所以需要找到一种更有效的方法,比如云计算来解决。
不过,在短期内,主要的应用模式是企业内部有集群,但在负载高峰期去买一些云节点。比如在金融、保险行业,每月月底的负载比平时要高很多,这时可以买入一些Azure云节点来计算。微软近期也会发布Windows HPC Server R2 Service Pack 1,其中有一种应用模式叫CloudBurst,前端是Excel,可以结合使用集群和云节点来提高运算速度。这种服务还属于Platform as a Service (PaaS),需要用.NET写服务,然后部署到集群和云中。
▲把桌面计算、集群计算和云计算统一起来
下一步会把集群基础设施完全放在云中,提供Service as a Service (SaaS)服务。微软科学计算部门除了把Excel与云服务结合起来,针对大规模数据分析,还会把MapReduce与云更有效地结合起来。我相信许多信息数据,如地球物理、生命科学、经济、证券交易等,与云结合起来必定会产生更多的新兴应用。
IT168:在高端HPC系统如百万亿次、千万亿次甚至百亿亿次,与中低端HPC系统之间如小规模集群、个人HPC之间,微软是否有所侧重?还是两手都要抓?
徐明强:微软的战略是要把高性能计算市场这块蛋糕做大,我们认为这个市场要比现在大得多,这也是我们要投入数年数亿美元的原因。有统计表明,当前全球使用HPC的专业人士是1900万,而使用Excel的人就多达3亿,这为我们普及高性能计算提供很好的基础。
当然,微软重视那五分之四应该使用但还没有使用HPC的人,并不意味着微软会放弃大机器。我们肯定是两手都要抓,不会忽视其中一个。实际上,微软最新Windows HPC Server可以调度、管理的节点数据已经达到上千个CPU、上万个内核的规模。两年前进入全球TOP10的曙光5000也使用了Windows HPC Server 2008。
《Windows HPC Server:Step by Step——微软高性能计算服务器》作者简介:
▲徐明强博士 微软亚太研发集团服务器与开发工具事业部(中国)高性能计算首席架构师
徐明强博士于2004年加入当时成立不久的微软高性能计算(HPC)团队,现任微软亚太研发集团服务器与开发工具事业部(中国)的HPC首席架构师,负责产品中的并行编程模型和运行时系统的设计与架构。
加盟微软之前,徐明强博士在1996年至2004年间担任一家HPC中间件厂商的首席架构师,负责其两个旗舰产品的设计和技术战略规划。
徐明强博士拥有22年高性能计算领域专业经历,包括8年学术政府实验室的研究和14年的业界经验。徐明强博士能深入浅出地讲解“高性能计算”,并于2010年10月出版《微软高性能计算》一书,首次全面、系统地向集群用户、管理员和开发人员深入浅出地介绍HPC历史,微软HPC战略及最新产品的使用、管理和编程的各项技术及实战技能。
1993年至1995年,徐明强博士并在阿冈国家实验室完成博士后研究。1987年至1991年在英国埃克塞特大学取得计算机博士学位。
背景资料:微软科学计算计划
今年五月,微软服务器与开发工具事业部(STB)总裁Bob Muglia在介绍微软的科学计算计划时表示:“要让更广泛的人群享受和利用高性能计算的运算能力和资源,如:在世界各地需要通过建立模型和分析数据来解决许多重要挑战的科学家、工程师和分析师们。”这些挑战众多来自金融、动漫和制造行业等。这项计划包括把科学计算引入云计算,简化并行应用程序的开发以及提供强大的新工具和应用程序。
在公共和私有领域,科学计算一直被科学家和研究人员所广泛应用。我们的计划是一项战略投资,旨在汇集公司的技术专长和资源来支持最广泛范围内的科学家、工程师和分析师们,来建立更强大的模型和更精确的预测,以推动他们的工作。基于我们丰富的经验,我们致力于与科学计算业界进行深度合作。
微软科学计算事业部总经理Bill Hilf表示:“我们的长期目标是通过跨越桌面、服务器和云计算的功能,让更广泛的客户拥有使用科学计算的能力——这版Windows HPC Server就是我们向着这一长远目标迈出的关键一步。各行各业的用户都能将Windows HPC Server作为构建和运行模拟周围世界模型、加快发现问题,以及帮助做出更好决策的基础。”
▲跨越桌面、服务器和云计算
微软的科学计算计划是服务器与开发工具领域的一项重大投资,将主要关注三个领域:
1. 云计算。在通过云计算向科学家、工程师和分析师提供科学计算能力方面,我们将扮演主要角色。超级计算负载将可能成为云的“杀手级应用”。
2. 更简单一致的并行编程。我们将提供新的工具,简化从客户端到服务集群,到云在内的现代化分布式系统上的应用程序的开发工作。
3. 强大的新工具。我们将引入强大、易于使用的科学计算工具,它们将大幅缩短科学研究探索的时间。我们将与客户和独立软件开发商合作伙伴合作开发创新的解决方案,实现科学计算的愿景。
合作伙伴案例
各种类型客户都依赖Windows HPC Server来加快他们的重要工作。下面是与美国合作伙伴的部分例子,更多例子见:
• 斯克里普斯研究所过去是手动处理测试结果,这限制了他们在免疫学、分子与细胞生物学、化学、神经学、自体免疫与心血管病的研究创新工作。为了提高效率,他们采用了基于Windows HPC Server 2008的高性能计算解决方案。现在,测试结果的处理速度提高了600%,而研究成本降低了一半,节约了500万美元。
• 落基山超级计算中心(RMSC)的一项工作是把超级计算引入美国的主流应用。凭借其独特的业务模式,这个位于美国蒙大纳州的机构向小型企业、政府机构、美洲土著部落和学校按需提供基于互联网的超级计算服务。为了鼓励更多人尝试超级计算,RMSC采用了Windows HPC Server 2008操作系统。RMSC的客户可以充分利用熟悉的Windows桌面环境中的众多计算能力,从而做出更佳的业务决策,从数据中获取新的见解,并且充满信心地进行以前因为缺乏数据或计算能力而受阻的项目。
• Intellectual Ventures公司正在努力消除全球范围内的疟疾,他们使用Windows HPC Server 2008模拟疟疾的扩散方式以及对各种预防措施的反应。通过利用集群,研究人员可以为更详细的参数建模,在不到一个小时内即可以获得更精确的结果,而不是等待一整天的时间。如此以来,研究人员就可以提高他们抗击疾病的工作效率。