Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
渝ICP证B2-20030003号 商务联系、网站内容、合作建议:010-82657868
为了替未来的多核心处理器建构新一代的平行编程模型(parallel programming model),英特尔(Intel)和微软(Microsoft)正在漫长的道路上缓步前行;两家公司并于日前在美国旧金山举行的英特尔科技论坛(IDF)上各自发表了相关技术进展。
微软为系统软件堆栈添加了新的层,并为其.Net整合环境进行了一些扩展。英特尔则计划对x86指令集进行扩展,并展示了在Ct上的进度;Ct是C++设计语言的扩展版本,旨在提供更好的平行化运算。
从用于运算开始,软件的发展便凭借着摩尔定律(Moore’s Law)关于串行处理器的发展,而不断提高其性能水平。然而,随着微处理器上的功率泄漏问题日亦严重,迫使相关技术朝多核心方向转移。去年年底发起的微软平行运算计划(Parallel Computing Initiative)的主持人David Callahan表示,这意味着向平行运算模型的历史性过渡。
微软与英特尔并支持各种学术性研究,来推动这方面的发展。在IDF上,学者们与企业界内部团队也分享了一些进展情况。为了再更加把劲,微软还希望使用平行运算的转变,推动计算机接口的发展。
在展开这些工作之前,底层软件(underlying software)需要整体调整;Callahan表示,未来的系统软件将会分成更多层,形成更多的单独元素(elements),包括在应用链接库和虚拟机管理软件(hypervisors)之间定义用户空间的新执行环境,以及关键操作系统核心(kernel)。
执行环境将作为调度器(schedulers),与进程管理程序及操作系统之间协调工作。拟机管理软件映像(map)着实体资源,而操作系统对实际硬件的存取进行管理。Callahan表示:「这是一个对传统操作系统服务的重新分解(re-factoring)。」
这些技术演进之目的,是为了更有效掌控多核心环境下的竞合要求(competing requests)。即使是现今的PC也主管了“可怕数目”的平行进程,于是形成了时序处理的瓶颈以及数据储存的遗失。
微软会把其执行层(runtime layer)公布给第三方合作伙伴,其中包括英特尔;因为微软预计未来将需要来自不同供货商、互通的作业软件抽象(software abstractions),以支持不同型态的操作系统。未来的软件还需要在几个方面进行改善,包括合作调度(cooperative scheduling)、更好的执行绪级性能,以及增强的讯息传递。
Callahan称:「这将是一系列深远的改变,甚至需要重新建构链接库文件并重新编写应用程序。」RapidMind 首席科学家Michael McCool则表示,「这是一个雄心勃勃的转变,也是他们(微软与英特尔)的首要目标。」该公司从事于为x86和其它处理器提供平行编程工具。
McCool还补充:「最初,他们已经完成了一些显著的支持平行任务的工作,但我没有看到在对数据抽象方面上的任何努力。」他指出,未来平行编程模型要新的目录来对数据排序,因此数据可以在合适的时候汇集到缓冲存储器中的合适位置。
他还指出,英特尔最新的高速处理器互连明显减少了等待时间,但如果错误数据出现在缓冲存储器中,等待时间又会显著增加。
新的工具和新的设计语言
在编程工具方面,Callahan则表示,微软正对其基于C#3.0语言的.Net环境进行扩展。英特尔称其将在11月份发表四个新的平行编程工具的测试版本。
Callahan表示,程序设计师们将需要一整套新的工具组来实现除错、最佳化以及验证其编写的平行程序代码。除错工作将从单步执行模式(single-step)变为虚拟工具,来获取上千次同步任务时所反映出的趋势。
在设计语言方面,英特尔谈论到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已经有能力在其处理器上透过独立的电源层来独立执行各个核心。但之前英特尔表示,这样的功能并不能显著节省电源。
