技术前沿:两大名校多核并行编程研发最新进展

伯克利大学的研发理念

早在2005年2月,伯克利并行运算实验室便开始研究并行编程模式的问题,当时伯克利大学就该问题举行了一连串的每周讨论会。2006年12月,伯克利的研究人员出版了一本集结所有讨论结果所整理而成的白皮书。

现在,伯克利大学的研究人员已根据上述思考的讨论整理而开始设计原型软件系统,在未来几个月内,他们可能就会发布初步的研发成果。

基本上,该实验室的目标在于采取类似于目前串行程序的编写方式,在一组弹性化的标准模块上组成并行程序。目前在并行领域所面临的挑战在于寻找一种动态且弹性化的方法,以便能从复杂、异质且多核心CPU中的可用硬件标准模块中对并行任务进行排程。

该小组认为,开发人员能够开发出一系列可充分理解该硬件复杂性的架构。这些架构可能用于撰写处理特定任务的各种模块,如求解一个矩阵。新的运行时间环境可动态地调整这些各种不同类型核心的模块。

新的方法将取代目前串行软件中所采用的全局排程器。各种架构将取代并行工具库,因为并行工具库无法总是适合特定并行应用的细节,并且无法简单地根据需要进行混合与搭配。

在未来的2到5年间,8核心或16核心处理器可能冲击到主流的CPU市场,但是伯克利大学则将眼光放得更远,他们将着重于针对具有几十颗核心的处理器芯片编程问题。

研究人员相信,未来5年左右,芯片制造商将会使用具有极大差异的核心组。但是,随着时间的推移,那些核心可能变得越来越相似,因而使得硅晶验证与硬件编程都变得更为简单。

斯坦福大学首度尝试

斯坦福大学的Dally表示,在处理器上采用许多不同的核心是相当有意义的。"针对数据密集型的SIMD问题,专用处理器能够实现更高一个或两个数量级的功效。"他说道。

根据采用这一类核心作为传统DSP替代产品的想法,Dally协助创立了Stream Processors公司。其它斯坦福的研究人员们则开发了Brook编程语言,它后来被AMD公司的绘图处理器部门所采用,以帮助其大规模并行绘图芯片处理通用任务,这便是驱动并行处理技术发展的另一重大趋势。

Dally表示,"所有的人都正朝这个方向而努力,"他并指出英特尔和Nvidia也在进行类似的工作。"但是,他们必须开发一种更为通用、且在未来具有优势的解决方案。"

此外,斯坦福大学也正探索一种基于许多高阶特定域语言的技术,它可透过与一系列通用并行执行环境进行互动,以存取多核心硬件。

Dally表示,这种执行环境所面临的挑战在于平衡静态机制。该静态机制构成了具有动态能力的大型数据流,以寻找并处理在程序执行过程中突然出现的并行执行机会。

特别是,斯坦福大学希望能把两个计划的工作整合起来。其中之一是采用事务级内存技术来寻找处理动态排程的途径;另一个则是采用称为Sequoia的新语言,瞄准诸如数字媒体处理等数据密集型应用。

与此同时,伊利诺大学研究人员们则探索从目前的串行程序代码中撷取并行程序代码的几种途径。他们已着手为下一代绘图芯片以及英特尔的Itanium处理器研究编译程序和编程模式。

对于AMD公司而言,为了减轻像其Fusion芯片这类多核心组件的编程问题,该公司已经开始就此想法与微软等合作伙伴们进行探讨。Fusion芯片计划于2009年开始整合x86、绘图与其它核心。

"我们并没有特定的提议,但是正就此概念与合作伙伴进行讨论,同时也引起了广泛的关注。"AMD公司的Moore表示,"在未来几个月或几季内,我认为这些观点将会更清晰,并进而提出一份提案或可因此成立一个联盟。这不仅仅是AMD的事情,它更是一个开放的系统,可激发各个不同层面的竞争厂商们不断推陈出新。"

根据AMD的观点,新的计算机堆栈可能包含在操作系统上所扩展的一组运行时间环境,以协助应用程序人员发现、排程、同步并管理芯片级资源。

在操作系统之下,虚拟化软件能够被扩展,因而能更有效地追踪、纠正编程错误。

未来在进一步发展后,PC处理器可能采用更为广泛的各种内存类型。它们也可能采用堆栈技术,以便开发出更为复杂的SoC设计,Moore介绍道。

去年,AMD公司的资深研究员Rich Witek被派驻至华盛顿州Redmond市,并在当地成立了一间先进技术实验室,从事初始与未来概念的研究。Witek曾领导开发团队为多款微处理器进行研究,包括美国数字设备公司(DEC)的StrongARM和Alpha芯片。

"我们已成功地与微软公司就AMD的64位技术展开合作,而且他们也打算再次合作。"Moore表示。

此外,微软已经聘请并行运算领域专家,包括Cray公司前首席科学家Burton Smith以及美国国家超级计算机应用中心的Dan Reed,来协助解决前进道路上的棘手难题。

迄今为止,AMD尚未卷入与其竞争对手英特尔的战争中──英特尔是大部份PC处理器的供货商。Moore赞扬英特尔在多核心设计中与创新型企业和大学的努力是"良好的计算机科学研究工作。"

"我们正试图进一步推动研究工作,并协助定义各种异质平台,"他表示,"我们欢迎任何人、任意一方参与这个提供更多机会的开放且互惠环境,但是我不会袖手旁观,或特别把这些问题丢给他们。"

根据Moore的观点:"x86的兼容性对于不远的未来至关重要,这正是大多数程序和操作系统所必须执行的环境。但是从某些方面来看,某些任务将会执行得更快,并且在所针对的加速器上以更具功效的方式执行。"

Moore过去一向监管AMD公司的下一代高性能x86核心(代号为Bulldozer)设计,但在去年12月中旬以后,他便转而全权投入对于新软件研究工作的支持。

Moore表示,"处理器核心设计的进展非常顺利,让我不得不接手负责这一更加广泛的计划。"