亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 761 | 回復(fù): 0
打印 上一主題 下一主題

利用Beowulf讓普通PC變集群 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-04-03 14:44 |只看該作者 |倒序瀏覽
  現(xiàn)在,Linux在IT業(yè)里已經(jīng)有著非常重要
的影響,除了其具有免費、高效、可靠等優(yōu)勢外,對于計算機科學(xué)家和那些需要進行大量運算的科學(xué)家來說,它還是一個非常強大的工具。自從Donald
Becker發(fā)起了Beowulf集群計算以后,在NASA的Goddard Space Flight Center工作的Thomas
Sterling又擴展了Linux在高性能并行計算領(lǐng)域的應(yīng)用。今天,大量以普通PC為基礎(chǔ)的集群出現(xiàn)在了各個級別的實驗室、工業(yè)科技中心、大學(xué)甚至是
一些小的學(xué)院中。如果有人問你是否一個有關(guān)科學(xué)計算的問題可以通過一些松散的計算資源來解決?答案是當(dāng)然可以。我們可以使用Beowulf集群,它可以使
用很多普通的PC做成一個集群來解決我們所面臨的問題,并且這種集群所具有的價格優(yōu)勢是傳統(tǒng)的并行計算機所無法比擬的。
  如何創(chuàng)建一個Beowulf集群
 
 事實上,使用現(xiàn)有的PC或者不用的舊PC,任何人都可以構(gòu)建一個自己的并行系統(tǒng)來練習(xí)并行編程或者進行并行運算。在一個計算機實驗室里,我們可以將PC
機做成雙啟動系統(tǒng)(可以根據(jù)需要進入Windows或者Linux),將其用作兩種用途。此外,對于那些已經(jīng)不再使用的機器則可以像Stone
SouperComputer一樣做成一個并行的運算系統(tǒng)。
  沒有兩個Beowulf集群是完全相同的。事實上,這種系統(tǒng)的硬件和
軟件的配置是如此的靈活,以致于其可以被輕松定制成為不同的組合。雖然每一個Beowulf集群系統(tǒng)都是不同的,并且其配置也是根據(jù)應(yīng)用程序的需要來進行
的,但還是有一些基本要求是相同的。下面我們就來看一看在創(chuàng)建一個集群時需要考慮的一些基本問題。
  創(chuàng)建一個集群的最低需求
 
 要創(chuàng)建一個集群,每一個節(jié)點至少應(yīng)該包含有一個Intel 486 CPU和主板。雖然Intel
386也可以正常工作,但其性能將不值得我們?yōu)橹冻鰟趧印?nèi)存的需求則取決于目標(biāo)應(yīng)用程序的需求,但每一個節(jié)點至少需要16MB的內(nèi)存。大部分應(yīng)用程序
都會要求每一個節(jié)點具有32MB以上的內(nèi)存。通過使用集中式的磁盤空間,節(jié)點可以從軟盤、小容量的硬盤或者網(wǎng)絡(luò)文件系統(tǒng)啟動。啟動以后,節(jié)點可以通過網(wǎng)絡(luò)
訪問文件系統(tǒng)中屬于自己的Root分區(qū),這種訪問一般都是通過NFS(網(wǎng)絡(luò)文件系統(tǒng))來實現(xiàn)的。在一個具有高帶寬和高性能服務(wù)器的環(huán)境中,這種配置的工作
狀態(tài)將非常不錯。要想獲得更好的性能,應(yīng)該在本地磁盤上安裝有操作系統(tǒng)、交換分區(qū),并且數(shù)據(jù)可以在每一個節(jié)點獲得。每一個節(jié)點應(yīng)該至少有200MB的磁盤
空間用于存放操作系統(tǒng)組件和用作交換空間,還應(yīng)該有400MB或者更多的空間保留用于程序運行中使用。每一個節(jié)點至少要包含有一個網(wǎng)卡(最好是高速網(wǎng)
卡)。最后,每一個節(jié)點都需要一個顯卡,一個硬驅(qū)和一個電源。鍵盤和顯示器則只有在進行系統(tǒng)安裝和配置時需要。
  需要注意的是,所
有選擇使用的硬件在Linux中都要有驅(qū)動程序或者相應(yīng)的模塊,一般來說,除非這些硬件非常陳舊,否則都不是問題。對于需要對整個集群進行管理的主節(jié)點來
說,為了方便起見,最好安裝一個X服務(wù)器。安裝過程中,如果某一個特定的組件出現(xiàn)問題或者沒有驅(qū)動程序,可以到論壇中尋求幫助。
  網(wǎng)絡(luò)連接
 
 如果可能,每一個節(jié)點最好處于一個單獨的局域網(wǎng)中,并且擁有一個自己的Hub。這樣可以保證網(wǎng)絡(luò)通信能夠順暢進行。集群中的第一個或者主節(jié)點應(yīng)該具有兩
個網(wǎng)卡,其中一個與內(nèi)部網(wǎng)絡(luò)相連,另外一個與公共網(wǎng)絡(luò)相連。這對于用戶登錄和文件傳輸尤為有用。在內(nèi)部網(wǎng)絡(luò)中,需要使用不在
Internet上使用的IP地址。一般來說,最簡單的辦法就是A類10.0.0.0地址,因為這些地址是專門為那些沒有路由的網(wǎng)絡(luò)保留的。在本例中,每
一個節(jié)點的/etc/hosts文件看起來如下所示:
10.0.0.1 node110.0.0.2 node210.0.0.3 node310.0.0.4 node4
  每一個節(jié)點的/etc/hosts.equiv文件應(yīng)該如下所示:
node1node2node3node4.
  一個節(jié)點號為2,使用Red Hat Linux的ifcfg-eth0配置文件如下所示:
DEVICE=eth0IPADDR=10.0.0.2NETMASK=255.0.0.0NETWORK=10.0.0.0BROADCAST=10.255.255.255ONBOOT=yes
  此外,我們還經(jīng)常需要一個DNS,對于那些節(jié)點名字和地址經(jīng)常變化的內(nèi)部網(wǎng)絡(luò)更是如此。DNS可以運行在第一個節(jié)點來為內(nèi)部網(wǎng)絡(luò)的節(jié)點提供名字/地址的解析。
  本地存儲
 
 在加載操作系統(tǒng)的問題上,創(chuàng)建Beowulf集群需要預(yù)先做一些存儲方面配置的決定。因為一旦安裝完成后要進行更改就要重新安裝所有的節(jié)點,所以一定要
進行非常細致的考慮。雖然大部分基于Linux的Beowulf集群運行的是都是Red Hat
Linux發(fā)行版,但事實上,基本上所有的Linux發(fā)行版都支持基本的集群。Red
Hat的安裝非常簡單,我們可以使用光盤或者通過集群的第一個節(jié)點進行安裝(前提是在節(jié)點上已經(jīng)有一份發(fā)行版拷貝)。在實際的使用過程中,很多人發(fā)現(xiàn)從主
節(jié)點通過FTP把操作系統(tǒng)加載到每一個節(jié)點要比通過NFS掛載Root分區(qū)好。這種方法避免了一些不必要的網(wǎng)絡(luò)通信,在應(yīng)用程序運行時保留帶寬用于信息的
傳送。
  Red Hat
Linux運行環(huán)境只需要每一個節(jié)點有大約100MB的磁盤空間,不過,在實踐中發(fā)現(xiàn)在每一個節(jié)點包含一個編譯和一些其它的工具還是非常必要。因此,在配
置中,每一個操作系統(tǒng)需要大約175MB的磁盤空間。雖然有一些集群將交換分區(qū)配置在了普通的文件系統(tǒng)上,但在本地磁盤上使用一個專門的交換分區(qū)才是一個
更高效的選擇。一般而言,節(jié)點的交換空間的大小應(yīng)該是內(nèi)存的2倍,而當(dāng)內(nèi)存大于64MB時,交換空間應(yīng)該等于內(nèi)存的大小。在實際中,當(dāng)內(nèi)存為64MB至
128MB時,我們通常將交換分區(qū)設(shè)為128MB。因此,如果某一個節(jié)點有32MB內(nèi)存,有2個硬盤,那么我們就應(yīng)該將Linux系統(tǒng)加載至主驅(qū)動上,而
將另外一個硬盤用作交換空間(64MB)和本地運行空間(138MB)。
  集群管理
  系統(tǒng)管理
和維護是一件非常乏味的工作,對于大型的集群更是如此。不過,我們可以從網(wǎng)上找到一些工具和腳本來簡化這些工作。比如,一個節(jié)點必須在時間和系統(tǒng)文件
(/etc/passwd、/etc/group、/etc/hosts、/etc/hosts.equiv等)上與其它的節(jié)點保持同步,那么一個簡單的
可以被cron定時執(zhí)行的腳本將可以來完成這個同步過程。
  一旦所有的節(jié)點都加載和配置完成后,我們就可以來開發(fā)和設(shè)計并行應(yīng)用程序來充分利用新系統(tǒng)的運算能力。
  為集群計算開發(fā)并行應(yīng)用程序
 
 在Linux下,我們可以使用商業(yè)編譯器,也可以使用免費的編譯器。GCC、g++和FORTRAN(g77)編譯器被包含在了大部分的Linux發(fā)行
版中。其中C和C++編譯器已經(jīng)非常優(yōu)秀,而FORTRAN編譯器也在不斷的進步之中。商業(yè)編譯器則可以從Absoft、 Portland
Group、The Numerical Algorithms
Group等公司獲取。如果配置適當(dāng),一些商業(yè)的FORTRAN-90編譯器可以自動實現(xiàn)并行計算。一般來說,開發(fā)并行代碼需要在處理器之間使用PVM
(并行虛擬機)、MPI(信息傳送接口)或者其它的通信庫來進行清晰的信息傳遞。PVM和MPI都是免費的,并且可以在計算的過程中通過簡單的庫調(diào)用來實
現(xiàn)節(jié)點的之間的信息傳遞。
  當(dāng)然,并不是所有的計算任務(wù)都適合用并行計算來實現(xiàn)。一般而言,為了充分利用并行計算的優(yōu)勢,通常要對
針對任務(wù)進行一些開發(fā)工作。很多科學(xué)問題都可以進行細分,也就是可以將其分解為相對獨立的模塊,以使其可以在各個獨立的節(jié)點進行處理。比如,圖像處理任務(wù)
通常可以再細分,讓每一個節(jié)點都可以處理某一部分的圖像。當(dāng)某一圖像可以被獨立處理時(比如處理這部分圖像不需要其它部分的信息),效果更好。
 
 對于并行計算來說,最危險的缺陷就是將一個計算問題變成了一個通信問題(不管是使用現(xiàn)有的并行運算代碼還是自己新開發(fā)代碼)。這種問題一般發(fā)生在將任務(wù)
過分細化,從而使得各個節(jié)點為了保持同步而傳輸數(shù)據(jù)的時間超過了CPU進行計算的時間。在這種情況下,使用更少的節(jié)點反而可能會獲得更多的運行時間和更充
分地利用資源。這就是說,對于不同的并行應(yīng)用程序而言,要根據(jù)本地節(jié)點計算的負載和通信來進行調(diào)整和優(yōu)化。
  最后要說的是,在開發(fā)
并行算法時,如果所使用的集群環(huán)境的節(jié)點各不相同,那么就要充分考慮到這個問題。事實上,在運行并行應(yīng)用程序時,各個節(jié)點間CPU的速度是非常關(guān)鍵的,因
此,在一個配置不同的集群中,只簡單地將任務(wù)平均分配,那么速度比較快的CPU就必須要等待速度比較慢的
CPU完成自己的任務(wù),這顯然是不合理的。因此,設(shè)計適當(dāng)?shù)乃惴ǹ梢院芎玫靥幚磉@種情況,當(dāng)然,不管采用什么樣的算法,一定要充分考慮到通信過載問題。
  并行處理可以以很多種方式來組織,但是master/Slave的組織方式是最易于理解和編寫程序的。在這種模式中,一個節(jié)點作為
master,而另外一個則作為Slave。Master節(jié)點通常決定如何分割任務(wù),以及指揮信息的傳送,而Slave節(jié)點則只負責(zé)處理分配到的任務(wù),并
在任務(wù)完成的時候向master報告。
  總結(jié)
  事實上,在開發(fā)并行代碼時,并沒有嚴格的規(guī)定,
而是要根據(jù)實際情況來進行。優(yōu)化硬件配置和算法的前提是要知道所要運行的應(yīng)用程序的細節(jié)。在各個節(jié)點配置不同的集群中,在各個節(jié)點中進行負載平衡以及各個
節(jié)點中的通信都取決于硬件的具體情況。在通信速度快的環(huán)境里,可以將任務(wù)分得更細,反之則不宜將任務(wù)過分細化。
  應(yīng)該說
“Beowulf運動”將并行計算大眾化了。在Beowulf系統(tǒng)中使用標(biāo)準(zhǔn)信息傳送庫開發(fā)的并行代碼可以不經(jīng)過任何更改就直接運行在商業(yè)級的超級計算機
之上。因此,Beowulf集群可以作為一個入門的切入點,在需要時再將其過渡到大型機上。此外,廉價、通用的集群意味著并行計算機環(huán)境可以用于特定的任
務(wù),而大型的商業(yè)超級計算機由于其過于昂貴,故不可能使其專注于某個單一的應(yīng)用程序。很顯然,隨著并行環(huán)境越來越多地被應(yīng)用到現(xiàn)實工作,將會更進一步促進
其在各個領(lǐng)域的應(yīng)用。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/24409/showart_516277.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP