Programming for Parallelism(1)——James Reinders

這是個人對James Reinders 的 Programming for Parallelism 視頻及文章的學習小結,有興趣的同行可進入http://www.builder.com.cn/video_intel/video_intel.shtml

多核處理器有前途嗎?

瞭解多核處理器的功耗、內存和並行指令集

多核處理器將是一個長期發展方向。因此,我會簡單談談原因,並討論一下多核處理器的未來發展趨勢,以及我們程序員需要注意的問題。

 

一、原因

首先:爲什麼要發展多核處理器?主要包括以下三個原因:

第一個原因是指令級並行性ILP。指令級並行性是指微處理器同時執行多條指令,以便提高工作速度的方法。當我們提高處理器的時鐘頻率時,處理器每次能找到並執行更多指令。但是要從現有程序中找到越來越多可以並行運行的指令是非常困難的,而且隨着時鐘頻率的不斷提高,指令級並行性的效果會越來越不明顯。因此,隨着時鐘頻率的不斷提高,性能的提升不再像過去那樣明顯。因此,指令級並行性只是我們遇到的問題之一。

 

另一個原因是存儲壁壘。處理器時鐘頻率的提升速度遠遠超過內存時鐘頻率,而且這一趨勢還會延續。我們通過不斷添加越來越大的高速緩存及其它技術,以便緩解這方面的一部分問題。而多核技術可以放慢提高處理器時鐘頻率的腳步,讓情況不再繼續惡化,因此,多核技術能真正解決這一問題。

 

此外還有功率

我們不妨做一次有趣的觀察,取一個微處理器,然後從一個基線開始:比如,每消耗一個單位的電能,處理器產生一個單位的性能。一般來說,性能提升 13%,功耗會增加 73%。其前提條件是,使用同一個微處理器,且除了提高時鐘頻率外不做其它改動。

當然,過去我們總是對微處理器進行其它方面的改動,但就某一時間點而言,如果只是提高處理器的時鐘頻率來超頻,功率就會大幅增加。如此看來並不划算。

我感興趣的是,降頻是一個切實可行的方法。如果你不在乎把處理器的性能降到 87%,這時消耗的功率是多少呢?答案是大約原來的一半。由此很容易想到一個方法:我們何不把兩個處理器放在一起,其功率與原來大致相當,而性能卻能提升 73%。

降低處理器的時鐘頻率,同時獲得超過期望的性能提升,這是一種很巧妙的方法。把兩個處理器放在一起,其耗電量與原來大致相當,性能卻幾乎是原來的兩倍,這是因爲您有了兩個處理器。這就是我們開發雙核、四核等多核處理器的最大動機。

二、多核的未來

我們已經瞭解,這三個壁壘促使我們去研究多核技術,現在我想告訴你們的是,迄今爲止我們見過的所有多核處理器只是用兩個現有性能的處理器合併而成的:雙核處理器,我們已經見到了四核處理器芯片,其內核的功耗與今天的處理器功耗大致相當。

曾經有人問,如果採用性能低得多的內核——例如 10 年前那種佔用面積小得多的內核,這是否有利於在一塊模板上集成大量很小的內核呢?事實證明,這樣做有其不利的一面:執行今天的程序時性能不佳。因此,人們更喜歡今天的亂序執行內核。但是,如果把它們混合起來——把一些小內核和一些大內核放在一起,又會怎樣呢?這很可能是多核處理器未來的發展方向但近期內還不會如此。我們在市場上已經有了四核處理器,我估計我們還會有八核、十六核處理器,隨着這一趨勢,把數百個內核集成在一起會成爲大勢所趨。

我認爲不會出現太多全由小內核構成的處理器,但大小內核搭配組合的想法會很有吸引力;這稱爲異構計算。我認爲這是一個值得關注的重要趨勢,未來的多核技術也許會朝着這個方向發展,到時候我們需要爲它編寫程序,因此,今後談到編程時我們還會深入討論這個問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章