上个世纪,每年人们都会在新推出的电脑硬件上花费大量的金钱,却从来没有考虑过购买一台多核计算机。而时至今日,双核计算机在桌面电脑领域已经十分普及。现在,四核计算机也正在推向市场。索尼公司的PS3游戏机甚至使用了双倍的计算单元来支持它的主处理器。
在不久的将来,我们会看到市场上会有越来越多的多核处理器。毫无疑问的是,这些处理器的功能将更加强大。但是随之而来也产生了新的问题,就是软件开发商们怎样才能开发出与之相适应的应用软件来有效的利用所有的核来解决使用中的问题。
我们正是处在这样一个无可避免的过渡阶段。人们都希望自己今天购买的电脑要比以前购买的更好。而且随着技术的进步,芯片开发商们也不得不改变观念,重新定义什么是"更好"。
在上个世纪末,标准公制是处理器内核工作的时钟频率(主频)。处理器主频的速度由10MHZ提高到了1GHZ。但是随着处理器的时钟周期也转变为GHZ频率,芯片生产商就遇到了2大难题。首先,和那些内存速度迟缓,处理器不得不花时间来等待处理这些信息的电脑。相比之下,现在的处理器速度是越来越快了。通过改变这些处理器的架构能够加快处理器的速度,但却增加了设计的成本,也给软件的设计者增加了相应的难度。
芯片设计者遇到的第二个难题就是,提速后的时钟频率增加了处理器的能耗和热量消耗。给用户和信息中心带来了麻烦。
FLOPS的回归
芯片生产商们目前开始着手解决容量和速度之间的问题,重新使用原有的浮点运算(FLOPS)方法。FLOPS的优势就在于它能在计算机时钟频率停滞甚至衰减的时候,记录计算机的性能。由此芯片生产商就能缩小芯片的体积,在一个时钟周期内利用多核做更多的浮点运算来提高主频的速度。这就能使今天的计算机表现的比过去更加卓越。
但软件还是个难题。软件开发商们如何才能开发出与之相适应的应用软件来有效的利用多核来更快的解决问题呢?随着时钟频率速度的提高,软件开发商就要开发更快的程序。由于相同的时钟频率下处理器核数量的增加,软件也需要利用这些新增的容量来进行调整。并行软件是过去二十年计算机领域所面对的挑战和关键所在。对这些应用并行软件的开发无疑是一项十分耗时而艰巨的工作。
超级计算机领域中的应用
在超级计算机(即高性能计算机)领域,很多应用软件都会用到成百上千的内核,但这些只代表了全世界应用软件中很小的一部分。多核计算机真正的价值是在主流软件开发技术发展到并行程序之后才逐渐为人们所认知的,多核计算机的出现无疑是一个对计算机前沿领域的挑战。
超级计算机多年来都在主流计算领域中都占据着优势。
并行计算最大的挑战就在于将一个大的计算单元分解为许多部分,在许多处理器单元上同时进行计算,目的在于加快计算速度。目前多数在用的应用软件都是遵循这个原则进行开发,多核的研发人员也多是采用并行的方式。目前他们所面临的问题就是如何通过成百上千个内核进行连续的计算和信息输出使信息传递保持同步。要发挥每个内核的性能来提高计算速度也是我们要考虑的。
并行程序设计(MPI)一直在高性能计算(HPTC)领域占主导地位,由于它可以多平台运用而为许多厂商所青睐。HPC技术的开发人员希望在未来的20到40年里它都是一个成功的产品。
但并行程序设计(MPI)是否能在软件方面保持主导,前景并不明朗。程序员要想开发出适应多核处理器的应用软件也将是个费时费力的过程。而并行语言在过去的数年间一直为大家所用是因为它提供了一条更快更直接的软件开发的途径,并且一直还在发展之中。
我们相信,随着计算性能的不断提高,HPC将会有更多的共享芯片。尝试新的技术来获取更快的解决方案并从中受益是我们共同努力的目标。