歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux業界

Beowulf 群集:合眾為一

內容:

Wiglaf:概念的證明
Loki:聲名遠揚
Avalon:競爭者
度量性能
市場
需要的軟件
總結
參考資料
關於作者
對本文的評價



度量和實現多個並行的 CPU
Andrew Blais 博士 ([email protected])
研究員和作家,Gnosis Software,Inc
2001 年 9 月

Andrew Blais 介紹了 Beouwulf 群集的概念,它通過在 Linux 或 NT 下使用多 CPU 並行地執行程序片段,從而極大地減少了軟件的處理時間。他描述了(群集)多種不同的實現,群集的相對性能和使其有效所需的技術。
在 2001 年中期,世界上最快的計算機可以平均每秒執行 5 萬億次浮點運算,也就是 5 teraflop(teraflop — 每秒 1 萬億次浮點運算)。世界上最快的第 500 台計算機平均每秒執行 55 gigaflop(gigaflop — 每秒 10 億次浮點運算)。通常,象這種頂級的計算能力是非常昂貴而且難以采用的(請參閱本文後面的參考資料)。然而,在 1994 年,Thomas Sterling 和 Don Becker 建立了一種方法:使用普通的、能被負擔得起的硬件加上 Linux,以此來集中這些相對小的機器的計算能力。其結果被稱為 Beowulf 群集,它能以較低的成本來仿真最快計算機系列中的低端機器的計算能力。

Beowulf 策略的目的是最小化計算時間。運行在 MS DOS 下的一個 CPU,只能順序地處理一個程序的指令。我們希望能夠降低這條基線。在一個 CPU 運行於 Linux 或 NT 的情況下,多個程序共享 CPU 資源是可能的,但如果在所有條件都相同的情況下— 如字長和磁盤訪問速度等 —其程序處理的速度不會比在 MS DOS 下更快。此外,在“對稱多重處理”(SMP)的情況下(可能有兩個或四個 CPU 在 Linux 或 NT 下運行,每個都在處理多個程序),系統仍然會開銷掉同樣的時間來處理單個程序。

現在,減少程序處理時間的一個方法就是:把它分割成可以被不同 CPU 處理的獨立的子任務。當這些子任務的運行結果可用時,就被返回到其中一個處理器進行最終處理。很明顯,這樣可以縮短對一個給定程序的處理時間。運行在一個配有兩個或四個 CPU 的 Linux 系統下的多線程的程序,就能作為這一事實的有力明證。

顯然,一個更好的方法就是:把程序分割成許多能被多個處理器處理的獨立的子任務,然後把結果輸送到一個單獨的處理器中匯集成最終輸出。盡管主板通常會有(容納)兩個或四個處理器的最大限制,但是仍有可能通過以太網傳輸設備來突破這個限制。這就是 Beowulf 策略:程序被分割成許多部件,這些部件被多個運行著 Linux 拷貝的 CPU 執行,所有的部分通過以太網來傳輸它們的數據和指令。

例如,假設您想找出 1 到 1,000,000 之間的所有素數。您可以編寫代碼,用於在這個范圍內順序地測試每一個整數。這個代碼就會在前面提到的基線上運行。而Beowulf 策略就會這樣處理:首先通過以太網連接,例如,10 台機器或節點。接下來編寫的代碼一開始時會在一個首節點上運行,然後把測試 100,001—200,000 的任務交給輔助節點 1,把測試 200,001—300,000 的任務交給輔助節點 2,以此類推。伴隨測試任務一起執行的,還有一個將輔助節點發現的任何素數返回給首節點的指令。當然,首節點等待返回結果的同時,也會測試 1—100,000段內的素數。當所有的節點完成各自的任務後,整個機器將會產生一個 1 到 1,000,000 所有素數的列表,而所需的時間只是順序策略(sequential strategy)的一小部分。(請參閱參考資料 )。另一個普通常見的例子就是在一台普通PC ,雖然其中只有一個基本的CPU,但是卻還有許多處理器分布在諸如 modem(當然不是指 winmodem)、圖形卡、聲卡等等設備上。

Wiglaf:概念的證明
在 1994 年,Thomas Sterling 和 Donald Becker 構建了第一個采用 Beowulf 策略的計算機。讓人好奇的是,他們沒有把他們的機器命名為“Beowulf”。他們叫它“Wiglaf” — 神話中 Beowulf 的朋友。(請參閱參考資料)。wiglaf 有 16 個節點,每個節點支持一個 100 MHz 的 Intel DX4 處理器(最初是 66 Mhz 486 芯片),16 MB 的 DRAM,540 MB 到 1 GB 硬盤和一對 10 Mbps 以太網卡。每個硬件組件都是一個 COTS — “貨架上的日用品”。最終,Wiglaf 達到了每秒 7 千 4 百萬次浮點運算(74 megaflop)。其價格低於 5 萬美元。

Wiglaf 在 Linux 下運行。這樣做有幾點很好的理由。如上面提到的,在一個 Beowulf 群集中,每個節點運行一個它自己的 Linux 操作系統的拷貝。如果每個節點的操作系統都要有一個許可證的話,這個群集的成本還要加上許可證價格乘以節點的數目。當(許可證)成本為零時,這個算術就很簡單了。另外,wiglaf 的節點使用以太網通信,然而 10 Mbps 的以太網會形成一個瓶頸。Becker 發現:如果每個節點有兩到三個以太網連接的話,可以使這些連接表現得好象只有一個連接一樣,這就可以減弱瓶頸。(請參閱參考資源)。這被稱做通道捆綁(channel bonding)。這之所以可能,是因為 Becker 能自由地閱讀 Linux 內核的源碼,從而寫出一個定制的以太網驅動程序。

在 CPU 能以超過 1 GHz 運行的時候,Wiglaf 的硬件描述似乎有些離譜 — 這還沒算上幾百 MB 的內存和幾十 GB 的硬盤空間呢。但 Sterling 和 Becker 只是想要確定 Beowulf 策略能夠奏效。Wiglaf 是對概念的證明,不是一個最終的產品。為了在 Beowulf 理論的基礎上增加實踐的內容,他們在他們的機器上測試了兩個已經在其它超級計算機上分析過的問題。一個涉及到流體動力學,另一個涉及 N-body 模擬。對它面對能夠處理的那類問題時,Wiglaf的確做得不錯。與諸如 Intel 的 Paragon 和 TMC CM-5 等機器相比,它也有自己的立足之地。這個概念(Beowulf 策略)已被證實。

Loki:聲名遠揚
另一個著名的 Beowulf 策略的應用是 Loki 群集(Loki Cluster),位於 Los Alamos 國家實驗室(請參閱參考資料)。它贏得了 1998 年度 Gordon Bell 價格與性能比(Price/Performance)獎。這是不平常的,甚至可能是諷刺性的:設想一下 Bell 先生與 Microsoft Bay Area研究中心的職業聯系,以及由快速以太網聯接的 16 塊 200 MHz CPU 所組成的 Loki 群集運行在 Linux 下這一事實。正如前面所提到的,大部分超級計算機價值幾百萬美元,而 Loki 的成本只有大約 6 萬 3 千美元,而且同樣的,成本主要歸於硬件。此時,Loki 以每秒 12 億次浮點運算(1.2 gigaflop)運行。

Avalon:競爭者
1998 年,在 Los Alamos 國家實驗室,一個 Beowulf 群集用 140 塊 533 MHz Alpha 微處理器(21164A)建成。每個節點有 256 MB 內存和 3 GB 的硬盤空間。這些節點通過快速以太網的 PCI 卡連接。它運行在 RedHat Linux 5.0 上。依據線型測試標准基准(Linpack benchmark),Avalon 運行在每秒 477 億次浮點運算(47.7 gigaflop )。它價值大約 31 萬 3 千美元,並且在價格性能比方面,它排在 Silicon Graphics 的 Origin 2000 64 位處理器之上,後者有相同數量的 gigaflop(每秒十億次浮點運算)而價值大約 180 萬美元。注:它位於世界上最快的 500 台計算機排名表的第 113 位。

度量性能
一些人認為唯一兩個可以用來度量 Beowulf 群集性能的指標是:每秒浮點運算操作的數量和成本。然而這和認為處理器的唯一度量標准就是以 MHz 度量的速度一樣缺乏遠見。正如其它度量處理器的手段有芯片緩存的大小、內存總線的速度和字寬一樣,至少有三種值得注意的度量 Beowulf 性能的方法。一個是權衡包的大小和沖突率優化網絡吞吐量的能力。另一個是磁盤的輸入輸出速率。最後,還有簡單代碼效率。給編程任務打包的某個方法的效率可能高於或低於另一個。

市場
Beowulf 策略在研究機構之外也有實現。例如,波音公司(Boeing)從 Linux NetworX 得到一個 Beowulf 群集用以設計 Delta IV 火箭,它被用來發射衛星。另外,IBM 與新墨西哥大學(University of New Mexico)合作的 LosLobos,在 IBM Netfinity 服務器上有 512 塊 Pentium III 733 MHz 處理器,通過 64 位的 Myrinet 傳輸數據,達到 3.75 gigaflop(每秒 37.5 億次浮點運算)。國家計算科學聯盟(The National Computational Science Alliance)將 LosLobos 用於研究,IBM 則基於它所學到的繼續開拓群集技術(clustering technology)市場。已有報道說巴西的聖保羅大學(University of SaoPaulo,Brazil),建立了一個有 125 個節點的 Beowulf 群集,它分析乳房 X 線照片的時間只有原來的 120 分之一。象 Paralogic 和 Scyld 這樣的公司經營的就是提供定制群集(請參閱參考資料)。

需要的軟件
本文至今唯一明確提過的軟件就是 Linux 操作系統,而數據和程序指令通過以太網傳輸是由一套軟件協議支持這一概念沒有明確提出。一個您毫無疑問想要獲得並掌握的軟件包是 PVM,即並行虛擬機(Parallel Virtual Machine)。PVM 是一個軟件包,它使得Linux 或 NT 機器組成的群集,可以象一個能夠並行處理的單個計算機那樣執行。

CPU 需要能夠發送、接受任務和數據。消息傳遞(Message passing)是一個可以實現它的方法。至少需要一個 CPU 能夠發送“您將找到並發回這些數中的素數”這樣一個消息,而且還需至少一個 CPU 能夠發送“我找到這些素數”的消息。PVM 是一個 rsh(遠程 shell)或 ssh(安全 shell)的接口,它使一群機器看起來好象一個 — 因而謂之:virtual(虛擬)。

PVM 的源代碼是可用的,並已在許多種機器上編譯過 — 甚至有一個 RedHat 版本的 RPM。如果您有兩台聯網的計算機,您可以下載 Rahul U. Joshi 的最有指導意義的樣本代碼來體驗一下 PVM(請參閱參考資料)。除了 PVM,另一個可供選擇的是 MPI,它是一個用來編寫傳遞消息的程序的庫。MPI 有許多實現。有的是商業的,有的則免費,有的提供源代碼,有的不提供。(請參閱參考資料)。

總結
Beowulf 策略產生 Beowulf 效果,即用較多的處理器和較少的時間,取代原本要用較少的處理器和較多時間進行的計算。在本文中,我僅僅觸及到 Beowulf 現象的表面。下面的參考資料可以幫助您充實對 Beowulf 群集的理解並幫您得到入門所需要的工具。

參考資料

一個極好的起點是“Parallel Processing on Linux with PVM and MPI”由 Rahul U. Joshi 在 Linux Gazette 所著。下載他的樣本代碼。




從 IBM 的 alphaworks 站點下載 Cluster Starter Kit for Linux。




了解更多關於 IBM 群集軟件的內容。




學習 developerWorks 文章中“Linux clustering cornucopia”針對 Linux 的開放和封閉源碼群集解決方案的教程。




請看 Linux Utility for cluster Installation (LUI),一個開放源碼的實用程序,用於在以太網上遠程安裝一個 Linux 工作站。




請參閱 IBM 紅皮書,“Linux HPC Cluster Installation”。




請查看世界上最快的 500 台計算機列表。




請參閱 Accelerated Strategic Computing Initiative (ASCI),找到世界上最快的計算機,並閱讀相關文章,“IBM Builds World's Fastest Supercomputer
to Simulate Nuclear Testing for U.S. Energy Department”。




象 Linux 的所有東西一樣,有一個 Beowulf HOWTO,一個 FAQ,一個郵件列表(要 訂閱的話,請在信息欄填上 subscribe 字樣)帶一個
archive,和一個 Web page。




Sterling 和 Becker 關於 Wiglaf 的報告可以在 Beowulf: A Parallel Workstation for Scientific Computation 找到。




關於 Loki 群集的信息可以在 Loki - Commodity Parallel Processing 找到。




想要 Gordon Bell Price/Performance Prize 的信息,參閱 SC2000 Gordon Bell Awards。




請訪問 Avalon 群集 Web 頁面。




波音公司(Boeing)使用 Beowulf 的情況在 CNet 的文章中有記述,“Boeing buys Linux-AMD supercomputer”。




請訪問 Linux NetworX 網站。




請訪問 LosLobos Web site網站。




在 AS/400 Clustering Technology White Paper 可以得到 IBM 的更多有關群集技術的信息。




請閱讀 Building a Beowulf System,由 Thomas L. Sterling、John Salmon、Donald J. Becker 和 Daniel F. Savarese 描述了聖保羅大學(Sao Paulo University)的工作。另外,請查看 How to Build a Beowulf (The MIT Press,1999)。




請訪問 Paralogic 網站。




請訪問 Scyld 網站。




想要 PVM 的概述,請在 Linux Journal 中參閱 Richard A. Sevenich 的“Parallel Processing using PVM”。還可以參閱 Manu Konchady 的“Parallel Computing Using Linux”,同樣也在 Linux Journal 中。




請閱讀 PVM,並行虛擬機(Parallel Virtual Machine),和 MPI,消息傳遞接口(the Message Passing Interface)。




下載 RedHat RPM for PVM 和 PVM-GUI。取得源代碼。




請參閱 MPI implementations 的列表。下載 RedHat RPM for MPI。




在 developerWorks 上,請浏覽更多 Linux 參考資料。




在 developerWorks 上,請浏覽更多開放源碼參考資料。




關於作者

Andrew Blais 把他的時間分別用於在家教育他的兒子、自由撰稿以及在 Anna Maria 學院講授哲學和心理學。可以通過 [email protected] 與他聯系。




Copyright © Linux教程網 All Rights Reserved