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