青鳥(niǎo)Linux集群基礎(chǔ)
現(xiàn)在 Linux 集群在很多領(lǐng)域都已經(jīng)變得非常流行了。隨著集群技術(shù)的出現(xiàn)以及開(kāi)放源碼軟件日益得到采納,現(xiàn)在只需要傳統(tǒng)高性能機(jī)器的很少一部分成本就可以構(gòu)建一臺(tái)超級(jí)計(jì)算機(jī)了。
這兩篇系列文章簡(jiǎn)要介紹采用 Linux 集群技術(shù)的高性能計(jì)算(HPC)的概念,展示如何構(gòu)建集群并編寫并行程序。本文是兩篇系列文章中的第一篇,討論了集群的類型、用途、HPC 基礎(chǔ)、Linux 在 HPC 中的角色以及集群技術(shù)日益增長(zhǎng)的原因。第 2 部分將介紹并行算法的知識(shí),并介紹如何編寫并行程序、如何構(gòu)建集群以及如何進(jìn)行基準(zhǔn)測(cè)試。
HPC 體系架構(gòu)的類型
大部分 HPC 系統(tǒng)都使用了并行 的概念。有很多軟件平臺(tái)都是面向 HPC 的,但是首先讓我們先來(lái)了解一下硬件的知識(shí)。
HPC 硬件可以分為 3 類:
對(duì)稱多處理器(SMP)
向量處理器
集群
對(duì)稱多處理器(SMP)
SMP 是 HPC 采用的體系架構(gòu)之一,其中有多個(gè)處理器會(huì)共享內(nèi)存。(在集群中,這也稱為 大規(guī)模并行處理器(massively parallel processor,MPP),它們并不需要共享內(nèi)存;稍后我們將更詳細(xì)介紹這方面的內(nèi)容。)與 MPP 相比,SMP 通常成本更高,而且可伸縮性較差。
向量處理器
顧名思義,在向量處理器中,CPU 被優(yōu)化以便很好地處理向量數(shù)組的運(yùn)算。向量處理器系統(tǒng)的性能很高,在 20 世紀(jì) 80 年代到 90 年代早期一度在 HPC 體系架構(gòu)中占有統(tǒng)治地位,但是最近幾年以來(lái),集群變得更加流行了。
集群
集群是最近幾年中最為主要的一種 HPC 硬件:集群(cluster) 就是一組 MPP 的集合。集群中的處理器通常被稱為 節(jié)點(diǎn),它具有自己的 CPU、內(nèi)存、操作系統(tǒng)、I/O 子系統(tǒng),并且可以與其他節(jié)點(diǎn)進(jìn)行通信。目前有很多地方都使用常見(jiàn)的工作站運(yùn)行 Linux 和其他開(kāi)放源碼軟件來(lái)充當(dāng)集群中的節(jié)點(diǎn)。
接下來(lái)您將看到這些 HPC 硬件之間的區(qū)別,但是首先讓我們從集群開(kāi)始。
集群定義
術(shù)語(yǔ)“集群(cluster)”在不同的地方可能會(huì)意味著不同的意義。本文重點(diǎn)介紹以下三種類型的集群:
故障遷移集群
負(fù)載均衡集群
高性能集群
故障遷移集群
最簡(jiǎn)單的故障遷移集群有兩個(gè)節(jié)點(diǎn):一個(gè)節(jié)點(diǎn)是活動(dòng)的,另外一個(gè)節(jié)點(diǎn)是備用的,不過(guò)它會(huì)一直對(duì)活動(dòng)節(jié)點(diǎn)進(jìn)行監(jiān)視。一旦活動(dòng)節(jié)點(diǎn)出現(xiàn)故障,備用節(jié)點(diǎn)就會(huì)接管它的工作,這樣就能使得關(guān)鍵的系統(tǒng)能夠持續(xù)工作。
負(fù)載均衡集群
負(fù)載均衡集群通常會(huì)在非常繁忙的 Web 站點(diǎn)上采用,它們有多個(gè)節(jié)點(diǎn)來(lái)承擔(dān)相同站點(diǎn)的工作,每個(gè)獲取 Web 頁(yè)面的新請(qǐng)求都被動(dòng)態(tài)路由到一個(gè)負(fù)載較低的節(jié)點(diǎn)上。
高性能集群
高性能集群用來(lái)運(yùn)行那些對(duì)時(shí)間敏感的并行程序,它們對(duì)于科學(xué)社區(qū)來(lái)說(shuō)具有特殊的意義。高性能集群通常會(huì)運(yùn)行一些模擬程序和其他對(duì) CPU 非常敏感的程序,這些程序在普通的硬件上運(yùn)行需要花費(fèi)大量的時(shí)間。
計(jì)算 是一個(gè)更為廣泛的術(shù)語(yǔ),通常用來(lái)代表利用松耦合系統(tǒng)之間的協(xié)作來(lái)實(shí)現(xiàn)面向服務(wù)的架構(gòu)(SOA);诩旱 HPC 是網(wǎng)格計(jì)算的一個(gè)特例,其中節(jié)點(diǎn)之間都是緊耦合的。網(wǎng)格計(jì)算的一個(gè)成功的、眾所周知的項(xiàng)目是 SETI@home,即搜索外星智慧的項(xiàng)目,它使用了大約一百萬(wàn)臺(tái)家用 PC 在屏保時(shí)的空閑 CPU 周期來(lái)分析無(wú)線電天文望遠(yuǎn)鏡的數(shù)據(jù)。另外一個(gè)類似的成功項(xiàng)目是 Folding@Home 項(xiàng)目,用來(lái)進(jìn)行蛋白質(zhì)的折疊計(jì)算。
高性能集群的常見(jiàn)用途
幾乎所有的產(chǎn)業(yè)界都需要快速的處理能力。隨著越來(lái)越便宜而且快速的計(jì)算機(jī)的出現(xiàn),更多公司表現(xiàn)出了對(duì)利用這些技術(shù)優(yōu)勢(shì)的興趣。人們對(duì)于計(jì)算處理能力的需求是沒(méi)有上限的;盡管處理能力在迅速提高,但是人們的需求仍然超出計(jì)算能力所能提供的范圍。
生命科學(xué)研究
蛋白質(zhì)分子是非常復(fù)雜的鏈,實(shí)際上可以表示為無(wú)數(shù)個(gè) 3D 圖形。實(shí)際上,在將蛋白質(zhì)放到某種溶液中時(shí),它們會(huì)快速“折疊”成自己的自然狀態(tài)。不正確的折疊會(huì)導(dǎo)致很多疾病,例如 Alzheimer 病;因此,對(duì)于蛋白質(zhì)折疊的研究非常重要。
科學(xué)家試圖理解蛋白質(zhì)折疊的一種方式是通過(guò)在計(jì)算機(jī)上進(jìn)行模擬。實(shí)際上,蛋白質(zhì)的折疊進(jìn)行得非常迅速(可能只需要 1 微秒),不過(guò)這個(gè)過(guò)程卻非常復(fù)雜,這個(gè)模擬在普通的計(jì)算機(jī)上可能需要運(yùn)行 10 年。這個(gè)領(lǐng)域只不過(guò)是諸多業(yè)界領(lǐng)域中很小的一個(gè),但是它卻需要非常強(qiáng)大的計(jì)算能力。
業(yè)界中其他領(lǐng)域包括制藥建模、虛擬外科手術(shù)訓(xùn)練、環(huán)境和診斷虛擬化、完整的醫(yī)療記錄數(shù)據(jù)庫(kù)以及人類基因項(xiàng)目。
石油和天然氣勘探
震動(dòng)圖中包含有大陸和洋底內(nèi)部特性的詳細(xì)信息,對(duì)這些數(shù)據(jù)進(jìn)行分析可以幫助我們探測(cè)石油和其他資源。即便對(duì)于一個(gè)很小的區(qū)域來(lái)說(shuō),也有數(shù)以 TB 計(jì)的數(shù)據(jù)需要重構(gòu);這種分析顯然需要大量的計(jì)算能力。這個(gè)領(lǐng)域?qū)τ谟?jì)算能力的需求是如此旺盛,以至于超級(jí)計(jì)算機(jī)大部分都是在處理這種工作。
其他地理學(xué)方面的研究也需要類似的計(jì)算能力,例如用來(lái)預(yù)測(cè)地震的系統(tǒng),用于安全性工作的多譜段衛(wèi)星成像系統(tǒng)。
圖像呈現(xiàn)
在工程領(lǐng)域(例如航天引擎設(shè)計(jì))操縱高分辨率的交互式圖像在性能和可伸縮性方面歷來(lái)都是一種挑戰(zhàn),因?yàn)檫@要涉及大量的數(shù)據(jù)。基于集群的技術(shù)在這些領(lǐng)域已經(jīng)取得了成功,它們將渲染屏幕的任務(wù)分割到集群中的各個(gè)節(jié)點(diǎn)上,在每個(gè)節(jié)點(diǎn)上都利用自己的圖形硬件來(lái)呈現(xiàn)自己這部分屏幕的圖像,并將這些像素信息傳送到一個(gè)主節(jié)點(diǎn)上,主節(jié)點(diǎn)對(duì)這些信息進(jìn)行組合,最終形成一個(gè)完整的圖像。
這個(gè)領(lǐng)域中的例子目前才不過(guò)是冰山一角;更多的應(yīng)用程序,包括天體物理模擬、氣象模擬、工程設(shè)計(jì)、金融建模、證券模擬以及電影特技,都需要豐富的計(jì)算資源。對(duì)于計(jì)算能力越來(lái)越多的需求我們就不再進(jìn)行介紹了。
Linux 和集群如何改變了 HPC
在基于集群的計(jì)算技術(shù)出現(xiàn)之前,典型的超級(jí)計(jì)算機(jī)都是向量處理器,由于它們?nèi)坎捎脤S玫挠布蛙浖,因此成本通常?huì)超過(guò)一百萬(wàn)美元。
隨著 Linux 和其他免費(fèi)的集群開(kāi)放源碼軟件組件的出現(xiàn)和常用硬件處理能力的提高,這種情況現(xiàn)在已經(jīng)發(fā)生了很大的變化。您可以利用少量的成本來(lái)構(gòu)建功能強(qiáng)大的集群,并能夠根據(jù)需要來(lái)添加其他節(jié)點(diǎn)。
本文由站河南北大青鳥(niǎo)校區(qū)整編而成,如需了解更多IT資訊類的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問(wèn)題,可以對(duì)在線咨詢老師進(jìn)行一對(duì)一問(wèn)答!
推薦資訊
- 使用ping命令自測(cè)網(wǎng)絡(luò)故障... 2013-02-05
- Linux系統(tǒng)下如何檢測(cè)CC攻擊呢?... 2013-05-15
- 2015開(kāi)門紅,北大青鳥(niǎo)再次獲得“... 2015-02-27
- 在鄭州學(xué)IT選擇哪家培訓(xùn)機(jī)構(gòu)比較... 2023-12-22
- 北大青鳥(niǎo):如何利用Win 2003實(shí)現(xiàn)網(wǎng)... 2012-10-13
熱點(diǎn)資訊
- Windows Server 2008 R2如何修改... 2018-09-07
- 常見(jiàn)的五個(gè)Web應(yīng)用漏洞介紹與其解... 2018-09-07
- 刪除遠(yuǎn)程桌面連接IP記錄... 2018-09-07
- 自己動(dòng)手解決服務(wù)器上的安全問(wèn)題... 2018-09-07
- 鄭州北大青鳥(niǎo)學(xué)術(shù)交流:服務(wù)器數(shù)... 2018-09-07