英特尔与微软揭示并行计算的未来
2008-08-28
英特尔和微软正在漫长的道路上一步步地走向他们所构想的蓝图,即为未来多核处理器设计新型并行编程模型。两个公司在英特尔发展论坛上发表了各自所取得的进展。
微软的新版本中,为系统软件栈添加了新的层,并为它的.Net集成环境进行了一些扩展。英特尔则计划对x86指令集进行扩展,并展示了在Ct上的进度,Ct是C++设计语言的扩展版本,旨在提供更好的并行化计算。
从用于计算开始,软件的发展便凭借着摩尔定律关于串行处理器的发展而不断提高其性能水平。然而,随着微处理器上的功率泄露的问题不断严重,迫使向多核方向转移。去年年底发起的微软并行计算计划的主持者David Callahan称,这意味着向并行计算模型的历史性过渡。
微软与英特尔正在支持着各种学术性研究,来推进这方面的发展。在英特尔技术峰会上,学者们与企业界内部团队分享了一些进展情况。
这样的工作似乎还不够雄心勃勃,微软更希望使用并行计算的转变推动计算机界面的发展。
Callahan称,“这实际上是我们希望实现的自然与经验相结合的新的布景。并行计算转化只是前进路上的一个小插曲。”
在开始并行工作前,底层软件需要整体调整。Callahan表示,未来的系统软件将会分成更多的层,形成更多的单独组件,包括在应用库和进程管理程序(hypervisors)之间定义用户空间的新的运行环境,以及关键操作系统内核。
运行环境将作为调度器,与进程管理程序及操作系统之间协调工作。进程管理程序虚拟地映射着物理资源,而操作系统对物理硬件的访问进行管理。Callahan称,“这是一个对传统操作系统服务的重构。”
这样的目的是更好的处理在多核环境下竞争请求。即使今天的PC也并行着执行“可怕数目”的进程,于是形成了时序处理的瓶颈以及数据存储的丢失。
微软会把其运行层公布给第三方,其中包括英特尔公司,因为微软预计未来将需要很多种从不同厂商抽象得来的用于不同服务种类的互操作软件抽象。未来的软件还需要在下面几个方面进行技术改进:协作调度、更好的线程级性能以及增强消息传递。
Callahan称,“这将是一系列深刻的改变,甚至需要重新构建库文件并重新编写应用程序。”
RapidMind 公司的首席科学家Michael McCool称,“这是一个雄心勃勃的转变,也是他们(微软与英特尔)第一个目标。” RapidMind公司从事于为x86和其他处理器提供并行编程工具。
McCool还补充说,“最初,他们已经完成了一些显著的支持并行任务的事情,但我没有看到在对数据抽象方面上的任何努力。”
McCool称,未来并行编程模型要新的类型来对数据排序,因此数据可以在合适的时候汇集到缓存中的合适位置。他还指出,英特尔最新的高速处理器互连,显著得减少了等待时间,但如果错误数据出现在缓存中,等待时间又会显著增加。
新的工具和新的设计语言
在编程工具的领域中,Callahan称,微软正在对其基于C#3.0语言的.Net环境进行扩展。英特尔称其将在11月份发布四个新的并行编程工具的测试版本。
Callahan称,程序员们将需要一整套新的工具集来实现调试、优化以及验证其编写的并行代码。调试工作将从单步执行形式变为可视化工具来获取上千次同步任务时所反映出的趋势。
在设计语言方面,英特尔谈论到Ct,即C++用于多核处理器的扩展版本。该语言目标是自动为多个核划分处理任务,而不需要程序员了解x86架构的深层细节。
从英特尔公司协作技术组的工程师Anwar Ghuloum显示的数据看,使用该语言在四核系统上运行同样的代码可以加速1.7至3.7倍。Ct最初的目标是用于英特尔通用Nehalem四核心芯片组,但目前已经升级在16核Larrabee图像处理器原型上运行。
McCool 称,“RapidMind和Ct都在指向并行计算这同一方向,但我们更关注于更长远的成熟的商业供应,而当前Ct仍然只是一项正在研究的API。”
英特尔还讨论了其先进矢量扩展(AVX),作为取代当前在英特尔处理器上使用的流式SIMD扩展版(SSE)指令集扩展。
AVX被认为将为并行计算提供比SSE更优越的环境,提升浮点性能并增加了更广泛的单指令和多数据(SIMD)单元。不过,AVX到英特尔SandyBridge处理器问世后才会全面实现,SandyBridge是一款32纳米处理器,预计2010年推出,是继当前Nehalem型CPU两代后的产品。
另外,英特尔透露了Nehalem处理器性能得以优化的新功能,这些功能是其他一些CPU核中没有采用的。这个功能可以在一些核闲置时自动关闭这些核,从而为其他仍在运行的核提供更多可用的芯片级电源。
该技术涉及到新的带有高阻抗的晶体管设计,从而减少了来自已经关闭的核的泄漏电流,同时在处理器上还使用了百万门晶体管控制器和传感器。
负责Nehalem电源管理的英特尔院士Rajesh Kumar称,“你能控制的电源越多,实现的性能越佳。”
竞争对手AMD公司已经有能力在其处理器上通过独立的电源层来单独运行各个核。此前,英特尔称,这样的特征并不能显著节省电源。