据日前在多核大会(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的人知道,乘/加和快速傅立叶变换这样的并行任务如何工作,但这些人目前在市场中并不是多数。”
在被问及产业是否需要新的编程语言时,一位专家表示,我们已经拥有太多的语言。他说:“首先需要理解它对于并行有什么意义。”
点击参考原文:Panel: Wall ahead in multicore programming
本文授权译自EE Times,谢绝转载
{pagination}
Panel: Wall ahead in multicore programming
Rick Merritt
The wall on the horizon in multicore programming is getting closer, according to a panel of experts at the Multicore Expo here. Without new tools and methods, programmers will not be able to continue to reap significant benefits from tomorrow's increasingly parallel chips.
Processor designers switched from pushing frequency to delivering multicore designs to avoid hardware problems of power leakage. But that has created an increasingly pressing need for parallel programming tools and methods that don't yet exist.
"The wall is there," said Alex Bachmutsky, a chief architect at Nokia Siemens Networks. "We probably won't have any more products without multicore processors [but] we see a lot of problems in parallel programming," he said.
"One of our problems is how to parallelize existing programs with eight or 10 million lines of code--you can rewrite everything but it will cost a lot of money," Bachmutsky said.
"The other problem is we have some algorithms that from their definition were not parallel like Viterbi decoding," he said. "We can change it, but we'd have to change all the cell towers and phones, too, and it's not do-able," he added.
An audience member noted another looming problem: developers can no longer expect next-generation processors will boost performance of their apps. "For 40 years we got a free lunch, but now I wonder what I can write in my code today that will still work in 20 years," he said.
"You can double cores and actually decrease performance," said Rob Mu?oz, a distinguished engineer at LSI.
"Parallel software is hard to develop, maintain and evolve," Mu?oz said. "There's a graveyard of companies who have tried, but the industry is stuck with multicore because it’s the only way to scale chips," he said.
LSI has taken a conservative approach to using multicore in its comms chips to limit the software problems, he said.
"A lot of the problems we are trying to address are ones we have had for 30 years in high performance computing, and we haven't solved them yet," said Mike Anderson, chief scientist, with The PTR Group, a consulting firm.
One nasty problem is how to manage multithreaded apps where threads may move between different cores, he said.
"You have to change the way you think about the problem," Anderson said. "People in DSP understand how parallel tasks such as multiply-accumulates and fast Fourier Transforms work, but that’s not the majority of developers in the market now," he said.
Asked if the industry needs a new programming language, one panelist said we already have too many of them. "First need to understand what it means to be parallel," he said.