扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
虽然在全球TOP500高性能计算机排行榜中,跟Linux集群相比,微软的份额很不起眼,只有5台入选,而Linux的总体份额超过85%,在排名上,微软迄今最好的成绩也只有2008年装有Windows HPC Server 2008的曙光5000A排在第10位;不过,如果把高性能计算市场结构比做一个金字塔,TOP500代表的仅仅是塔尖那小小的一块,微软在高性能计算领域的野心更在于塔中和塔基部分,即广泛的中小规模高性能计算集群用户。
日前,在全国高性能计算学术年会(HPC China 2010)上,面对众多国内外的HPC用户,微软公司高调发布了Windows HPC Server 2008 R2——过去7年来微软在高性能计算研发成果的积累。会后,微软科学计算事业部总经理Kyril Faenov接受了IT168等媒体的专访。
中科院计算所副所长孙凝晖(左)与Kyril Faenov共同启动Windows HPC Server 2008 R2发布仪式
据IDC统计,2009年整个HPC市场里有15%的服务器使用了Windows HPC Server。不过,这并不能让微软满意。今年5月,微软又投资数亿美元建立了专门的科学计算部门,该部门的产品包括并行计算平台和微软高性能计算平台Windows HPC Server【微软的科学计算计划主要关注三大领域】。
“目前全球的7000万用户中只有100万人用到了高性能计算。”Kyril Faenov表示,之所以造成许多应该使用HPC的用户没有使用,其原因主要有三点:一是大部分用户都是科学工作者,相对熟悉数学模型,但不知道如何实现编程。二是并行编程非常有挑战性,软件开发者要从思维上把一个计算逻辑并行化非常难。三是应用比较困难,因为获取高性能计算资源仍然比较昂贵,而且其集群管理也需要有一定的特殊技能。“微软科学计算部门希望能够通过不断降低高性能计算软件成本,让软件更易用,交互方式更简单,使得7000万的用户可以更方便使用资源,软件开发者可以简单、便捷地开发应用程序,IT管理员有效管理资源。”
那么与Linux相比,Windows HPC Server的最大优势又在哪里呢?Kyril Faenov从四个方面进行了分析。
易用性与性能
首先是集成性与复杂性。对于Linux集群来说,用户需要从不同厂家那获取作业调度系统、MPI、并行计算数据库、软件开发工具、资源管理系统等等,然后还要有一个很资深的专家来把这些软件集成在一起,这种困难性大大限制了高性能计算用户的范围。
而Windows HPC Server从设计之初,就整合了三方面的功能:一是让IT管理员可以简单地实现集群部署、监控、纠错、诊断以及报表;二是提供作业调度器,使得用户的作业可以被有效分配到集群的资源上去;三是提供一些开发工具,使得软件开发者更有效地开发集群应用软件。这种整合性大大省去了用户自己去做集成的复杂工作。
中国团队深入参与微软Windows HPC Server 2008 R2的研发
其次从性能上看,“我们的性能测试结果表明Windows要超过Linux,因为我们不仅拥有管理软件、操作系统,而且对操作系统做了各种各样的优化,使得我们可以给用户提供最易用的软件,也是最高性能的运行时系统。”Kyril Faenov表示。
扩展性
第三,在扩展性上,Kyril Faenov认为,目前只有微软的高性能计算服务器才能够让用户从一般的服务器扩展到桌面台式计算机,以及到云里的计算资源。Windows HPC Server 2008 R2本身已经可以支持拥有上千个节点的集群系统,“最新测试是可以扩展到1500个节点的大型集群。”
而且更具前瞻性的一点是,当用户发现自己的集群资源使用接近饱和,但受数据中心空间和投资限制,无法购买和扩展更多资源时,微软提供了扩展桌面计算和云计算两种新的方式。前者是通过灵活地把一些闲置的桌面计算机作为节点投入高性能计算集群,比如北京市动漫公共技术平台就已经借助HPC Server 2008 R2的COW功能,把那些晚上闲置不用的工作站加入到了渲染集群中。后者则是让用户以小时为单位租用Windows Azure的云计算资源。
微软科学计算事业部总经理Kyril Faenov
“未来用户可以选择全部使用云的资源,或者使用桌面上台式计算机资源,或者内部也有一些服务器集群资源,或者是三者之间的任意组合。”Kyril Faenov谈到。
针对目前国内普遍存在的“大机器,小应用”的现象,即机器拥有成千上万个CPU内核,而应用软件能使用到的内核数大多只有几十个,Kyril Faenov也表示这确实是一个问题,但需要具体分析:一是针对某些应用,随着使用内核数的增加,计算和模拟精度会显著降低,其效果反而不如先在小规模平台上计算好再进行汇总的做法。二是确实需要寻找和研究那些能够利用到成千上万个核的应用,比如大规模海量数据分析、全国性卫星图象处理等等。“当我们到了百亿亿次(Exascale)规模的时候,从我们的数值方法上面可能要做一定的调整,而不是像现在用线性代数的方法,然后把它一直拉伸到无穷大这样一个做法。”
软件开发与新兴应用
最后,从开发人员以及最终用户的效率上来看,微软的Visual Studio,以及Excel可以让最终用户及开发人员变成一个高产的应用开发者,从而促进高性能计算的普及。
Kyril Faenov谈到,为了让用户在单机上的应用能够方便扩展到集群和云中,微软在其拥有600万用户的Visual Studio中提供了对并行开发的支持,包括三个方面:一是支持并行编译器,二是提供并行运行时系统使C、C++应用可以在多核平台上有效运行,三是提供性能剖析和调式工具,以提供应用性能。
而且更有意思的是,针对拥有数亿用户的Excel电子表格软件,微软也开始提供高性能并行计算方案。据介绍,经过多年的演进,微软Excel已经从简单的电子表格变为一个直观且操作简易的数据建模和运算系统。因为Excel包含丰富的统计分析函数,能够创建复杂分析模型,是数据分析最流行的工具,目前金融、保险等领域的用户对于Excel计算资源的需求非常巨大。但对于拥有数十万行、上百万行的电子表格,随着模型的复杂化,计算时间也大大增加,少则几个小时,多则数天甚至数周,通过并行化,则可以大大提高运算速度。
在此次HPC China 2010大会上,微软就和中科院计算所就联合演示了“基于微软高性能计算平台和中国龙芯PC-Mate的Excel计算加速应用”:亚洲期权定价模型是一个典型的金融行业应用,具体定价涉及了大量蒙特卡洛模拟计算。在实际应用中,该类计算在单机上需要至少十几个小时,借助高性能计算集群甚至云计算能力的大型金融机构可以在十多分钟内取得计算结果,以应对瞬息万变的市场。根据该演示,当Excel需要的计算能力超过单机所能够提供的能力时,用户可以通过微软高性能计算平台和龙芯加速Excel的计算,从十几个小时缩短至一个小时以内,使中小企业、科研实验室和家庭办公用户进行数值模拟计算成为可能。
未来的四个方向:GPU和云
谈到未来的研究方向,Kyril Faenov表示微软会从四个方面努力:
一是如何让GPU以及其他硬件加速器被有效使用,毕竟目前即便是在单机上,GPU编程也很难,因此微软考虑的是如何提供一个便捷的编程模式,使得程序员尽快的开发出高效的软件。
Kyril Faenov告诉记者,在Windows HPC Server 2008 R2上微软已经支持GPU,其作业调度器可以调度基于GPU的作业,为作业分配GPU资源,建立适合在GPU运行的作业环境。微软与Nvidia也有很好的合作,使得Nvidia的开发系统可以加入到Visual Studio工具环境里,使得开发程序员可以使用Visual Studio来调试GPU应用。
二是针对大规模数据分析领域的开发工具,使得用户在集群和云上可以做大规模数据分析。
三是目前云计算还处于早期研发阶段,要把云计算的梦想变成现实还需要几年的时间。当前面临的主要挑战是如何把云的数据中心很有策略的分布在全球各地,以及如何提高云计算性能,使得高性能计算能够有效地在云环境中运行。
把桌面计算、集群计算和云计算统一起来
四是类似Excel电子表格这样的高性能计算应用,“我们虽然在R2上引入了一些功能,但是要使得一般的知识工作者可以很高效的开发一些高性能的应用,需要很复杂的程序库。”
另据了解,在产业环境方面,微软除了继续与第三方软件商和硬件设备商,如IBM、惠普、曙光、浪潮等合作之外,也会加大与国内各大超算中心的合作力度,目前Windows HPC Server在国内的成功应用案例包括上海超级计算中心、上海汽车工业集团以及北京市动漫公共技术平台等。【Windows HPC Server 2008的国外应用案例】