據日前在多核大會(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的人知道,乘/加和快速傅立葉變換這樣的并行任務如何工作,但這些人目前在市場中并不是多數。” 在被問及產業是否需要新的編程語言時,一位專家表示,我們已經擁有太多的語言。他說:“首先需要理解它對于并行有什么意義。” |