http://www.informationweek.com/news/showArticle.jhtml?articleID=197001130
IBM 次世代系統軟體的首席工程師,對於我們能將那些需要利用超級電腦等級機器優勢的軟體推進多遠表示質疑。
By Catherine Crawford / EE Times / Jan, 29, 2007
就目前在處理器與系統上可利用的(available)每秒浮點運算次數而言,Moore 定律尚未達到它的極限。但就大部分軟體 -- 甚至是先進科技運算軟體 -- 的合用(usable)性能而言,或許已經達到這樣的極限了。
一瞥 Top500 Supercomputer Sites List (www.top500.org) 上的清單,證實大部分科技運算的工作量,已經轉一到日常的 Linux 叢集:包括日常使用的 server、網路以及儲存設備。在此同時,新穎的多核處理器架構,例如:Cell Broadband Engine (Cell BE),證明大量運算的潛能(數百 gigaflops)已經屬於入門等級的 server 了,如:2-4 核處理器。
由於有如此多的運算能力可以就近取用 -- 不管是在 SoC 或是日常使用的叢集上 -- 世界各地,各種規模的公司與業界且甚或是個人,或許都能夠取用這樣的能力來解決比以前更多的問題。這裡只有一個問題:軟體是否能夠利用這些處理器、核心與執行緒所有的優勢呢?就大部分而言,它仍尚未達到 -- 即便是從歷史觀點上所聚焦的那些尖端技術設備,例如:科技運算。事實上,IDC 的 Earl Joseph 在一個科技運算軟體的研究當中下結論表示:"今日許多 ISV(獨立軟體供應商)的程式碼,其規模(scale)只能達到 32 顆處理器,而且某些在業界當中最重要的,竟無法多於 4 顆處理器。"(www.hpcwire.com/hpc/430360.html)
他的研究甚至發現,當有一個供應商已經有策略要將其程式碼平行化或是提升其規模,其重新架構與重新編程的成本相對而言,較所意識到的市場利益來的更高。
進入 Roadrunner(走鵑,迪士尼卡通中那隻跑的飛快的鳥)
Roadrunner 將會是世界上第一部基於 Cell BE 的超級電腦。當它於 2008 開始在 LANL 啟用時,其效能峰值回答到 1.6 petaflops,或每秒運算 1600 兆次。(譯註:目前的記錄是 0.367 pflops)
Roadrunner 首次提供了混合運算架構:多重異質核心,再加上多層式(multitier)記憶體階層(hierarchy)。它也是完全由日常零件所構成:基於 AMD Opteron 的 server,基於 Cell BE 的加速裝置,還有 Infiniband 互連技術。在標準程序中(例如:檔案系統 I/O)將會由 Opteron 處理器所處理,而許多數學上以及 CPU加強的(intensive)元素將會被導向 Cell BE 處理器。
為了讓此一複雜的架構,甚至連最先進的科學模擬應用軟體開發者都覺得有用,在系統開發中的許多工作,都是屬於能賦予並協調應用架構與開發(tooling)的程式方法論上。
這些能加以運用的 API 都相當簡單並且可延伸,並且被設計成能夠利用不同種類的記憶體與 I/O 子系統,同時保持其改變是位於實作之下,以便讓開發者無從察覺。此計畫的焦點是聚焦在不同拓撲的一組核心、有效率的散播(scatter)/回收記憶體的操作之上,而且當使用者涉及到運算與通訊等重疊領域時,這些東西都是被隱藏起來的。
其哲學是所謂的 "勞力分配" 方法。這裡將會有一組計算機核心開發者持續將微處理器 ISA 的效能發揮到最大;事實上,這樣的核心早已存在(矩陣相乘是個好例子)。函式庫開發者將會使用一個替 Roadrunner 開發,用來將核心同步化至微核心、記憶體階層函式庫中的那種架構。應用程式開發者將使用標準的編譯器以及連結器技術連結這些函式庫。前後一致的 API 以及橫跨一些微核心架構的方法論,將無須引介新的程式語言,將會限制住程式維護的成本。因此,函式庫開發者所獲得的易用性改進,將不只是在這套加速系統上,還可及於一般用途的多核心途徑(approache)與叢集。
Roadrunner 不只是國家實驗室超級電腦的一個單一客製化計畫;它呈現出一種新的架構。我們正邀請業界夥伴來定義程式方法論的元件(API、工具等),以便讓多核心系統也將能夠被這些夥伴所存取。在這種方式之下,主要的科學性發展將不在限於大學或是主要研究實驗室。業界像這樣致力於此的利益可以 "涓滴遍佈(trickle down)" 到我們日常生活當中各方面上。
潛在的應用包括:
* 金融服務。藉由即時運算資本市場當中的因果關係,超級電腦可以即時的預測一個股票市場的改變對整個市場所產生的漣漪效應。
* 數位動畫。大量的超級運算能力將讓電影製作者創造逼真的角色與劇本,這將模糊電影動畫與真實角色之間的界線。
* 基於資訊的醫學。複雜的 3D 組織、骨架描繪將會即時呈現,而用於腫瘤偵測的線上分析(in-line analytics),也能用將來病患即時與歷史資料進行比對。綜合病患的即時資料可以用來產生預警。
* 油料與天然氣的生產。超級電腦可以繪出地底圖形,模擬貯藏處並分析由科學家從田野調查中所取得的視覺資料。
* 奈米技術。超級運算預期能提升裝置建構的科學,例如:單一原子或分子的電路。
* 蛋白質折疊。超級運算能力可以讓我們了解疾病如何發生,如何測試它們,以及療法該如何開發。
當架構變得更加複雜,從多核心處理器到像 Roadrunner 那樣的混合系統時;當超級運算能更容易取得時;還有當開發者仍試在圖尋找能讓他們的軟體更有效能,而不用依賴更勝以往的 "頻率暴衝(超頻)" 比率時,我們正聚焦在保持應用程式開發的簡單 -- 致力於將工程藝術納入架構中,而非應用程式開發本身。而且藉由回歸至簡單做事情的基礎上,我們讓軟體能夠跟上『矽』的優勢,讓桌上型的 teraflops 不在只是一種科技成就,而是更有 用的一種東西。