你可能已經認識到給臺式機或者筆記本選用4核處理器是一種浪費,但是這不是你的問題:編寫并行執行的代碼是相當困難的,所以大部分的應用(除下一些計算密集型電子游戲)都只能在單核心上運行。然而一組來自斯坦福的研究者最近發布已經模擬出在百萬核心上的并行處理。
隨著并行處理的"家喻戶曉",在多個節點上運行應用程序可以比以往更快 —— 工作量可以分配于多個節點進行并行處理,核心越多越快。這也是Hadoop誕生的原因,非常適合大體積數據的處理。MapReduce框架將作業分配到多個節點上進行處理,然后匯總出結果輸出。
但是即使是Hadoop也只能夠在上萬個節點上運行,因為它關注的是節點 —— 在多核心處理器的利用上并不是很充分。IBM出品的Sequoia超級計算機(安置在勞倫斯利弗莫爾國家實驗室),斯坦福團隊用98304個處理器(或節點)構成;每個處理器封裝了16個計算核心,總計1572864核心;研究員已經可以利用到大部分核心,他們稱以開創許多類別上的記錄。
不去管記錄,這確實是件復雜到難以置信的任務;這個模擬實現了超過百萬的任務在上萬個節點(每個節點16核心)上的分配。因為如果這些進程中出現一處碰撞,都可能會導致系統變慢或者摧毀整個模擬。
即使在經常會出現幾十萬核心的超算世界中(其中可能還會有特殊用途搭載GPU的處理器),都缺少充分利用這些核心的解決方案。高性能計算世界正向著百萬兆級運算邁進,但是比能源消耗更大的問題可能會出現?—— 應用程序需要更多的計算能力以及適應如此規模的算法。
原文來自: While we waste four cores, scientists use a million at a time