Linux下的網(wǎng)絡(luò)并行計(jì)算
時(shí)間:2009-02-23 00:04:00
來(lái)源:UltraLAB圖形工作站方案網(wǎng)站
人氣:6624
作者:admin
1977年,DEC公司推出了以VAX為結(jié)點(diǎn)機(jī)的松散耦合的集群系統(tǒng),并成功地將VMS操作系統(tǒng)移植到該系統(tǒng)上。20世紀(jì)90年代后,隨著RISC技術(shù)的發(fā)展運(yùn)用和高性能網(wǎng)絡(luò)產(chǎn)品的出現(xiàn),集群系統(tǒng)在性能價(jià)格比(Cost/Performance)、可擴(kuò)展性(Scalability)、可用性 (Availability)等方面都顯示出了很強(qiáng)的競(jìng)爭(zhēng)力,尤其是它在對(duì)現(xiàn)有單機(jī)上的軟硬件產(chǎn)品的繼承和對(duì)商用軟硬件最新研究成果的快速運(yùn)用,從兩方面表現(xiàn)出傳統(tǒng)MPP無(wú)法比擬的優(yōu)勢(shì)。
目前,集群系統(tǒng)已在許多領(lǐng)域獲得應(yīng)用??梢灶A(yù)見(jiàn),隨著 SMP產(chǎn)品的大量使用和高性能網(wǎng)絡(luò)產(chǎn)品的完善以及各種軟硬件支持的增多和系統(tǒng)軟件、應(yīng)用軟件的豐富,新一代高性能集群系統(tǒng)必將成為未來(lái)高性能計(jì)算領(lǐng)域的一種主流平臺(tái)。具有代表性的集群系統(tǒng)有IBM的SP2、SGI的POWER CHALLENGEarray、Microsoft的 Wolfpack、DEC的TruClusters、SUN的SPARCcluster 1000/2000PDB以及Berkeley NOW 等,中國(guó)國(guó)家智能計(jì)算機(jī)研究開(kāi)發(fā)中心的曙光-1000A、曙光-2000I和曙光-2000II也都屬集群系統(tǒng)。
什么是Beowulf?
集群已經(jīng)成為現(xiàn)在各高性能計(jì)算機(jī)廠商的研究熱點(diǎn)。據(jù)統(tǒng)計(jì),在全球計(jì)算能力最強(qiáng)大的500臺(tái)計(jì)算機(jī)當(dāng)中,集群所占的比重從1997年到1999年依次為1臺(tái)、2臺(tái)和76臺(tái)。集群研究的發(fā)展勢(shì)頭可見(jiàn)一斑。
Linux作為一個(gè)新興的操作系統(tǒng),以它為平臺(tái)來(lái)構(gòu)建集群有很多優(yōu)點(diǎn):
1. 廉價(jià):與Windows以及其它商品化Unix操作系統(tǒng)相比,Linux的一個(gè)顯而易見(jiàn)的優(yōu)勢(shì)就是廉價(jià)。硬件的花銷(xiāo)加上很少的軟件費(fèi)用就可以擁有一個(gè)PC工作站或服務(wù)器,這方面顯然是其它操作系統(tǒng)無(wú)法比擬的。而且Linux對(duì)于硬件的要求比Windows要低得多。一般的用戶(hù)也可以利用Linux來(lái)構(gòu)造一個(gè)高性能的集群來(lái)進(jìn)行科學(xué)計(jì)算、實(shí)驗(yàn),在很大程度上它可以替代以往昂貴的大型計(jì)算機(jī)。
2. 自由開(kāi)放:自由開(kāi)放是Linux的一個(gè)最迷人的特點(diǎn)。 Linux的開(kāi)發(fā)者從Linus 等寥寥幾人發(fā)展到全世界將近1000萬(wàn)的龐大用戶(hù)群,其擴(kuò)張速度令人刮目。Linux并不僅僅是給用戶(hù)提供了更多的選擇,更重要的是它寬闊的胸懷征服了那些好奇、上進(jìn)、富于創(chuàng)造精神和協(xié)作精神的電腦愛(ài)好者。
而開(kāi)放源碼為提高性能提供了更加廣闊的空間。開(kāi)發(fā)者可以看到這個(gè)系統(tǒng)是怎樣跑起來(lái)的,然后在操作系統(tǒng)一級(jí)進(jìn)一步提高性能便成為可能。而在Windows或者AIX這樣的操作系統(tǒng)中,得到它們的源碼已是很不容易,要想舒舒服服地從操作系統(tǒng)著手來(lái)優(yōu)化上層的大型應(yīng)用更是難上加難。
3. 高效:目前,由于還比較缺乏對(duì)Linux的性能和功能評(píng)價(jià)的系統(tǒng)科學(xué)研究,在同等硬件配置和應(yīng)用環(huán)境下,Linux與其他操作系統(tǒng)相比孰優(yōu)孰劣還不太明了。但是,已經(jīng)有不少數(shù)據(jù)說(shuō)明,作為工作站或小型服務(wù)器,Linux已經(jīng)可以與它的對(duì)手一較高低了,尤其是它的網(wǎng)絡(luò)性能以及可靠性都備受稱(chēng)贊,而這些正是一個(gè)高效集群不可缺少的。
Linux環(huán)境下的集群系統(tǒng)中比較有影響力的要屬Beowulf 集群了。Beowulf(發(fā)音為Bay oh wolf或者Bee oh wolf,這個(gè)詞來(lái)自于傳說(shuō)中斯堪的納維亞人中一個(gè)英雄的名字)集群的研究是由美國(guó)國(guó)家航空航天局(NASA)于1994年上半年發(fā)起的。1994年夏天,Thomas Sterling和Don Becker等人構(gòu)建了一臺(tái)由以太網(wǎng)連接的擁有16個(gè)DX4處理器的集群。他們把這個(gè)
集群計(jì)算機(jī)叫做Beowulf。它主要用來(lái)進(jìn)行地球、空間科學(xué)的研究。Beowulf的目的主要是使用普通的、相對(duì)廉價(jià)的計(jì)算機(jī)構(gòu)建能夠處理繁重計(jì)算的集群。此后,Beowulf的思想迅速被世界上許多研究機(jī)構(gòu)認(rèn)同和接受。 Beowulf集群的研究也熱火朝天地開(kāi)展起來(lái)。
關(guān)于究竟什么樣才能叫做一個(gè)真正的Beowulf集群,目前還沒(méi)有定論。就像我們前面提到的集群體系結(jié)構(gòu)那樣,Beowulf集群通常由服務(wù)節(jié)點(diǎn)(server node),成員節(jié)點(diǎn)(client node)通過(guò)以太網(wǎng)或者其他網(wǎng)絡(luò)連接構(gòu)成。盡管Beowulf 的初衷是使用成熟的大眾化的配件來(lái)構(gòu)建集群,現(xiàn)在也有人把為了提高性能而使用了一些專(zhuān)用部件(比如專(zhuān)用的高速互聯(lián)網(wǎng)絡(luò)等等)的集群叫做Beowulf集群。 #p#page_title#e#
在Beowulf集群上運(yùn)行的軟件是Linux、PVM和MPI。一般由服務(wù)節(jié)點(diǎn)來(lái)控制整個(gè)集群。這個(gè)服務(wù)節(jié)點(diǎn)是集群的控制臺(tái)和對(duì)外的網(wǎng)關(guān)。在規(guī)模比較大的Beowulf集群中有可能出現(xiàn)多個(gè)服務(wù)節(jié)點(diǎn)。比如,專(zhuān)門(mén)使用集群中的一個(gè)節(jié)點(diǎn)來(lái)做控制臺(tái)或統(tǒng)計(jì)整個(gè)集群的運(yùn)行狀態(tài)。通常,Beowulf集群中的成員節(jié)點(diǎn)都是啞成員,也就是說(shuō),它們不與外界交互。成員節(jié)點(diǎn)由服務(wù)結(jié)點(diǎn)來(lái)管理,做服務(wù)節(jié)點(diǎn)給它們分配的任務(wù)。
Beowulf集群與加州大學(xué)Berkley分校進(jìn)行的NOW (Network Of Workstations)項(xiàng)目的研究有非常微妙但卻很重要的區(qū)別。
Beowulf集群中的成員節(jié)點(diǎn)以及內(nèi)部連接是集群專(zhuān)用的。從這一點(diǎn)來(lái)看,Beowulf更像是一臺(tái)完整的機(jī)器,而不是一個(gè)由許多計(jì)算機(jī)組成的松散的群體。大多數(shù)集群的節(jié)點(diǎn)并沒(méi)有鍵盤(pán)、顯示器等,只是通過(guò)遠(yuǎn)程登錄來(lái)訪問(wèn)控制它們。就像CPU和內(nèi)存可以方便地安裝到主板上一樣,Beowulf的節(jié)點(diǎn)作為內(nèi)置的模塊插入 Beowulf集群中。Beowulf集群中的節(jié)點(diǎn)之間的連接(通常是高速網(wǎng)絡(luò),比如Fast Ethernet、 ATM、 Myrinet等)也是內(nèi)部專(zhuān)用的。它與集群與外界連接的普通網(wǎng)絡(luò)相隔離。這些特點(diǎn)使得Beowulf集群中的負(fù)載均衡以及結(jié)點(diǎn)之間的信賴(lài)關(guān)系變得更容易處理,因?yàn)樗鼈儾皇芡饨绲挠绊?。而且結(jié)點(diǎn)之間的通信也會(huì)高效許多。
Beowulf并不是一個(gè)軟件包,一種新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)或者內(nèi)核技術(shù)。它是一種使用跑Linux的機(jī)器來(lái)構(gòu)建并行虛擬機(jī)的思想。盡管有很多軟件(比如一些內(nèi)核的修改,PVM和MPI并行運(yùn)算庫(kù)或者一些管理工具)可以使Beowulf體系結(jié)構(gòu)更快,更容易管理和使用,但我們?nèi)匀豢梢灾皇褂肔inux來(lái)建造一個(gè)自己的Beowulf集群。一個(gè)最簡(jiǎn)單的Beowulf集群可以由兩臺(tái)互相連接并且擁有一些信任關(guān)系(比如NFS 和rsh權(quán)限)的Linux計(jì)算機(jī)組成。
Beowulf集群的重要模塊
撇開(kāi)并行應(yīng)用本身不談,跟任何集群一樣,Beowulf的性能取決于下面幾個(gè)因素:節(jié)點(diǎn)本身、節(jié)點(diǎn)之間互聯(lián)設(shè)備、底層通信軟件(包括互聯(lián)設(shè)備的驅(qū)動(dòng))、全局資源管理系統(tǒng)以及并行計(jì)算環(huán)境(PVM或MPI)等等。
對(duì)于給定的應(yīng)用問(wèn)題,在節(jié)點(diǎn)數(shù)一定的條件下,則由以下三個(gè)方面的因素來(lái)決定并行處理的速度。首先是應(yīng)用問(wèn)題求解的算法,其次是處理結(jié)點(diǎn)軟硬件的速度。另外,由于應(yīng)用問(wèn)題的不同部分之間往往有著某種數(shù)據(jù)依賴(lài)關(guān)系,不同部分之間需要進(jìn)行一定的通信,因此通信性能成了另外的一個(gè)因素。下面,我們將著重介紹高性能集群的通信子系統(tǒng):底層互聯(lián)設(shè)備、底層通信軟件以及并行計(jì)算環(huán)境。從下圖可以看到,這幾個(gè)部分對(duì)于整個(gè)集群的性能來(lái)說(shuō)都是非常重要的。
· 底層互聯(lián)網(wǎng)絡(luò)
>
在集群系統(tǒng)中,分布在各個(gè)節(jié)點(diǎn)上的進(jìn)程之間通常有大量的信息要交換,這都要通過(guò)互聯(lián)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。因此,互聯(lián)網(wǎng)絡(luò)性能的優(yōu)劣會(huì)直接影響信息交換的速率和效率,進(jìn)而影響整個(gè)集群系統(tǒng)的整體性能。
理想狀態(tài)下互聯(lián)網(wǎng)絡(luò)應(yīng)該具有以下特征:
☆?較短的通信延時(shí)(Latency)
☆?較高的通信帶寬(Bandwidth)
☆?極小的錯(cuò)誤率(Error Rate)
☆?較好的可擴(kuò)展性(Scalability)
集群中經(jīng)常使用的互聯(lián)設(shè)備有快速以太網(wǎng)、ATM網(wǎng)絡(luò)、 Myrinet以及專(zhuān)用的mesh網(wǎng)絡(luò)等等。
· 底層通信軟件
底層通信軟件是集群通信效率高低的關(guān)鍵。在這一層所要關(guān)心的問(wèn)題是協(xié)議問(wèn)題。TCP/IP協(xié)議把各種各樣異構(gòu)的機(jī)器連接起來(lái),組成一個(gè)實(shí)際的計(jì)算機(jī)網(wǎng)絡(luò)。這種強(qiáng)大的兼容性卻往往需要以效率作為代價(jià)。比如用戶(hù)的消息從發(fā)送方到接收方一般要經(jīng)過(guò)多次拷貝(從發(fā)方用戶(hù)空間拷貝到核心空間,從核心空間拷貝到接收方用戶(hù)空間以及中間進(jìn)行差錯(cuò)校驗(yàn),重發(fā)機(jī)制等等帶來(lái)的拷貝)。而統(tǒng)計(jì)表明,每增加一次拷貝,通信的效率就會(huì)降低至少20%。而在集群中,就采用一些專(zhuān)門(mén)的技術(shù)來(lái)解決這些問(wèn)題。比如用戶(hù)級(jí)通信技術(shù)用來(lái)減少通信軟件進(jìn)入操作系統(tǒng)核心的次數(shù),零拷貝技術(shù)減少消息通路上的拷貝次數(shù)等等。 #p#page_title#e#
· 網(wǎng)絡(luò)并行計(jì)算軟件
有了高速網(wǎng)絡(luò)和簡(jiǎn)潔高效的底層協(xié)議,集群并行計(jì)算軟件的任務(wù)就是在提供完備的并行計(jì)算語(yǔ)義的情況下,盡量地把底層物理性能提供給上層的并行應(yīng)用。集群(包括Beowulf)中最流行的兩個(gè)并行計(jì)算環(huán)境是PVM 和MPI。
PVM(Parallel Virtual Machine)是由美國(guó) 田納西大學(xué)、奧克里季國(guó)家實(shí)驗(yàn)室等研制的并行程序開(kāi)發(fā)環(huán)境。它可以把多個(gè)異構(gòu)的計(jì)算機(jī)組織起來(lái)成為一個(gè)易于管理的、可擴(kuò)展的、易編程使用的并行計(jì)算資源。它的各個(gè)計(jì)算結(jié)點(diǎn)可以是共享存儲(chǔ)或分布式存儲(chǔ)的多處理機(jī)或者是向量超級(jí)計(jì)算機(jī)、專(zhuān)用的圖形、標(biāo)量工作站。這些異構(gòu)的計(jì)算節(jié)點(diǎn)可以通過(guò)多種網(wǎng)絡(luò)(比如Ethernet、FDDI等等)互聯(lián),成為一個(gè)網(wǎng)絡(luò)計(jì)算虛擬機(jī)。用戶(hù)的計(jì)算任務(wù)被分配到各個(gè)計(jì)算節(jié)點(diǎn)上,多個(gè)節(jié)點(diǎn)并行運(yùn)算,從而實(shí)現(xiàn)粗粒度的并行。
PVM的免費(fèi)、開(kāi)放以及易用使其成為一個(gè)被廣泛接受的并行程序開(kāi)發(fā)環(huán)境,有很多并行機(jī)公司都宣布支持PVM、PVM 可以安裝到各種Unix、 Windows操作系統(tǒng)上運(yùn)行。所有這些又有力地促進(jìn)了PVM的推廣。現(xiàn)在所有的并行機(jī)都支持PVM3。
MPI是并行計(jì)算機(jī)的消息傳遞接口標(biāo)準(zhǔn)。指定該標(biāo)準(zhǔn)的主要目的是為了提高并行程序的可移植性和使用的方便性。有了統(tǒng)一的標(biāo)準(zhǔn),并行計(jì)算環(huán)境下的應(yīng)用軟件庫(kù)以及軟件工具就都可以透明的移植。各個(gè)廠商可以依據(jù)標(biāo)準(zhǔn)提供獨(dú)具特色和優(yōu)勢(shì)的軟件實(shí)現(xiàn)和硬件支持,從而提高并行處理的能力。
MPI沒(méi)有簡(jiǎn)單地指定某系統(tǒng)為標(biāo)準(zhǔn),而是吸取許多已經(jīng)廣泛應(yīng)用的消息傳遞系統(tǒng)的特點(diǎn)。它在采納已有系統(tǒng)優(yōu)點(diǎn)的基礎(chǔ)上,增加了許多新的特點(diǎn),從而使其成為非常有吸引力的標(biāo)準(zhǔn)
目前,集群系統(tǒng)已在許多領(lǐng)域獲得應(yīng)用??梢灶A(yù)見(jiàn),隨著 SMP產(chǎn)品的大量使用和高性能網(wǎng)絡(luò)產(chǎn)品的完善以及各種軟硬件支持的增多和系統(tǒng)軟件、應(yīng)用軟件的豐富,新一代高性能集群系統(tǒng)必將成為未來(lái)高性能計(jì)算領(lǐng)域的一種主流平臺(tái)。具有代表性的集群系統(tǒng)有IBM的SP2、SGI的POWER CHALLENGEarray、Microsoft的 Wolfpack、DEC的TruClusters、SUN的SPARCcluster 1000/2000PDB以及Berkeley NOW 等,中國(guó)國(guó)家智能計(jì)算機(jī)研究開(kāi)發(fā)中心的曙光-1000A、曙光-2000I和曙光-2000II也都屬集群系統(tǒng)。
什么是Beowulf?
集群已經(jīng)成為現(xiàn)在各高性能計(jì)算機(jī)廠商的研究熱點(diǎn)。據(jù)統(tǒng)計(jì),在全球計(jì)算能力最強(qiáng)大的500臺(tái)計(jì)算機(jī)當(dāng)中,集群所占的比重從1997年到1999年依次為1臺(tái)、2臺(tái)和76臺(tái)。集群研究的發(fā)展勢(shì)頭可見(jiàn)一斑。
Linux作為一個(gè)新興的操作系統(tǒng),以它為平臺(tái)來(lái)構(gòu)建集群有很多優(yōu)點(diǎn):
1. 廉價(jià):與Windows以及其它商品化Unix操作系統(tǒng)相比,Linux的一個(gè)顯而易見(jiàn)的優(yōu)勢(shì)就是廉價(jià)。硬件的花銷(xiāo)加上很少的軟件費(fèi)用就可以擁有一個(gè)PC工作站或服務(wù)器,這方面顯然是其它操作系統(tǒng)無(wú)法比擬的。而且Linux對(duì)于硬件的要求比Windows要低得多。一般的用戶(hù)也可以利用Linux來(lái)構(gòu)造一個(gè)高性能的集群來(lái)進(jìn)行科學(xué)計(jì)算、實(shí)驗(yàn),在很大程度上它可以替代以往昂貴的大型計(jì)算機(jī)。
2. 自由開(kāi)放:自由開(kāi)放是Linux的一個(gè)最迷人的特點(diǎn)。 Linux的開(kāi)發(fā)者從Linus 等寥寥幾人發(fā)展到全世界將近1000萬(wàn)的龐大用戶(hù)群,其擴(kuò)張速度令人刮目。Linux并不僅僅是給用戶(hù)提供了更多的選擇,更重要的是它寬闊的胸懷征服了那些好奇、上進(jìn)、富于創(chuàng)造精神和協(xié)作精神的電腦愛(ài)好者。
而開(kāi)放源碼為提高性能提供了更加廣闊的空間。開(kāi)發(fā)者可以看到這個(gè)系統(tǒng)是怎樣跑起來(lái)的,然后在操作系統(tǒng)一級(jí)進(jìn)一步提高性能便成為可能。而在Windows或者AIX這樣的操作系統(tǒng)中,得到它們的源碼已是很不容易,要想舒舒服服地從操作系統(tǒng)著手來(lái)優(yōu)化上層的大型應(yīng)用更是難上加難。
3. 高效:目前,由于還比較缺乏對(duì)Linux的性能和功能評(píng)價(jià)的系統(tǒng)科學(xué)研究,在同等硬件配置和應(yīng)用環(huán)境下,Linux與其他操作系統(tǒng)相比孰優(yōu)孰劣還不太明了。但是,已經(jīng)有不少數(shù)據(jù)說(shuō)明,作為工作站或小型服務(wù)器,Linux已經(jīng)可以與它的對(duì)手一較高低了,尤其是它的網(wǎng)絡(luò)性能以及可靠性都備受稱(chēng)贊,而這些正是一個(gè)高效集群不可缺少的。
Linux環(huán)境下的集群系統(tǒng)中比較有影響力的要屬Beowulf 集群了。Beowulf(發(fā)音為Bay oh wolf或者Bee oh wolf,這個(gè)詞來(lái)自于傳說(shuō)中斯堪的納維亞人中一個(gè)英雄的名字)集群的研究是由美國(guó)國(guó)家航空航天局(NASA)于1994年上半年發(fā)起的。1994年夏天,Thomas Sterling和Don Becker等人構(gòu)建了一臺(tái)由以太網(wǎng)連接的擁有16個(gè)DX4處理器的集群。他們把這個(gè)
集群計(jì)算機(jī)叫做Beowulf。它主要用來(lái)進(jìn)行地球、空間科學(xué)的研究。Beowulf的目的主要是使用普通的、相對(duì)廉價(jià)的計(jì)算機(jī)構(gòu)建能夠處理繁重計(jì)算的集群。此后,Beowulf的思想迅速被世界上許多研究機(jī)構(gòu)認(rèn)同和接受。 Beowulf集群的研究也熱火朝天地開(kāi)展起來(lái)。
關(guān)于究竟什么樣才能叫做一個(gè)真正的Beowulf集群,目前還沒(méi)有定論。就像我們前面提到的集群體系結(jié)構(gòu)那樣,Beowulf集群通常由服務(wù)節(jié)點(diǎn)(server node),成員節(jié)點(diǎn)(client node)通過(guò)以太網(wǎng)或者其他網(wǎng)絡(luò)連接構(gòu)成。盡管Beowulf 的初衷是使用成熟的大眾化的配件來(lái)構(gòu)建集群,現(xiàn)在也有人把為了提高性能而使用了一些專(zhuān)用部件(比如專(zhuān)用的高速互聯(lián)網(wǎng)絡(luò)等等)的集群叫做Beowulf集群。 #p#page_title#e#
在Beowulf集群上運(yùn)行的軟件是Linux、PVM和MPI。一般由服務(wù)節(jié)點(diǎn)來(lái)控制整個(gè)集群。這個(gè)服務(wù)節(jié)點(diǎn)是集群的控制臺(tái)和對(duì)外的網(wǎng)關(guān)。在規(guī)模比較大的Beowulf集群中有可能出現(xiàn)多個(gè)服務(wù)節(jié)點(diǎn)。比如,專(zhuān)門(mén)使用集群中的一個(gè)節(jié)點(diǎn)來(lái)做控制臺(tái)或統(tǒng)計(jì)整個(gè)集群的運(yùn)行狀態(tài)。通常,Beowulf集群中的成員節(jié)點(diǎn)都是啞成員,也就是說(shuō),它們不與外界交互。成員節(jié)點(diǎn)由服務(wù)結(jié)點(diǎn)來(lái)管理,做服務(wù)節(jié)點(diǎn)給它們分配的任務(wù)。
Beowulf集群與加州大學(xué)Berkley分校進(jìn)行的NOW (Network Of Workstations)項(xiàng)目的研究有非常微妙但卻很重要的區(qū)別。
Beowulf集群中的成員節(jié)點(diǎn)以及內(nèi)部連接是集群專(zhuān)用的。從這一點(diǎn)來(lái)看,Beowulf更像是一臺(tái)完整的機(jī)器,而不是一個(gè)由許多計(jì)算機(jī)組成的松散的群體。大多數(shù)集群的節(jié)點(diǎn)并沒(méi)有鍵盤(pán)、顯示器等,只是通過(guò)遠(yuǎn)程登錄來(lái)訪問(wèn)控制它們。就像CPU和內(nèi)存可以方便地安裝到主板上一樣,Beowulf的節(jié)點(diǎn)作為內(nèi)置的模塊插入 Beowulf集群中。Beowulf集群中的節(jié)點(diǎn)之間的連接(通常是高速網(wǎng)絡(luò),比如Fast Ethernet、 ATM、 Myrinet等)也是內(nèi)部專(zhuān)用的。它與集群與外界連接的普通網(wǎng)絡(luò)相隔離。這些特點(diǎn)使得Beowulf集群中的負(fù)載均衡以及結(jié)點(diǎn)之間的信賴(lài)關(guān)系變得更容易處理,因?yàn)樗鼈儾皇芡饨绲挠绊?。而且結(jié)點(diǎn)之間的通信也會(huì)高效許多。
Beowulf并不是一個(gè)軟件包,一種新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)或者內(nèi)核技術(shù)。它是一種使用跑Linux的機(jī)器來(lái)構(gòu)建并行虛擬機(jī)的思想。盡管有很多軟件(比如一些內(nèi)核的修改,PVM和MPI并行運(yùn)算庫(kù)或者一些管理工具)可以使Beowulf體系結(jié)構(gòu)更快,更容易管理和使用,但我們?nèi)匀豢梢灾皇褂肔inux來(lái)建造一個(gè)自己的Beowulf集群。一個(gè)最簡(jiǎn)單的Beowulf集群可以由兩臺(tái)互相連接并且擁有一些信任關(guān)系(比如NFS 和rsh權(quán)限)的Linux計(jì)算機(jī)組成。
Beowulf集群的重要模塊
撇開(kāi)并行應(yīng)用本身不談,跟任何集群一樣,Beowulf的性能取決于下面幾個(gè)因素:節(jié)點(diǎn)本身、節(jié)點(diǎn)之間互聯(lián)設(shè)備、底層通信軟件(包括互聯(lián)設(shè)備的驅(qū)動(dòng))、全局資源管理系統(tǒng)以及并行計(jì)算環(huán)境(PVM或MPI)等等。
對(duì)于給定的應(yīng)用問(wèn)題,在節(jié)點(diǎn)數(shù)一定的條件下,則由以下三個(gè)方面的因素來(lái)決定并行處理的速度。首先是應(yīng)用問(wèn)題求解的算法,其次是處理結(jié)點(diǎn)軟硬件的速度。另外,由于應(yīng)用問(wèn)題的不同部分之間往往有著某種數(shù)據(jù)依賴(lài)關(guān)系,不同部分之間需要進(jìn)行一定的通信,因此通信性能成了另外的一個(gè)因素。下面,我們將著重介紹高性能集群的通信子系統(tǒng):底層互聯(lián)設(shè)備、底層通信軟件以及并行計(jì)算環(huán)境。從下圖可以看到,這幾個(gè)部分對(duì)于整個(gè)集群的性能來(lái)說(shuō)都是非常重要的。
· 底層互聯(lián)網(wǎng)絡(luò)
>
在集群系統(tǒng)中,分布在各個(gè)節(jié)點(diǎn)上的進(jìn)程之間通常有大量的信息要交換,這都要通過(guò)互聯(lián)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。因此,互聯(lián)網(wǎng)絡(luò)性能的優(yōu)劣會(huì)直接影響信息交換的速率和效率,進(jìn)而影響整個(gè)集群系統(tǒng)的整體性能。
理想狀態(tài)下互聯(lián)網(wǎng)絡(luò)應(yīng)該具有以下特征:
☆?較短的通信延時(shí)(Latency)
☆?較高的通信帶寬(Bandwidth)
☆?極小的錯(cuò)誤率(Error Rate)
☆?較好的可擴(kuò)展性(Scalability)
集群中經(jīng)常使用的互聯(lián)設(shè)備有快速以太網(wǎng)、ATM網(wǎng)絡(luò)、 Myrinet以及專(zhuān)用的mesh網(wǎng)絡(luò)等等。
· 底層通信軟件
底層通信軟件是集群通信效率高低的關(guān)鍵。在這一層所要關(guān)心的問(wèn)題是協(xié)議問(wèn)題。TCP/IP協(xié)議把各種各樣異構(gòu)的機(jī)器連接起來(lái),組成一個(gè)實(shí)際的計(jì)算機(jī)網(wǎng)絡(luò)。這種強(qiáng)大的兼容性卻往往需要以效率作為代價(jià)。比如用戶(hù)的消息從發(fā)送方到接收方一般要經(jīng)過(guò)多次拷貝(從發(fā)方用戶(hù)空間拷貝到核心空間,從核心空間拷貝到接收方用戶(hù)空間以及中間進(jìn)行差錯(cuò)校驗(yàn),重發(fā)機(jī)制等等帶來(lái)的拷貝)。而統(tǒng)計(jì)表明,每增加一次拷貝,通信的效率就會(huì)降低至少20%。而在集群中,就采用一些專(zhuān)門(mén)的技術(shù)來(lái)解決這些問(wèn)題。比如用戶(hù)級(jí)通信技術(shù)用來(lái)減少通信軟件進(jìn)入操作系統(tǒng)核心的次數(shù),零拷貝技術(shù)減少消息通路上的拷貝次數(shù)等等。 #p#page_title#e#
· 網(wǎng)絡(luò)并行計(jì)算軟件
有了高速網(wǎng)絡(luò)和簡(jiǎn)潔高效的底層協(xié)議,集群并行計(jì)算軟件的任務(wù)就是在提供完備的并行計(jì)算語(yǔ)義的情況下,盡量地把底層物理性能提供給上層的并行應(yīng)用。集群(包括Beowulf)中最流行的兩個(gè)并行計(jì)算環(huán)境是PVM 和MPI。
PVM(Parallel Virtual Machine)是由美國(guó) 田納西大學(xué)、奧克里季國(guó)家實(shí)驗(yàn)室等研制的并行程序開(kāi)發(fā)環(huán)境。它可以把多個(gè)異構(gòu)的計(jì)算機(jī)組織起來(lái)成為一個(gè)易于管理的、可擴(kuò)展的、易編程使用的并行計(jì)算資源。它的各個(gè)計(jì)算結(jié)點(diǎn)可以是共享存儲(chǔ)或分布式存儲(chǔ)的多處理機(jī)或者是向量超級(jí)計(jì)算機(jī)、專(zhuān)用的圖形、標(biāo)量工作站。這些異構(gòu)的計(jì)算節(jié)點(diǎn)可以通過(guò)多種網(wǎng)絡(luò)(比如Ethernet、FDDI等等)互聯(lián),成為一個(gè)網(wǎng)絡(luò)計(jì)算虛擬機(jī)。用戶(hù)的計(jì)算任務(wù)被分配到各個(gè)計(jì)算節(jié)點(diǎn)上,多個(gè)節(jié)點(diǎn)并行運(yùn)算,從而實(shí)現(xiàn)粗粒度的并行。
PVM的免費(fèi)、開(kāi)放以及易用使其成為一個(gè)被廣泛接受的并行程序開(kāi)發(fā)環(huán)境,有很多并行機(jī)公司都宣布支持PVM、PVM 可以安裝到各種Unix、 Windows操作系統(tǒng)上運(yùn)行。所有這些又有力地促進(jìn)了PVM的推廣。現(xiàn)在所有的并行機(jī)都支持PVM3。
MPI是并行計(jì)算機(jī)的消息傳遞接口標(biāo)準(zhǔn)。指定該標(biāo)準(zhǔn)的主要目的是為了提高并行程序的可移植性和使用的方便性。有了統(tǒng)一的標(biāo)準(zhǔn),并行計(jì)算環(huán)境下的應(yīng)用軟件庫(kù)以及軟件工具就都可以透明的移植。各個(gè)廠商可以依據(jù)標(biāo)準(zhǔn)提供獨(dú)具特色和優(yōu)勢(shì)的軟件實(shí)現(xiàn)和硬件支持,從而提高并行處理的能力。
MPI沒(méi)有簡(jiǎn)單地指定某系統(tǒng)為標(biāo)準(zhǔn),而是吸取許多已經(jīng)廣泛應(yīng)用的消息傳遞系統(tǒng)的特點(diǎn)。它在采納已有系統(tǒng)優(yōu)點(diǎn)的基礎(chǔ)上,增加了許多新的特點(diǎn),從而使其成為非常有吸引力的標(biāo)準(zhǔn)
下一篇:個(gè)人集群 走近你的辦公桌