亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

Beowulf 中文HOWTO

2024-07-26 00:31:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Jacek Radajewski and Douglas Eadline 
v1.1.1, 22 November 1998 


--------------------------------------------------------------------------------
這份文件介紹Beowulf超級(jí)電腦架構(gòu)和對(duì)撰寫(xiě)平行程式提供一些背景知識(shí),并包括一些有趣的文件和網(wǎng)站連接。 
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

1. 前言
1.1 聲明 
我們將不對(duì)本文件中不正確的資訊,或者當(dāng)使用後造成的損失負(fù)責(zé)。 



1.2 版權(quán) 
這份文件的版權(quán)Copyright © 1997 - 1998屬於Jacek Radajewski和Couglas Eadline。并在GNU General Public Licence允許下散布和修改本文件。 


1.3 有關(guān)這份HOWTO 
Jacek Radajewski在1997年十一月開(kāi)始編寫(xiě)這份文件,很快地Douglas Eadline也加入行列,幾個(gè)月後Beowulf HOWTO變成長(zhǎng)篇的文件,并在1998年八月分成三份,Beowulf HOWTO、Beowulf 架構(gòu)設(shè)計(jì)HOWTO 和Beowulf安裝管理 HOWTO。1998年十一月十一日Beowulf HOWTO 1.0.0版本在linux 文件計(jì)畫(huà)上發(fā)布,我們希望這只是完整的Beowulf 文件計(jì)畫(huà)的第一步。 


1.4 有關(guān)這些作者 

Jacek Radajewski 網(wǎng)管人員,現(xiàn)正在澳洲南昆士蘭大學(xué)攻讀電腦科學(xué)。 Jacek於1995年第一次接觸Linux就深受吸引,他在1997年建立他自己的第一套 Beowulf電腦群,從那時(shí)起開(kāi)始研究,經(jīng)常想找到更新和更好的方法架設(shè)系統(tǒng)。 □可以透過(guò)電子郵件與他聯(lián)系 jacek@usq.edu.au。 
Douglas Eadline 博士,也是美國(guó)Paralogic公司的董事長(zhǎng)和主要科學(xué)家。原主修物理及分析化學(xué),1978年建立個(gè)人第一臺(tái)電腦用在化學(xué)儀器上,這才開(kāi)始進(jìn)入電腦的領(lǐng)域,Eadline博士現(xiàn)在興趣包括Linux,Beowulf電腦群和平行algorithms,□可以透過(guò)電子郵件與他聯(lián)系 deadline@plogic.com 

1.5 答謝 
經(jīng)過(guò)長(zhǎng)時(shí)期的撰寫(xiě),最後終於完成,特別感謝以下朋友對(duì)本文件的幫忙和貢獻(xiàn)。 


Becky 的愛(ài)、支持和諒解。 
Tom Sterling, Don Becker, 和在NASA 參與Beowulf計(jì)畫(huà)的朋友。 
Thanh Tran-Cong 和架設(shè)topcat Beowulf 機(jī)器的機(jī)械量測(cè)的教職員。 
提供許多建議的指導(dǎo)老師Christopher Vance。 
我的朋友 Russell Waldron 提供程式方面的點(diǎn)子和他熱心的參與及支持。 
我的朋友 David Smith 的校稿。 
許多在Beowulf mailing list上的朋友提供的反應(yīng)及建議。 
所有負(fù)責(zé)Linux作業(yè)系統(tǒng)和在topcat及其他Beowulf機(jī)器上使用軟體套件的朋友。 


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

2. 簡(jiǎn)介

當(dāng)容易取得的電腦和網(wǎng)路硬體的效能提升,并且價(jià)格不斷滑落,利用這些市面販?zhǔn)鄣碾娔X組裝成平行電腦就變得非??尚校恍枰ㄥX(qián)在價(jià)格高昂的超級(jí)電腦上。事實(shí)上Beowulf電腦的價(jià)格效能比是傳統(tǒng)超級(jí)電腦的三倍到十倍,Beowulf架構(gòu)在scale上也不錯(cuò),它很容易建置,你只需負(fù)擔(dān)硬體設(shè)備的費(fèi)用,而不須負(fù)擔(dān)軟體的費(fèi)用。 


2.1 誰(shuí)需要閱讀這份HOWTO? 
這份HOWTO是設(shè)計(jì)給對(duì)Linux作業(yè)系統(tǒng)有些認(rèn)識(shí)的人,對(duì)於Beowulf技術(shù)、作業(yè)系統(tǒng)有深入的認(rèn)識(shí)和網(wǎng)路概念的了解都不是必需的,但是對(duì)平行計(jì)算有些經(jīng)驗(yàn)是絕對(duì)有好處的(畢竟你總需要些藉口閱讀這份文件)。這份HOWTO文件無(wú)法回答B(yǎng)eowulf相關(guān)的所有問(wèn)題,但是希望能提供一些想法,并且領(lǐng)導(dǎo)你走向正確的方向,這份文件的目的是提供相關(guān)的背景知識(shí),和一些更深入的參考文件。 


2.2 什麼是Beowulf? 
Famed was this Beowulf: far flew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan. Beowulf是用英文書(shū)寫(xiě)的最早史詩(shī),描述一個(gè)擁有神力和勇氣的英雄人物□北歐武夫,和他力戰(zhàn)怪獸Grendel的故事, 參見(jiàn) History 可以找到更多有關(guān)北歐武夫的事跡。 

Beowulf的定義可能和建造者或Beowulf超級(jí)電腦使用者一樣多,有些宣稱(chēng)唯有和NASA原型機(jī)相同才稱(chēng)為Beowulf,也有人認(rèn)為只要在一群工作站上執(zhí)行平行程式就可以稱(chēng)為Beowulf。我對(duì)Beowulf的定義是介於二者之間,主要根據(jù)Beowulf mailing list上的一些張貼郵件。 


Beowulf是一種用來(lái)作平行計(jì)算的電腦群架構(gòu),通常是由一臺(tái)伺服端和一臺(tái)以上用戶(hù)端透過(guò)乙太網(wǎng)路或其他網(wǎng)路連接的系統(tǒng),它是用市面販?zhǔn)鄣挠搀w(像是裝有Linux的個(gè)人電腦)、標(biāo)準(zhǔn)乙太網(wǎng)路卡和交換式集線器,它不包含任何特殊的硬體設(shè)備,是可以重新制造。Beowulf并且使用容易取得的軟體,如Linux作業(yè)系統(tǒng)、PVM(Parallel Virtual Machine)和MPI(Message Passing Interface)。伺服端控制整個(gè)電腦群,提供用戶(hù)端檔案服務(wù),它并且也是電腦群的控制臺(tái)和通訊閘,提供對(duì)外連接的出口。大型的Beowulf電腦群可能不只一臺(tái)伺服端,可能有些電腦有特定用途,例如控制臺(tái)或監(jiān)視站,用戶(hù)端在大多數(shù)情況下是不做額外的事情,額外事情做的越少越好。用戶(hù)端是由伺服端規(guī)劃和控制,只做它們被分派的工作。在一個(gè)無(wú)硬碟用戶(hù)端的架構(gòu),用戶(hù)端甚至不必知道各自的ip位址或名稱(chēng),一直到伺服端告知為止。Beowulf和工作站群最大的差異點(diǎn)在於Beowulf看起來(lái)比較像一臺(tái)機(jī)器,而不是許多臺(tái)工作站。在大部分情形用戶(hù)端不需要備有鍵盤(pán)和螢?zāi)唬恍枰高^(guò)遠(yuǎn)端登入或序列式終端螢?zāi)坏侨?,Beowulf的用戶(hù)端可視為處理器和記憶體的組合,嵌入一個(gè)電腦群內(nèi),就像處理器或記憶體模組被嵌入主機(jī)板上。 



Beowulf不屬於特定軟體套件、嶄新的網(wǎng)路拓?fù)浠蚴亲钚碌暮诵鸟斂?,Beowulf是一套串連Linux電腦成超級(jí)虛擬平行電腦的技術(shù),雖然有許多的相關(guān)軟體套件,如修改過(guò)的核心、PVM和MPI程式庫(kù)以及規(guī)劃工具(可以讓Beowulf架構(gòu)更快速、便捷地規(guī)劃系統(tǒng)),任何人也都可以只靠Linux標(biāo)準(zhǔn)套件,不需要額外的輔助就可以建立一套標(biāo)準(zhǔn)的Beowulf機(jī)器。假如你有二臺(tái)已經(jīng)上網(wǎng)的Linux電腦,并且可以透過(guò)NFS共用/home 檔案系統(tǒng)和執(zhí)行rsh(remote shells)指令,這樣你可以算是擁有一臺(tái)簡(jiǎn)單的雙節(jié)點(diǎn)Beowulf機(jī)器。 



2.3 分類(lèi) 
Beowulf系統(tǒng)已經(jīng)由各種不同部份組成,為了效能的考量,一些非商品化周邊設(shè)備(只由一家制造商生產(chǎn))已經(jīng)問(wèn)世,為了易於解說(shuō)和討論各種不同類(lèi)型的系統(tǒng),我們提出下列簡(jiǎn)單的分類(lèi)方式: 

第一類(lèi)BEOWULF: 

這類(lèi)機(jī)器完全由商品化、直接從市面上販?zhǔn)鄣牧慵M成,我們用電腦購(gòu)買(mǎi)者(Computer Shopper)認(rèn)定標(biāo)準(zhǔn)來(lái)定義商品化、直接從市面上販?zhǔn)鄣牧慵娔X購(gòu)買(mǎi)者是一種每月出版的雜志,有一英□厚,內(nèi)容介紹各種電腦系統(tǒng)和零件目錄),認(rèn)定標(biāo)準(zhǔn)如下: 

A 第一類(lèi)Beowulf是一種機(jī)器,它的組成零件至少必須在三種國(guó)際性或全球性商業(yè)目錄上找到。 

第一類(lèi)系統(tǒng)的好處有: 

硬體設(shè)備有很多來(lái)源(價(jià)格低、容易維護(hù)) 
不會(huì)依賴(lài)特定一家硬體供應(yīng)商 
Linux支援的驅(qū)動(dòng)程式 
通常有一標(biāo)準(zhǔn)基礎(chǔ)(如SCSI、Ethernet等) 
第一類(lèi)系統(tǒng)的缺點(diǎn)有: 

需要第二類(lèi)系統(tǒng)的硬體才有較好的效能 
第二類(lèi)BEOWULF 

任何沒(méi)有通過(guò)電腦購(gòu)買(mǎi)者認(rèn)定標(biāo)準(zhǔn)的機(jī)器稱(chēng)之。這并不一定是件壞事,它只是分類(lèi)的一種。 

第二類(lèi)系統(tǒng)的好處有: 

效能相當(dāng)?shù)睾?nbsp;
第二類(lèi)系統(tǒng)的缺點(diǎn)有 : 

驅(qū)動(dòng)程式的供應(yīng)經(jīng)常更換 
依賴(lài)特定一家硬體供應(yīng)商 
可能比第一類(lèi)系統(tǒng)昂貴 
沒(méi)有一種類(lèi)別比其他的優(yōu)秀,全憑使用者的需求和預(yù)算,這種分類(lèi)純粹希望讓接下來(lái)的討論更加簡(jiǎn)明,後頭的系統(tǒng)設(shè)計(jì)章節(jié)將會(huì)幫助你決定哪一種系統(tǒng)最符合你的要求。 






--------------------------------------------------------------------------------

    
--------------------------------------------------------------------------------

3. 架構(gòu)簡(jiǎn)介


3.1 它長(zhǎng)什麼樣? 
我認(rèn)為描述Beowulf超級(jí)電腦架構(gòu)最合適的方法是舉一個(gè)真實(shí)的□例,并且是大多數(shù)系統(tǒng)管理者所熟悉的。那就是一個(gè)UNIX主機(jī)實(shí)驗(yàn)室,內(nèi)有一臺(tái)伺服端和一群用戶(hù)端,更精準(zhǔn)地說(shuō),我會(huì)舉位在南昆士蘭大學(xué)理學(xué)院DEC Alpha大學(xué)部計(jì)算機(jī)實(shí)驗(yàn)室為例,伺服器被稱(chēng)為 beldin 用戶(hù)端機(jī)器分別稱(chēng)為 scilab01, scilab02, scilab03, 一直到 scilab20. 每臺(tái)用戶(hù)端內(nèi)部都安裝Digital Unix 4.0作業(yè)系統(tǒng),但是使用者檔案空間(/home)和 /usr/local 都是透過(guò)NFS(網(wǎng)路檔案系統(tǒng))從伺服端上獲得,每個(gè)用戶(hù)端都可以進(jìn)入伺服端,并且所有其他的用戶(hù)端都會(huì)記載在 /etc/hosts.equiv 檔案內(nèi),因此每個(gè)用戶(hù)端都可以用遠(yuǎn)端操作殼(rsh)。伺服端也是整個(gè)實(shí)驗(yàn)室的NIS伺服器,因此所有的機(jī)器都有相同的帳號(hào)資料,某人可以坐在scilab02的控制臺(tái)前登入,就像他登入伺服端或scilab15. 一樣有相同的環(huán)境,所有的用戶(hù)端有相同環(huán)境的原因在於所有的機(jī)器都安裝和規(guī)劃相同的作業(yè)系統(tǒng),并且使用者的/home 和 /usr/local 區(qū)域?qū)嶓w上都位在伺服端上,可以透過(guò)NFS進(jìn)入。NIS和NFS更進(jìn)一步的訊息請(qǐng)參閱 NIS 和 NFS HOWTOs. 



3.2 如何有效利用其他節(jié)點(diǎn)? 

現(xiàn)在我們對(duì)系統(tǒng)架構(gòu)有些概念,讓我們看看如何使用計(jì)算機(jī)實(shí)驗(yàn)室內(nèi)可供使用的CPU。任何人可以登入任何一臺(tái)機(jī)器,并且在每個(gè)人自己的目錄下執(zhí)行程式,他們也可以透過(guò)遠(yuǎn)端操作殼在其他電腦上啟動(dòng)(spawn)相同的程式。舉例來(lái)說(shuō),假設(shè)我們要計(jì)算1到10內(nèi)整數(shù)平方根的總和,我們寫(xiě)了個(gè)簡(jiǎn)單的程式名為 sigmasqrt (請(qǐng)參見(jiàn) source code) ,為了得到結(jié)果,我們執(zhí)行以下的步驟 

[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 10
22.468278

real    0m0.029s
user    0m0.001s
sys     0m0.024s

time 指令可以告訴我們執(zhí)行程式所花的時(shí)間(實(shí)際經(jīng)過(guò)的時(shí)間),我們可以看到,這個(gè)例子只花了很短的時(shí)間(0.029秒),假如我想計(jì)算1到1,000,000,000內(nèi)整數(shù)的平方根總和,讓我們?cè)囋嚳?,重新?jì)算所花的時(shí)間 

[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 1000000000
21081851083600.559000

real    16m45.937s
user    16m43.527s
sys     0m0.108s


這次執(zhí)行程式所花的時(shí)間非常久,一個(gè)明顯的問(wèn)題就是我們?nèi)绾渭涌靾?zhí)行的時(shí)間?我們?cè)撊绾胃淖儓?zhí)行程式的方式以減少執(zhí)行所花的時(shí)間?最明顯的答案就是將整個(gè)工作分成許多小工作,并且同時(shí)在所有的電腦上執(zhí)行,我們可以將加法的工作分成二十份,每個(gè)部份做一段開(kāi)根號(hào)的工作,并加起來(lái),當(dāng)所有的節(jié)點(diǎn)完成計(jì)算,并傳回來(lái),將二十個(gè)數(shù)加起來(lái)就得到最後的答案。在執(zhí)行程式之前,我們需要做個(gè)標(biāo)有記號(hào)的輸送管,可以讓所有的行程寫(xiě)下它們的結(jié)果。 


[jacek@beldin sigmasqrt]$ mkfifo output
[jacek@beldin sigmasqrt]$ ./PRun.sh & time cat output | ./sum
[1] 5085
21081851083600.941000
[1]+  Done                    ./prun.sh

real    0m58.539s
user    0m0.061s
sys     0m0.206s

這回我們花了大約58.5秒,這時(shí)間是從開(kāi)始到所有的節(jié)點(diǎn)都完成計(jì)算,并將結(jié)果寫(xiě)到輸送管,這個(gè)時(shí)間并不包括最後將二十個(gè)數(shù)加起來(lái),不過(guò)那個(gè)時(shí)間非常地短,可以忽略不計(jì)。我們可以看到平行計(jì)算可以有效地改進(jìn)執(zhí)行程式,事實(shí)上這個(gè)平行工作整整快了約17倍,相對(duì)於使用了二十倍CPU數(shù)目,效能是相當(dāng)合理的。上述□例的目的是要展示同時(shí)平行程式最簡(jiǎn)單的方法,實(shí)際操作上,如此簡(jiǎn)單的□例是很少見(jiàn)的,其他技巧(PVM和MPI APIs)經(jīng)常用來(lái)達(dá)成平行的工作。 



3.3 Beowulf如何與COW不同? 
上述的計(jì)算機(jī)實(shí)驗(yàn)室算是一個(gè)工作站群(Cluster of Workstations,COW),那麼Beowulf有何不同?它和COW有何差異?實(shí)際上二者沒(méi)多大差別,不過(guò)Beowulf倒是有些不同的特色。第一、大多數(shù)的Beowulf群的用戶(hù)端沒(méi)有鍵盤(pán)、滑鼠、顯示卡和螢?zāi)?,所有到用?hù)端的方式都是從伺服端、特定控制端或是序列控制端經(jīng)過(guò)遠(yuǎn)端連接登入,因?yàn)閷?duì)用戶(hù)端而言,從電腦群外登入電腦或是從外頭的電腦直接登入用戶(hù)端是沒(méi)有必要的,用戶(hù)端通常是使用私有的IP位址,例如從10.0.0.0到10.0.0.8或是192.168.0.0到192.168.0.16(參見(jiàn)RFC 1918 http://www.alternic.net/rfcs/1900/rfc1918.txt.html). 通常唯一要用到第二張網(wǎng)路卡對(duì)外連接的機(jī)器是伺服端,使用這套電腦群最常見(jiàn)的方法是直接進(jìn)入伺服端,或是從個(gè)人工作站使用telnet或遠(yuǎn)端登入伺服端。一但進(jìn)入伺服端,使用者可以編輯和編譯他們的程式,也可以在電腦群內(nèi)的用戶(hù)端上啟動(dòng)行程。大多數(shù)情形的COW是在晚上用來(lái)執(zhí)行平行計(jì)算,和在人們不使用工作站的周末時(shí)間,使用□置的CPU。而通常Beowulf專(zhuān)用來(lái)平行計(jì)算,并且對(duì)這些平行計(jì)算做最佳化,當(dāng)利用市售電腦零組件和免費(fèi)軟體建構(gòu)的Beowulf也提供較好的價(jià)格效能比,并且Beowulf給人一種單一系統(tǒng)的印象,很容易讓使用者將Beowulf群看作是一臺(tái)計(jì)算用工作站。 




--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

4. 系統(tǒng)設(shè)計(jì)
在購(gòu)買(mǎi)任何硬體設(shè)備之前,思考如何設(shè)計(jì)你要的系統(tǒng)是非常重要的,基本上在設(shè)計(jì)一套Beowulf系統(tǒng)有兩項(xiàng)硬體設(shè)備的議題 : 你將使用的節(jié)點(diǎn)或稱(chēng)電腦的機(jī)型和連接節(jié)點(diǎn)的方式,只有一種軟體議題會(huì)影響你要選擇的硬體設(shè)備,就是通訊用程式庫(kù)或稱(chēng)API,更詳細(xì)的硬體設(shè)備和通訊軟體討論將會(huì)在本文件後頭。 

當(dāng)選擇性不多的時(shí)候,有幾樣重要的設(shè)計(jì)決定必須做的,因?yàn)槠叫杏?jì)算的科學(xué)(或稱(chēng)為藝術(shù))有很多種方式解釋?zhuān)葬嵊凶骱?jiǎn)介,假如你不想看一些背景資料,可以跳過(guò)本節(jié),但是建議你在做硬體設(shè)備最後的決定之前,最好先閱讀 可適性(Suitability) 。 


4.1 平行計(jì)算的背景介紹 
本節(jié)提供一些平行計(jì)算觀念的基本知識(shí),這絕不是平行計(jì)算科學(xué)和技術(shù)的詳細(xì)描述,這只是平行計(jì)算中與Beowulf設(shè)計(jì)者和使用者相關(guān)的一些簡(jiǎn)介。 

當(dāng)你要設(shè)計(jì)和建構(gòu)自己的Beowulf,下列即將描述的許多項(xiàng)議題在你做決定的過(guò)程中將會(huì)變得非常重要,肇因於它的零件特性,一個(gè)Beowulf超級(jí)電腦可被我們所掌控,一些因素就得仔細(xì)考量,一般來(lái)說(shuō),平行計(jì)算所牽扯的議題并不太難了解,的確如此,一旦了解這些議題,個(gè)人的期待將會(huì)實(shí)踐,成功將更容易實(shí)現(xiàn)。不像循序的世界,處理器的速度是唯一最重要的因素,在平行的世界中,處理器速度只是決定整個(gè)系統(tǒng)效能和效益數(shù)個(gè)因素之一。 



4.2 平行計(jì)算的方法 
平行計(jì)算可分成好幾種類(lèi)型,從使用者觀點(diǎn),考慮每種類(lèi)型的優(yōu)缺點(diǎn)都很重要,接下來(lái)的章節(jié)嘗試提供平行計(jì)算方法的觀點(diǎn),并指出Beowulf機(jī)器是屬於哪種。 


為什麼要一顆以上的處理器?
回答這個(gè)問(wèn)題是很重要的,用八顆CPU跑文書(shū)處理軟體聽(tīng)起來(lái)似乎有點(diǎn)殺雞用牛刀□實(shí)際上也是這樣。那其他像是web server、database、rendering program或是project scheduler?額外的CPU可能有所幫助。復(fù)雜的數(shù)值模擬又如何?流體動(dòng)力學(xué)碼或是data mining application,在這些狀況下,額外的CPU絕對(duì)是需要的,的確,多處理器可以用來(lái)解決更多問(wèn)題。 

接下來(lái)的問(wèn)題通常是「為什麼我需要二或四顆CPU?我可以等極速的986出現(xiàn)?!梗邢铝袔讉€(gè)原因可以回答這個(gè)問(wèn)題: 

由於使用多工作業(yè)系統(tǒng),電腦可以同時(shí)做很多事情,只要有一顆以上低價(jià)CPU就可以達(dá)到最自然的平行化。 
處理器的速度每十八個(gè)月就增加一倍,但是記憶體和硬碟的速度呢?很不幸地,它們的速度增加地并沒(méi)有CPU快,我們必須記得,大多數(shù)的應(yīng)用軟體都利用到cache以外的記憶體和硬碟,平行化是可以擺脫這些限制的一種方法。 
預(yù)計(jì)在2005年之後,處理器的速度將不會(huì)再每十八個(gè)月就增加一倍,要達(dá)到這種曾加速度的趨勢(shì),中間還有許多障礙。 
平行計(jì)算可以有2倍到500倍速度的提升(有時(shí)更快),這全看執(zhí)行的應(yīng)用程式。這種提升是無(wú)法單靠單一處理器,即使是曾經(jīng)一度使用特別設(shè)計(jì)超快處理器的超級(jí)電腦,如今也是用多顆市售且隨手取得的CPU所組成。 
假如你因?yàn)橛龅接?jì)算限制(computer bound)或是輸出□輸入限制(I/O bound)而需要速度,平行是值得考慮的方法,因?yàn)槠叫杏?jì)算可以有很多方式,平行地解決你的問(wèn)題將要思考許多重要的抉擇,這些抉擇會(huì)嚴(yán)重影響應(yīng)用程式的可攜性、效能和你所花的時(shí)間、精神以及金錢(qián)。 

在我們了解平行計(jì)算的技術(shù)之前,讓我們先看看熟悉的真正平行計(jì)算問(wèn)題的實(shí)例□在店門(mén)前大排長(zhǎng)龍。 


平行計(jì)算的商店
想想看一個(gè)柜臺(tái)前有八臺(tái)同時(shí)使用收銀機(jī)的大型商店,假設(shè)每個(gè)收銀機(jī)就是一顆CPU,每個(gè)客人就是一個(gè)電腦程式,電腦程式的大?。üぷ鞯亩喙眩┚褪敲總€(gè)客人選點(diǎn)的多少,接下來(lái)所作類(lèi)比的方式就是要說(shuō)明平行計(jì)算的觀念。 


單工作業(yè)系統(tǒng)
只有一臺(tái)收銀臺(tái)打開(kāi),一次只能處理一個(gè)客人。 

□例 : MS DOS 


多工作業(yè)系統(tǒng)
只有一臺(tái)收銀機(jī)打開(kāi),但是現(xiàn)在一次處理一個(gè)客人選點(diǎn)的一部份,然後移到下個(gè)客人,處理他選點(diǎn)的一部份,每個(gè)人似乎同時(shí)都有在移動(dòng),假如沒(méi)有其他人在排隊(duì),很快就會(huì)輪到你。 

□例 : UNIX,使用單一CPU的NT。 


多顆CPU且多工作業(yè)系統(tǒng)
現(xiàn)在我們將其他的收銀機(jī)打開(kāi),每個(gè)客人都有一臺(tái)收銀機(jī)服務(wù),這時(shí)排隊(duì)的隊(duì)伍移動(dòng)地很快,這稱(chēng)為SMP□對(duì)稱(chēng)式多行程。雖然有額外的收銀機(jī)打開(kāi),但是絕快不過(guò)只有一臺(tái)收銀機(jī)和一個(gè)客人。 

□例 : UNIX,使用多CPU的NT 



多工多CPU的緒(thread)
假如將你選點(diǎn)的項(xiàng)目拆開(kāi)來(lái),多臺(tái)收銀機(jī)同時(shí)使用記帳,你就可以更快一點(diǎn)。首先我們得假設(shè)你買(mǎi)了很多東西,因?yàn)槟慊ㄔ诓痖_(kāi)項(xiàng)目的時(shí)間必須由多臺(tái)收銀機(jī)補(bǔ)償回來(lái),理論上,你可以比以前快N倍,N是收銀機(jī)的臺(tái)數(shù)。當(dāng)收銀員需要得到其他部份的小計(jì)時(shí),他們可以透過(guò)交談或觀望其他收銀機(jī),很快地交換他們所需要的資訊,他們甚至可以打探其他的收銀機(jī),找尋需要的資料,使得工作更快些。無(wú)論如何都還是有些限制,也就是這家店在各個(gè)地方可以有效地放置多少臺(tái)收銀機(jī)。 

Amdals定律也使應(yīng)用程式增快的速度將受限在循序程式中最慢的部份。 

□例 :NUIX或是在相同主機(jī)板上的多CPU的NT并可以執(zhí)行多緒(multi-threaded)程式。 



在多工作業(yè)系統(tǒng)上向其他CPU傳遞訊息
為了改善效能,店家在後頭又增加了八臺(tái)收銀機(jī),因?yàn)樾碌膸坞x前方柜臺(tái)很遠(yuǎn),收銀員必須用電話(huà)將小計(jì)告訴前方柜臺(tái),除了傳遞外,還加上額外時(shí)間的負(fù)擔(dān),但是假如傳遞時(shí)間很短,它將不會(huì)造成問(wèn)題。假如□要買(mǎi)的東西很多,需要所有的收銀機(jī),這時(shí)在使用所有收銀機(jī)來(lái)改進(jìn)收帳的速度之前,額外的時(shí)間負(fù)擔(dān)仍須考慮進(jìn)去。有時(shí)候,某些商店在各個(gè)角落只單獨(dú)放置一臺(tái)收銀機(jī),每個(gè)收銀機(jī)就只能透過(guò)電話(huà)聯(lián)系,這時(shí)它們所在的位置就不重要了。 

□例:多臺(tái)UNIX或多CPU的NT,可能在同一張主機(jī)板或許多主機(jī)板上,彼此能相互聯(lián)系。 

上述說(shuō)明雖然不夠精準(zhǔn),但對(duì)平行系統(tǒng)的限制來(lái)說(shuō),算是不錯(cuò)的描述,不像單一CPU的傳遞仍是個(gè)議題。 


4.3 平行計(jì)算的架構(gòu) 
平行計(jì)算的方法和架構(gòu)將在下節(jié)介紹,雖然描述將會(huì)很廣泛,但是也足以了解Beowulf設(shè)計(jì)的一些相關(guān)議題。 


硬體架構(gòu)

在硬體上有二種基本的平行電腦: 


自有記憶體機(jī)器,之間可以交換資訊(Beowulf 電腦群)。 
共享記憶體機(jī)器,透過(guò)記憶體傳遞資料(SMP機(jī)器)。 
典型的Beowulf是由一群?jiǎn)蜟PU機(jī)器組成,透過(guò)高速乙太網(wǎng)路連接,所以稱(chēng)為自有記憶體機(jī)器。4 way SMP是一臺(tái)共享記憶體機(jī)器,可用來(lái)作平行計(jì)算,平行的應(yīng)用軟體透過(guò)共享記憶體傳遞資料。以電腦販?zhǔn)鄣曜霰扔?,自有記憶體機(jī)器(單獨(dú)暫存帳單)在CPU數(shù)量上可以很多,但是共享記憶體機(jī)器由於記憶體的關(guān)系,CPU的數(shù)目是有限制的。 

但是連接多臺(tái)共享記憶體機(jī)器是可行的,這些混合式共享記憶體機(jī)器對(duì)使用者看起來(lái)就像一臺(tái)大型的SMP,經(jīng)常稱(chēng)作駑馬(NUMA,non uniform memory access,非均勻記憶體登入),因?yàn)槭褂谜呖吹降氖且粔K大記憶體,由所有的CPU共享,有著各種不同的延遲(latencies)。在某種程度上,駑馬機(jī)器中各個(gè)自有共享記憶體之間是必須互相傳遞訊息。 

把SMP機(jī)器當(dāng)作自有記憶體的計(jì)算節(jié)點(diǎn),并將它們連接起來(lái)是有可能的。典型的第一類(lèi)主機(jī)板可以有二顆或四顆CPU,使用這類(lèi)電腦通常可以降低整體的成本,Linux內(nèi)部排序決定如何共享這些CPU,在這個(gè)階段,使用者無(wú)法指定所要執(zhí)行的工作由哪個(gè)CPU負(fù)責(zé),但是使用者可以同時(shí)執(zhí)行二個(gè)不相干的行程,或是一個(gè)有緒的行程(threaded processes),并希望效能比一個(gè)CPU的系統(tǒng)好。 


軟體API架構(gòu)
基本上有二種方式可以在程式內(nèi)表現(xiàn)出同時(shí)的特性: 

在處理器之間使用訊息傳送。 
使用系統(tǒng)的緒 
仍有別種方法,但是這二種是最常用的。有一點(diǎn)必須注意,就是同時(shí)不需要由底層的硬體所控制,訊息和緒都可以在SMP、駑馬SMP和電腦群上使用,但如上所述,效能和可攜性仍是重要的議題。 


訊息
從歷史的觀點(diǎn)來(lái)看,訊息傳遞的技術(shù)反應(yīng)出早期自有記憶體平行電腦的設(shè)計(jì)過(guò)程,當(dāng)緒需要資料時(shí),訊息被要求需要拷貝,拷貝訊息的延遲和速度變成訊息傳遞模式的限制因素。訊息傳遞其實(shí)相當(dāng)簡(jiǎn)單,一些資料和傳遞的目的地(處理器)。一般常見(jiàn)訊息傳遞的API有 PVM 或 MPI,訊息傳遞可以在一臺(tái)SMP機(jī)器和電腦群上有效地使用緒和訊息,相對(duì)於緒,訊息傳遞在一臺(tái)SMP上的好處是,未來(lái)一旦□決定要使用電腦群,只需要輕易地增加機(jī)器。 



作業(yè)系統(tǒng)緒的發(fā)展主要因?yàn)楣蚕碛洃涹w的SMP設(shè)計(jì)允許程式中同時(shí)的部份可以有很快地共享記憶體傳遞和記憶體同步,緒在SMP系統(tǒng)執(zhí)行地不錯(cuò),這是因?yàn)閭鬟f是透過(guò)共享記憶體,由於這個(gè)原因,使用者必須將當(dāng)?shù)氐馁Y料從整體的資料中獨(dú)立出來(lái),否則程式將不能正確地執(zhí)行。相對(duì)於訊息傳遞,因?yàn)橘Y料是由行程所共享,大量的資料拷貝可以避免,Linux支援POSIX緒,緒的問(wèn)題在於很難擴(kuò)展到一臺(tái)SMP機(jī)器以外,這是因?yàn)橘Y料是由CPU所共享,快閃一致性的議題會(huì)造成負(fù)擔(dān)。將緒有效地?cái)U(kuò)展到多臺(tái)SMP機(jī)器必須仰賴(lài)駑馬技術(shù),但是駑馬非常耗時(shí),并且基本的Linux是不支援的。將緒建構(gòu)在訊息傳遞之上,曾經(jīng)有人做過(guò) ( (http://syntron.com/ptools/ptools_pg.htm)),但是緒和訊息傳遞在一起就變得效果不佳。 

以下是和效能有關(guān)的資訊 

          SMP機(jī)器效能      電腦群效能     比例增加程度                           
          ---------------     ----------------         ----------------
訊息          好               佳                 佳

  緒           佳               不良*            不良*

* 要求昂貴的駑馬技術(shù)。


應(yīng)用軟體架構(gòu)
為了在多CPU下平行地跑應(yīng)用程式,在同時(shí)部份必須被分開(kāi)來(lái),一個(gè)標(biāo)準(zhǔn)的單CPU應(yīng)用軟體不會(huì)比它在多處理器下跑的快,有些工具和編譯器可以做這種工作,但是將程式平行化可不是“隨插即用“。這完全和程式有關(guān),有些程式很容易平行化,有些是極度困難,有些情形受限於algorithm的相關(guān)性而根本不可能做到平行。 

在討論軟體議題之前,先要介紹合適性的觀念。 


4.4 合適性(Suitability) 
關(guān)平行計(jì)算的大多數(shù)問(wèn)題都有相同的答案: 

全和應(yīng)用程式本身有關(guān)。 

在我們進(jìn)入這個(gè)議題之前,有一個(gè)非常重要的不同點(diǎn)需要□清□同時(shí)(CONCURRENT)和平行(PARALLEL)之間的差異性,為了方便討論起見(jiàn),我們先定義這二個(gè)觀念: 

程式內(nèi)同時(shí)的部份是指可以單獨(dú)個(gè)別計(jì)算的部份。 

程式內(nèi)平行的部份是指那些可以在同一時(shí)間內(nèi)分別由不同處理器執(zhí)行的同時(shí)部份。 

二者相異的地方是非常重要,因?yàn)橥瑫r(shí)是程式本身的特性,而有效的平行則是機(jī)器的特性,理想狀況下,較快的效能肇因於平行執(zhí)行,平行效能的限制因素在於計(jì)算節(jié)點(diǎn)之間的傳遞速度和延遲(延遲也會(huì)出現(xiàn)在緒SMP應(yīng)用軟體,主要來(lái)自於快閃(cache)的一致性)。大多數(shù)通用的平行測(cè)試套件都有很高的平行性,傳遞和延遲都不是瓶頸,這類(lèi)問(wèn)題可以稱(chēng)作“顯而易見(jiàn)的平行“(obviously parallel),其他的應(yīng)用軟體就沒(méi)那麼簡(jiǎn)單,平行地執(zhí)行程式中的同時(shí)部份可能會(huì)造成程式跑得較慢,抵消掉其他同時(shí)部份所得到的效能。簡(jiǎn)單說(shuō),傳遞所花費(fèi)的時(shí)間必須從儉省的計(jì)算時(shí)間補(bǔ)償,否則平行執(zhí)行同時(shí)部份會(huì)很不經(jīng)濟(jì)。 

程式設(shè)計(jì)者的工作是要決定程式哪些同時(shí)的部份應(yīng)該平行化,哪些則不要。這將會(huì)決定應(yīng)用程式的效能,下面的圖對(duì)程式設(shè)計(jì)者做了些總結(jié)。 



占應(yīng)用程
式的百分比

         | *
         | *
         | *
         | *
         |  *
         |  *
         |  *
         |  *
         |    *
         |     *
         |      *
         |        ****
         |            ****
         |                ********************
         +-----------------------------------
                     傳遞時(shí)間 / 計(jì)算時(shí)間

在一個(gè)理想的平行電腦,傳遞和計(jì)算二者相當(dāng),任何同時(shí)都可以平行化,很不幸地,真實(shí)的平行電腦(包括共享記憶體機(jī)器)都像上圖所示。當(dāng)設(shè)計(jì)Beowulf時(shí),使用者必須牢記這圖,因?yàn)閷?duì)一特定平行電腦,平行效能決定於傳遞時(shí)間和計(jì)算時(shí)間之比,應(yīng)用程式可能可以在各種平行電腦上執(zhí)行,但是不能保證一定會(huì)有較佳的效能。 

一般來(lái)說(shuō),沒(méi)有既可攜性又有效能的平行程式。 

上圖還有其他的延伸議題,當(dāng)效能取決於傳遞和計(jì)算比,改變比值中的某一項(xiàng)不表示一定可以提高效能。改變處理器的速度,但不改變傳遞的速度,程式可以有沒(méi)直覺(jué)性的效果。舉例來(lái)說(shuō),CPU速度提升二倍或三倍,但保持傳遞速度,可能使□的程式有較好的平行效果,比循序執(zhí)行更有效,that is, it may now be faster to run the previousloy PARALLEL parts as SEQUENTIAL。更進(jìn)一步,平行地執(zhí)行沒(méi)有效率的部份,可以使□的程式無(wú)法達(dá)到最快的速度,因此,藉由增加更快的處理器,□可以讓程式慢下來(lái)(□正讓新的CPU不用它最快的速度執(zhí)行程式)。 

升級(jí)到更快的CPU可能反而降慢□的程式速度。 

因此,必須知道□是否可以用平行硬體環(huán)境,□必須對(duì)□的程式在一特定電腦上的可適性有相當(dāng)?shù)恼J(rèn)識(shí),□必須知道相當(dāng)多的議題,包括CPU速度、編譯器、訊息傳遞的API、網(wǎng)路等等。請(qǐng)注意,只認(rèn)識(shí)應(yīng)用程式是不夠的,□必須指出程式中計(jì)算量最重的部份,但是□不知道這個(gè)部份的傳遞花費(fèi),對(duì)特定系統(tǒng),它的傳遞所花的時(shí)間可能無(wú)法讓程式無(wú)法有效地平行化。 

最後要說(shuō)一些常發(fā)生的錯(cuò)誤觀念,我們經(jīng)常說(shuō):一個(gè)程式被平行化,但是真實(shí)的情形是程式的同時(shí)部份才被平行化,從以上的說(shuō)明,一個(gè)程式并沒(méi)有平行化,平行化的效益是機(jī)器的特性。 



4.5 撰寫(xiě)和移植平行軟體 
一旦□決定需要平行計(jì)算,并且想要設(shè)計(jì)和架設(shè)一套Beowulf,根據(jù)上述的討論來(lái)思考一些和□的應(yīng)用程式有關(guān)的建議將是個(gè)很好的主意。 

一般而言,有兩件事□能夠做的: 

直接架設(shè)第一類(lèi)Beowulf,然後想辦法讓□的應(yīng)用程式來(lái)適應(yīng)這套系統(tǒng),或者在Beowulf上直接跑一個(gè)現(xiàn)成的平行應(yīng)用程式(必須注意上述所提的可攜性和效能的議題)。 
先思考一下□將要在□的Beowulf上跑的應(yīng)用程式,然後估計(jì)何種類(lèi)型的硬體和軟體是□所需要的。 
兩種情形□都要考慮效能的議題,一般而言,有三件事□需要做: 

決定□的程式中的同時(shí)部份。 
估計(jì)平行效能。 
描述出程式中的同時(shí)部份。 
讓我們一一詳述。 


決定□的程式中的同時(shí)部份
這個(gè)步驟通常是要考慮將□的程式平行化,如何平行化將在第二個(gè)步驟,現(xiàn)在□要決定資料的關(guān)連性。 

>從實(shí)際操作的角度來(lái)看,應(yīng)用程式可能有二種形態(tài)的同時(shí)性:計(jì)算(數(shù)字的計(jì)算)和I/O(資料庫(kù))。雖然大部分情形,計(jì)算和I/O同時(shí)性是相互正交的(orthogonal),但是有些程式是兩者都需要,有些工具程式可以對(duì)現(xiàn)有的程式做同時(shí)性的分析,這些工具大部分是為Fortran程式語(yǔ)言設(shè)計(jì)的,使用Fortran語(yǔ)言有兩種理由:很早以來(lái),大部分的數(shù)字計(jì)算程式是用Fortran語(yǔ)言寫(xiě)的,另外Fortran是很容易分析的。假如沒(méi)有可利用的工具,這個(gè)步驟對(duì)現(xiàn)存的應(yīng)用程式將是非常困難。 


估計(jì)平行效能
沒(méi)有工具程式的幫助,這個(gè)步驟將需要不斷地嘗試錯(cuò)誤,或是根據(jù)舊有經(jīng)驗(yàn)來(lái)猜測(cè)。假如□心目中已經(jīng)有特定的應(yīng)用程式,想要決定這個(gè)應(yīng)用程式是CPU限制(計(jì)算限制),還是硬碟限制(I/O限制),根據(jù)□的需求,□的Beowulf可能會(huì)有很大的差異。舉例來(lái)說(shuō),一個(gè)計(jì)算限制的問(wèn)題可能需要一些很快的CPU,高速且低延遲的網(wǎng)路,但是一個(gè)I/O限制的問(wèn)題可能需要較慢的CPU和高速乙太網(wǎng)路。 

這個(gè)建議令大多數(shù)人覺(jué)得很訝異,一般的想法是處理器越快越好,這想法當(dāng)然是正確的,但是□必須要有不受限制的預(yù)算經(jīng)費(fèi),實(shí)際情形是要在有限的經(jīng)費(fèi)得到最高效能的系統(tǒng),對(duì)一個(gè)I/O限制的問(wèn)題,已有現(xiàn)成的規(guī)則(稱(chēng)作Eadline-Dedkov定律)可供利用。 

對(duì)兩套有相同累積CPU效能指數(shù)的平行電腦而言,一個(gè)擁有較慢處理器(一個(gè)較慢的處理器間的傳輸網(wǎng)路)對(duì)I/O主導(dǎo)的應(yīng)用程式將會(huì)有較佳的效能。 

要證明這項(xiàng)規(guī)則將會(huì)超出本文件的□圍,□若覺(jué)得有趣,可以下載這篇論文 I/O主導(dǎo)應(yīng)用程式在平行電腦上的效能考量(Performance Considerations for I/O-Dominant Applications on Parallel Computers) (Postscript 格式 109K ) (ftp://www.plogic.com/pub/papers/exs-pap6.ps)

一旦□已經(jīng)決定程式中的同時(shí)性是何種形態(tài),□將需要估計(jì)一旦平行處理的話(huà),效能將會(huì)如何。參見(jiàn) Software 有對(duì)軟體工具的描述。 

若沒(méi)有這些工具,□可以透過(guò)這個(gè)步驟,自行考量,假如每次計(jì)算是以分鐘計(jì),資料傳輸則以秒計(jì),那它將是很好的平行對(duì)象,但是記住,假如□將16分鐘的計(jì)算時(shí)間拆成32份,而每份的資料傳遞需要數(shù)秒鐘,那麼事情將變得嚴(yán)重。 


描述出程式中的同時(shí)部份
有幾種方法找出程式中的同時(shí)部份: 

明確地平行執(zhí)行 
隱含地平行執(zhí)行 
這二者主要的差別在於明確地平行化取決於使用者,隱含地平行化取決於編譯器。 


明確的方法
有一些基本的方法是要靠使用者專(zhuān)為平行電腦來(lái)修改原始碼,使用者必須使用 PVM 或 MPI在程式內(nèi)增加資訊, 或是使用POSIX緒(無(wú)論如何要牢記心中,緒無(wú)法在SMP主機(jī)板之間移動(dòng))。 

明確的方法在實(shí)行和除錯(cuò)上最為困難,使用者通常在標(biāo)準(zhǔn)Fortran 77或 C/C++原始碼中加入函式。MPI程式庫(kù)加入一些函式,使得一些標(biāo)準(zhǔn)平行方法容易實(shí)行(例如分散和收集函式),另外還可以使用已經(jīng)被平行化的標(biāo)準(zhǔn)程式庫(kù)。無(wú)論如何要將可攜性和效能之間的平衡牢記心中。 

從歷史上的理由,大多數(shù)數(shù)值計(jì)算的程式是用Fortran語(yǔ)言所寫(xiě)的,因此在平行計(jì)算中,F(xiàn)ortran是受最大的支援(工具、程式庫(kù)等)?,F(xiàn)在大多數(shù)的程式設(shè)計(jì)者都是用C語(yǔ)言,或是認(rèn)為C語(yǔ)言可以執(zhí)行地更快,而用C語(yǔ)言重新改寫(xiě)現(xiàn)存的Fortran應(yīng)用程式。由於C語(yǔ)言最接近通用的機(jī)器語(yǔ)言,C語(yǔ)言較快可能是正確的,但是它也有一些重要的缺陷。C語(yǔ)言使用指標(biāo)(pointer)會(huì)讓資料相關(guān)性的決定極度困難,自動(dòng)分析指標(biāo)也是極度困難,假如□有現(xiàn)成的Fortran程式,并且未來(lái)想要變成平行程式□千萬(wàn)不要把它轉(zhuǎn)成C語(yǔ)言。 


隱含的方法
隱含方法是使用者放棄一些或全部放棄自行平行,改用編譯器的一種方法,例如 FORTRAN 90, 高效能Frotran (High Performance Fortran,HPF), 大量協(xié)同平行(Bulk Synchronous Parallel,BSP)還有許多正在發(fā)展當(dāng)中。 


隱含方法仍要求使用者對(duì)於程式同時(shí)的特性提供一些資訊,但是編譯器必須對(duì)如何平行地執(zhí)行同時(shí)性做出許多決定,這些方法提供某種程度的可攜性和效能,但是對(duì)一個(gè)平行編譯器,仍然沒(méi)有一個(gè)最好的方法來(lái)描述同時(shí)性的問(wèn)題。 




--------------------------------------------------------------------------------

    
--------------------------------------------------------------------------------

5. Beowulf資源


5.1 起點(diǎn) 


Beowulf mailing list. 只要電子郵件寄到 beowulf-request@cesdis.gsfc.nasa.gov ,在郵件內(nèi)容填上 subscribe 。 
Beowulf 網(wǎng)頁(yè) http://www.beowulf.org 
Extreme Linux http://www.extremelinux.org 
在RedHat網(wǎng)站上的Extreme Linux 軟體 http://www.redhat.com/extreme 


5.2 文件 


Beowulf HOWTO最新版本 http://www.sci.usq.edu.au/staff/jacek/beowulf. 
架設(shè)一個(gè)Beowulf系統(tǒng) http://www.cacr.caltech.edu/beowulf/tutorial/building.html 
Jacek的 Beowulf 連結(jié) http://www.sci.usq.edu.au/staff/jacek/beowulf. 
Beowulf安裝維護(hù)HOWTO http://www.sci.usq.edu.au/staff/jacek/beowulf. 
Linux平行計(jì)算HOWTO http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html 


5.3 相關(guān)論文 


Chance Reschke, Thomas Sterling, Daniel Ridge, Daniel Savarese, Donald Becker, and Phillip Merkey A Design Study of Alternative Network Topologies for the Beowulf Parallel Workstation. Proceedings Fifth IEEE International Symposium on High Performance Distributed Computing, 1996. http://www.beowulf.org/papers/HPDC96/hpdc96.html 
Daniel Ridge, Donald Becker, Phillip Merkey, Thomas Sterling Becker, and Phillip Merkey. Harnessing the Power of Parallelism in a Pile-of-PCs. Proceedings, IEEE Aerospace, 1997. http://www.beowulf.org/papers/AA97/aa97.ps 
Thomas Sterling, Donald J. Becker, Daniel Savarese, Michael R. Berry, and Chance Res. Achieving a Balanced Low-Cost Architecture for Mass Storage Management through Multiple Fast Ethernet Channels on the Beowulf Parallel Workstation. Proceedings, International Parallel Processing Symposium, 1996. http://www.beowulf.org/papers/IPPS96/ipps96.html 
Donald J. Becker, Thomas Sterling, Daniel Savarese, Bruce Fryxell, Kevin Olson. Communication Overhead for Space Science Applications on the Beowulf Parallel Workstation. Proceedings,High Performance and Distributed Computing, 1995. http://www.beowulf.org/papers/HPDC95/hpdc95.html 
Donald J. Becker, Thomas Sterling, Daniel Savarese, John E. Dorband, Udaya A. Ranawak, Charles V. Packer. BEOWULF: A PARALLEL WORKSTATION FOR SCIENTIFIC COMPUTATION. Proceedings, International Conference on Parallel Processing, 95. http://www.beowulf.org/papers/ICPP95/icpp95.html 
Papers at the Beowulf site http://www.beowulf.org/papers/papers.html 


5.4 軟體 

PVM - Parallel Virtual Machine http://www.epm.ornl.gov/pvm/pvm_home.html 
LAM/MPI (Local Area Multicomputer / Message Passing Interface http://www.mpi.nd.edu/lam 
BERT77 - FORTRAN conversion tool http://www.plogic.com/bert.html 
Beowulf software from Beowulf Project Page http://beowulf.gsfc.nasa.gov/software/software.html 
Jacek's Beowulf-utils ftp://ftp.sci.usq.edu.au/pub/jacek/beowulf-utils 
bWatch - cluster monitoring tool http://www.sci.usq.edu.au/staff/jacek/bWatch 



5.5 Beowulf機(jī)器 

Avalon 是由 140臺(tái)Alpha 處理器組成,36GB記憶體,可能是最快的Beowulf機(jī)器,計(jì)算速度高達(dá)47.7Gflops,在全世界前五百快的機(jī)器中排名第114。 http://swift.lanl.gov/avalon/ 
Megalon-A Massively PArallel CompuTer Resource (MPACTR)由14臺(tái)個(gè)人電腦組成,每臺(tái)電腦內(nèi)有四顆Pentium Pro200處理器,總共有14GB記憶體 http://megalon.ca.sandia.gov/description.html 
HIVE - Highly-parallel Integrated Virtual Environment 是另一套高速的Beowulf超級(jí)電腦,有64個(gè)計(jì)算節(jié)點(diǎn),共計(jì)128顆處理器,4GB記憶體。 http://newton.gsfc.nasa.gov/thehive/ 
Topcat 是一套比較小型的機(jī)器,總共有16顆處理器和1.2GB記憶體。 http://www.sci.usq.edu.au/staff/jacek/topcat 
MAGI cluster 是個(gè)有趣的網(wǎng)站,內(nèi)有許多有趣的連結(jié)。 http://noel.feld.cvut.cz/magi/ 



5.6 其他有趣的網(wǎng)站 


SMP Linux http://www.linux.org.uk/SMP/title.html 
Paralogic - Buy a Beowulf http://www.plogic.com 

5.7 歷史 

Legends - Beowulf http://legends.dm.net/beowulf/index.html 
The Adventures of Beowulf http://www.lnstar.com/literature/beowulf/beowulf.html 
 
    
--------------------------------------------------------------------------------

6. 原始碼

6.1 sum.c 

/* Jacek Radajewski jacek@usq.edu.au */
/* 21/08/1998 */

#include 
#include 

int main (void) {

  double result = 0.0;
  double number = 0.0;
  char string[80];
  

  while (scanf("%s", string) != EOF) {

    number = atof(string);
    result = result + number;
  }
    
  printf("%lf/n", result);
  
  return 0;
  
}


6.2 sigmasqrt.c 

/* Jacek Radajewski jacek@usq.edu.au */
/* 21/08/1998 */

#include 
#include 

int main (int argc, char** argv) {

  long number1, number2, counter;
  double result;
  
  if (argc < 3) {
    printf ("usage : %s number1 number2/n",argv[0]);
    exit(1);
  } else {
    number1 = atol (argv[1]);
    number2 = atol (argv[2]);
    result = 0.0;
  }

  for (counter = number1; counter <= number2; counter++) {
    result = result + sqrt((double)counter);
  }
    
  printf("%lf/n", result);
  
  return 0;
  
}



6.3 prun.sh 


#!/bin/bash
# Jacek Radajewski jacek@usq.edu.au
# 21/08/1998

export SIGMASQRT=/home/staff/jacek/beowulf/HOWTO/example1/sigmasqrt

# $OUTPUT must be a named pipe
# mkfifo output

export OUTPUT=/home/staff/jacek/beowulf/HOWTO/example1/output

rsh scilab01 $SIGMASQRT         1  50000000 > $OUTPUT < /dev/null&
rsh scilab02 $SIGMASQRT  50000001 100000000 > $OUTPUT < /dev/null&
rsh scilab03 $SIGMASQRT 100000001 150000000 > $OUTPUT < /dev/null&
rsh scilab04 $SIGMASQRT 150000001 200000000 > $OUTPUT < /dev/null&
rsh scilab05 $SIGMASQRT 200000001 250000000 > $OUTPUT < /dev/null&
rsh scilab06 $SIGMASQRT 250000001 300000000 > $OUTPUT < /dev/null&
rsh scilab07 $SIGMASQRT 300000001 350000000 > $OUTPUT < /dev/null&
rsh scilab08 $SIGMASQRT 350000001 400000000 > $OUTPUT < /dev/null&
rsh scilab09 $SIGMASQRT 400000001 450000000 > $OUTPUT < /dev/null&
rsh scilab10 $SIGMASQRT 450000001 500000000 > $OUTPUT < /dev/null&
rsh scilab11 $SIGMASQRT 500000001 550000000 > $OUTPUT < /dev/null&
rsh scilab12 $SIGMASQRT 550000001 600000000 > $OUTPUT < /dev/null&
rsh scilab13 $SIGMASQRT 600000001 650000000 > $OUTPUT < /dev/null&
rsh scilab14 $SIGMASQRT 650000001 700000000 > $OUTPUT < /dev/null&
rsh scilab15 $SIGMASQRT 700000001 750000000 > $OUTPUT < /dev/null&
rsh scilab16 $SIGMASQRT 750000001 800000000 > $OUTPUT < /dev/null&
rsh scilab17 $SIGMASQRT 800000001 850000000 > $OUTPUT < /dev/null&
rsh scilab18 $SIGMASQRT 850000001 900000000 > $OUTPUT < /dev/null&
rsh scilab19 $SIGMASQRT 900000001 950000000 > $OUTPUT < /dev/null&
rsh scilab20 $SIGMASQRT 950000001 1000000000 > $OUTPUT < /dev/null&




--------------------------------------------------------------------------------

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91极品视频在线观看| 亚洲性受xxx喷奶水| 伊人久久成人| 日韩电影在线一区二区三区| 成人亚洲精品| 久久日本片精品aaaaa国产| 精品久久久久久久中文字幕| 亚洲精品网站在线观看| 欧美福利视频一区二区| 99久久免费国产| 国产日本欧洲亚洲| 在线观看日韩中文字幕| 二区三区在线播放| 欧美日韩综合一区二区三区| 国产乱淫a∨片免费视频| 国产专区中文字幕| 国内久久久精品| 亚洲精品成人a| 69成人在线| www.天堂av.com| 美女羞羞视频在线观看| 日本一区不卡| 美女看a上一区| 欧美精品在线免费观看| 国产精品久久久久久久泡妞| 国产欧美一区二区三区国产幕精品| www.欧美日本韩国| 欧美精品一卡两卡| 美女免费视频网站| 亚洲成aⅴ人片久久青草影院| 亚洲va韩国va欧美va精品| 亚洲激情图片小说视频| 久久久国产视频| 女人被狂躁到高潮视频免费网站| 亚洲mm色国产网站| 俺去啦最新官网| 色综合久久久久无码专区| 欧美韩国一区二区| 欧美日韩国产在线| 亚洲一区二区三区四区在线观看| 刘亦菲国产毛片bd| 99久久综合网| 国产精品高清在线| 伊人影院蕉久影院在线观看| 国产不卡一卡2卡三卡4卡5卡在线| 日韩高清国产精品| 99re在线视频免费观看| 日韩va欧美va亚洲va久久| 欧美视频第一页| youjizz久久| 欧美乱妇20p| 91丝袜在线观看| 久久av一区二区三区| 国产日韩一级片| 中文字幕不卡在线视频极品| 99国产精品久久久久久| 欧美日韩免费观看一区=区三区| 国产精品美女久久久久人| 天天干夜夜干| 欧美日韩看看2015永久免费| 成年人黄色大片在线| 伊人久久久久久久久久久久久久| 日本午夜一区二区三区| 国产精品欧美日韩一区二区| 超碰在线观看91| 校园春色 亚洲| 亚洲传媒在线| 西瓜成人精品人成网站| 欧美极品在线播放| 亚洲日本va在线观看| 亚洲美女视频网站| 在免费jizzjizz在线视频| 国产高中女学生第一次| 99精品视频免费版的特色功能| 50路60路老熟妇啪啪| 亚洲va国产va欧美va观看| 国产成人永久免费视频| 久热综合在线亚洲精品| 国产女人18水真多18精品一级做| 亚洲女同女同女同女同女同69| 国产69精品久久久| 性生生活大片免费看视频| 日韩精品一区二区三区久久| 国产精品国产三级国产三级人妇| 国产色一区二区三区| 一级片aaaa| 你真棒插曲来救救我在线观看| 国产精品主播直播| 日本精品一二区| 99久久精品费精品国产风间由美| 青青草一区二区三区| 成人黄动漫网站免费| 毛片在线网址| 亚洲国产97在线精品一区| 国产精品一区二区三区乱码| 国产一区二区三区视频免费观看| 欧美日韩aaaaaa| 91大神在线观看线路一区| 牛牛影视精品影视| 成人激情视频小说免费下载| 视频在线一区二区| 一区二区日韩在线观看| 欧美激情精品久久久| 刘玥91精选国产在线观看| 欧美日高清视频| 黄色免费影视| 精品在线不卡| 免费一区二区| 久久手机精品视频| 精品无人区乱码1区2区3区免费| 四虎最新地址发布| 国产一级片黄色| 伊人久久大香线蕉成人综合网| 国产乱人伦偷精品视频免下载| 成人免费公开视频| 日本精品一区二区三区不卡无字幕| 国产成人黄色| 亚洲视频手机在线观看| 福利网在线观看| 亚洲一区二区视频在线观看| 国产乱码精品一区二三区蜜臂| 久久久婷婷一区二区三区不卡| 成人漫画网站免费| 成人久久一区| 国产激情偷乱视频一区二区三区| 在线观看av资源网| 图片专区亚洲欧美另类| 蜜桃av.网站在线观看| 色欲av永久无码精品无码蜜桃| 久草在线中文最新视频| 曰韩不卡视频| 亚洲精品视频在线免费| 久久久久久久久久久av| 99久热re在线精品996热视频| 久久久精品国产| 国产精品久久久久久亚洲av| 2019中文字幕视频| 午夜黄色小视频| 天天撸夜夜操| 国产亚洲日本欧美韩国| 在线免费观看日本一区| gai在线观看免费高清| 狠狠色噜噜狠狠色综合久| 国产一区不卡在线| 国产日韩欧美麻豆| 亚洲最大在线| 国产日韩精品一区| 亚洲中文字幕一区二区| eeuss鲁一区二区三区| 你真棒插曲来救救我在线观看| 亚洲天堂国产视频| 非洲一级黄色片| 国产又爽又黄的视频| 精品一区av| 51色欧美片视频在线观看| 国内一区二区三区在线视频| 成人欧美一区二区三区黑人麻豆| 日韩av在线一区二区| www.亚洲欧美| 无码精品人妻一区二区| 91久久大香伊蕉在人线| 国产喂奶挤奶一区二区三区| 久久成年人免费电影| 亚洲aaaaaaa| 日韩第一区第二区| 懂色av一区二区三区| 亚洲一卡二卡三卡| 国产日韩综合一区二区性色av| 国产成人av在线影院| 中文在线天堂网| 亚洲高清中文字幕| 疯狂做受xxxⅹ高潮视频免费| 国产iv一区二区三区| 中文字幕人妻一区二区三区| 88av.com| 欧美激情午夜| 日韩一区网站| 77777_亚洲午夜久久多人| 久久日文中文字幕乱码| 欧美性jizz18性欧美| 国产农村妇女毛片精品久久| 四虎国产成人精品免费一女五男| 国产精品少妇自拍| 亚洲狠狠爱一区二区三区| 久久99国产视频| 国产porn视频| 亚洲欧美综合久久久久久v动漫| 深夜精品寂寞黄网站在线观看| 欧美国产视频一区二区| 奇米精品一区二区三区在线观看一| 刘亦菲一区二区三区免费看| 在线电影国产精品| 国产原厂视频在线观看| 欧美激情另类| 蜜桃av噜噜一区二区三区| 国产精品815.cc红桃| 电影亚洲精品噜噜在线观看| 波多野结衣亚洲色图| 久草在线资源视频在线观看| 免费看黄色aaaaaa 片| 欧美久久一区二区三区| 中文字幕视频一区二区| 国产婷婷97碰碰久久人人蜜臀| 日韩一区精品字幕| 香蕉视频久久久| 视频二区在线观看| 最新中文字幕免费视频| 亚州精品一二三区| 欧美性欧美巨大黑白大战| 8x8x最新地址| 亚洲精品中文字幕在线播放| 扒开腿狂躁女人爽出白浆2| 大白屁股一区二区视频| 日韩在线视频中文字幕| 黄色网在线免费看| www.av天天| 91精品国产成人观看| 欧美性色黄大片| 97在线免费| 香蕉网在线播放| 青青草这里只有精品| 一区二区三区免费在线看| 欧洲精品乱码久久久久蜜桃| 深夜福利久久| 亚洲天堂成人在线观看| 欧美电影在线观看完整版| 性网站在线观看| 午夜精品影院| xxx在线播放| 狠狠激情五月综合婷婷俺| 欧美黄色性生活| 久久久综合av| 久久久久亚洲av片无码v| 亚洲成色在线综合网站2018站| 极品少妇xxxx精品少妇| 日本人妻伦在线中文字幕| 农村老熟妇乱子伦视频| 精品视频久久久久久久| 最近免费中文字幕大全免费版视频| 亚洲美女综合网| 亚洲国产国产| 成人免费看片'免费看| 一卡二卡欧美日韩| 手机在线成人免费视频| 性开放的欧美大片| 啪啪av大全导航福利综合导航| 亚洲资源中文字幕| 精品成人av一区二区三区| 在线看日本不卡| 韩国欧美一区二区| 欧美视频国产精品| 久久婷婷av| 天天躁日日躁狠狠躁超碰2020| 日韩**一区毛片| 久久亚洲精品一区二区| www.国产精品一区| 国产成人精品久久久| 欧美国产一区二区在线观看| 国产精品久久久久久久久久久久| 美女网站一区二区| 国产一区二区三区美女秒播| 1769国产精品| 亚州一区二区| 欧美一区二区在线视频| 全国精品免费看| 亚洲一卡二卡三卡四卡无卡网站在线看| 黄色一级大片在线免费看国产一| 一区二区三区四区在线看| 亚洲福中文字幕伊人影院| 成人伦理视频网站| 波多野吉衣中文字幕| 日韩欧美视频在线| 黄色三及免费看| 国产v综合v| 91在线播放国产| 99在线观看视频| 特级丰满少妇一级| 99在线热播精品免费99热| 视频一区二区三区免费观看| 欧美一级特黄aaa| 免费看a网站| 日韩中文字幕在线免费| 久久久亚洲av波多野结衣| 亚洲天堂第二页| 亚洲天堂一二三| 精品久久久久久无码中文野结衣| 日本黄色免费观看| 亚洲电影网站| 99精品久久久久久中文字幕| 久久一区欧美| 亚洲精品国产手机| 《视频一区视频二区| 麻豆视频传媒入口| 中文字幕日韩高清| 国产欧美日韩一区二区三区在线| 极品粉嫩国产18尤物| а√天堂资源官网在线资源| 国产欧美第一页| 无遮挡动作视频在线观看免费入口| 麻豆av在线免费看| 成人在线观看a| 国产奶头好大揉着好爽视频| 国产九九视频一区二区三区| 青青免费在线视频| 久久精品亚洲精品国产欧美| 国产成人免费在线观看不卡| 久久综合九色综合欧美就去吻| 伊人中文字幕在线观看| 中文日本在线观看| 久久精品国产亚洲AV熟女| 亚洲国产影院| 酒色婷婷桃色成人免费av网| 一区二区三区免费高清视频| 少妇愉情理伦片bd| 精品一二三四五区| 欧州一区二区| 秋霞午夜鲁丝一区二区| 日韩免费观看高清完整版在线观看| 97视频免费在线观看| 国产在线高清理伦片a| 日韩在线观看视频一区二区三区| 又色又爽又黄18网站| 欧美日韩中文不卡| 成熟了的熟妇毛茸茸| 中文字幕乱码亚洲无线精品一区| 在线资源av| 欧美 日韩 亚洲 一区| 日本精品中文字幕|