缺乏并行编程工具和方法,多核编程瓶颈难突破

2011年05月10日 10:54    发布者:李宽
据日前在多核大会(Multicore Expo)期间召开的一个专家讨论会,多核编程日益接近其极限。如果没有新的工具与方法,程序员将无法继续发挥并行程度越来越高的未来芯片的潜力。

处理器设计者不再追求高频率,而是采取多核设计,以避免硬件的功率泄漏(power leakage)问题。但这使得更加有必要采用并行编程工具和方法,但这些东西目前并不存在。

“目前我们面临着一个瓶颈问题,”诺基亚西门子通信首席设计师Alex Bachmutsky表示,“如果没有多核处理器,可能不会再有更多的产品出现,(但)我们在并行编程方面遇到许多问题。”

Bachmutsky指出:“其中的一个问题是,如何使长达800万或1000万行的现有程序变成并行程序。当然,你可以全部重写,但这将耗费大量资金。”

“另一个问题是,我们有些算法从定义来说不是并行的,如Viterbi译码算法,”他说,“我们可以改变这个算法,但我们为此必须改变全部基站和手机,而这并不可行。”

一位听众注意到另一个迫近的问题:开发者不能再期望下一代处理器会提升其应用程序的效能。他说:“40年来我们一直在吃免费的午餐,但是现在,我不知道我今天所写的程序能否在20年后仍然可用。”

LSI的杰出工程师Rob Munoz表示:“你可以把内核数量增加一倍,但实际上会降低性能。”

“并行软件难以开发、维护和发展,”Munoz表示,“大量尝试过的公司都倒下了,但产业仍坚持多核方式,因为它是进一步缩小芯片尺寸的唯一途径。”

他说,对于通讯芯片,LSI在使用多核方面采取了一种保守方式,以限制软件问题。

咨询公司The PTR Group的首席科学家Mike Anderson表示:“我们试图解决的大量问题,都是30年来在高性能计算方面的问题,我们尚未解决。”他说,一个棘手问题是如何管理多线程应用,在这些应用中,线程可能在不同的内核之间移动。

“必须改变思考这个问题的方式,”Anderson表示,“搞DSP的人知道,乘/加和快速傅立叶变换这样的并行任务如何工作,但这些人目前在市场中并不是多数。”

在被问及产业是否需要新的编程语言时,一位专家表示,我们已经拥有太多的语言。他说:“首先需要理解它对于并行有什么意义。”