內存墻面前 多核處理器的哭泣
由于沒有其它方法進一步改善處理器性能,芯片廠商把未來的賭注押在了在同一個芯片上放入越來越多的處理器內核。芯片廠商稱多核處理器是行業未來。新墨西哥州的Sandia國家實驗室的研究人員模擬了未來的配置8個內核、16個內核和32個內核的處理器的高性能計算機。這個模擬的結果令人難受。由于有限的內存帶寬和不適合超級計算機的內存管理方案,采用更多內核的高性能計算機的性能沒有提高,甚至還下降了,特別是對于信息學的數據密集型應用程序的性能更糟糕。對于這個實驗室的國家安全功能來說,數據密集型應用程序越來越重要。
高性能計算歷史上重點用于解決解釋物理系統的微分方程,如地球的大氣層或者氫彈的裂變觸發器。這些系統把自己分為許多網格,這樣,物理系統在這種程度上就能夠映射到處理器或者處理器內核的物理位置上,從而最大限度地減少移動數據中的延遲。
但是,重要的科學和工程問題(更不用說國家安全問題了)數量的增加是不同的。這些問題數據通用類型的信息學,并且包括計算在一個自然災害期間運輸網絡可能發送什么事情,以及尋找預測恐怖主義襲擊或者核擴散失敗的方式。這些操作通常需要通過詳審大量的信息數據庫。
根據Sandia國家實驗室的模擬,對于信息學來說,更多的內核并不意味著更好的性能。Sandia的計算、計算機、信息和數學主任James Peery說,超過8個內核之后,性能沒有改善。在使用16個內核的時候,計算機看起來與2個內核的計算機一樣。在過去的一年里,Sandia團隊與芯片廠商、計算機設計者和高性能計算機用戶廣泛地討論了這個結果。除非計算機設計師找到一個解決方案,否則,Peery和其他人都預計超級計算機程序員將關閉多余的內核或者使用多余的內核處理解決主要問題之外的輔助的事情。
這個難題的核心是所謂的內存墻:處理器能夠操作數據的速度與處理器能夠得到它需要的數據的速度之間的日益加大的差距。Sandia的高級技術人員Richard C. Murphy解釋說,雖然每個處理器上的內核數量在增長,但是,芯片連接到計算機其它部分的連線數量沒有增加。因此,讓所有的內核都獲得充足的數據是一個問題。在信息學應用中,問題更糟糕,因為處理器正在處理的數據和下一套數據所在的地方沒有相互之間的物理聯系。數據不是在隔壁的內核的緩存中,而是有可能在20米之外的一個機架的DRAM內存芯片中,并且需要離開那個芯片通過一個或者更多的路由器和光纖找到通向處理器的道路。
為了使事情重回正軌,美國能源部今年組建了高級架構和算法研究所。這個研究所在Sandia并且在田納西州的橡樹嶺國家實驗室,其工作是找出未來五年之十年將需要什么高性能計算機架構,并且幫助指導這個行業向那個方向發展。
Peery說,解決這個瓶頸的關鍵是把內存和處理器更緊密地(也許是更聰明地)結合在一起。因此,Sandia正在探索處理器上面的堆疊內存芯片的影響以便改善內存帶寬。
【編輯推薦】