“微软进入高性能计算(HPC)领域历史很短,几年前在全球超级计算机500强(Top500)中看不到微软的名字。2008年底,微软与曙光和上海超级计算中心合作,排到了第10名。”微软负责HPC的服务器与工具事业部高级总监Vince Mendillo近日在接受专访时表示。
高性能计算机的历史已经有50多年了,即便从1993年Top500开始发布排名算起,也快30年了。与之相比,微软高性能计算的历史确实很短:微软第一款高性能计算产品Windows Compute Cluster Server 2003是在2006 年6月才正式发布。至于说主打产品Windows HPC Server 2008则是在2008年9月才发布。
然而,历史很短的微软高性能计算部门不仅担当着微软进军高性能计算市场的责任,而且还肩负着引领Windows走向并行的义务。
并行化微软的动力
高性能计算日趋广泛的应用和x86平台的多核化,已经改变了高性能计算市场阳春白雪的形象,也成为微软进入高性能计算市场的两大契机。
“如今,科学界、工业界、政府甚至分析师用户都面临着同样的问题——有待处理的海量信息,因而对计算性能的要求越来越高。我们认为,水平扩展(Scale Out)是彻底解决这一问题的方式。高性能计算不是要把单台机器做得非常大,而是应通过机群来实现。”Mendillo表示。
与此同时,x86平台多核化带来的并行编程挑战也在颠覆Windows平台传统的串行编程的模式。
“x86平台多核化的发展趋势,使得在不久的将来人们就能用上有几十个内核的PC。但是现有的大多数软件还无法适应硬件上多核技术的发展。最核心的问题就是并行编程,原有的编程方式和算法都已经过时。如何让开发者或用户能非常容易地把并行软件开发出来,这对微软来说是非常重要的。”Mendillo表示。
“并行计算是高性能计算必需的,也是Windows平台发展的方向。尽管我们高性能计算部门现在还处于初期阶段,但我们努力的方向是让微软整个产品线都向着这个方向发展。在微软内部,我们相当于推动Windows平台并行化的动力。”
“微软在高性能计算上的投资非常大,这将会影响到整个公司所有的产品部门,不仅涉及到操作系统及其上的软件,还涉及到开发工具。比如说,我们不断地开发新的工具以便让并行编程变得更容易一些,我们也在考虑Windows HPC Server与.NET的并行延伸,我们还和Visual Studio开发工具部门密切合作,以便让开发者能更快地开发出并行软件。”Mendillo表示。
高性能计算四处着手
4月7日,微软通过提供网上下载,扩大了最新版本Windows HPC Server 2008 R2的beta测试范围。
Mendillo表示,微软主要是在四个方面提高了新版软件的性能和功能。
高性能计算首先就是要实现高性能。“尽管Linux进入高性能计算市场已经很多年了,但在模拟两车相撞的通用有限元分析标准测试中,随着处理器内核数的增加,我们产品的性能表现至少与Linux一样,有些时候甚至超过它们。”Mendillo表示,“拥有强劲浮点性能的GPU作为性能加速器已经越来越多地被用在高性能计算系统中,我们现在的测试版已经包含了对GPU的支持,开发者可以在嵌有NVIDIA公司GPU编程工具的Visual Studio上,对GPU进行编程。”
二是加速Excel运算。切不要以为这是杀鸡用牛刀。Mendillo介绍说,使用Excel的人寿保险精算其运算量非常大,在高端PC上要跑14个小时,而后来这家保险公司使用32节点的机群系统后,耗时只有2.5分钟。
如今高性能计算用户面临这种尴尬的情况:一方面渴求计算资源,另一方面大量的桌面计算资源被闲置。Windows HPC Server 2008 R2提供了名为“工作站机群”的功能,把桌面上的工作站和PC闲暇时间的计算资源整合成一个高性能计算系统,这是其三。
最后一点则是由于高性能计算系统通常都是异构平台,因此跨平台的互操作性就显得很重要了。“我们从客户那里了解到,有些客户过去一直在使用Linux机群,现在想用Windows方案。这样客户原有的投资和Windows之间的互操作就十分重要了。”Mendillo表示,“微软与Adaptive等三家公司合作,为用户提供双启动以及动态负载平衡等功能。”