淺談高性能計算機(jī)集群系統(tǒng)的技術(shù)與應(yīng)用
高性能計算 ( high performance compute , HPC)是一個計算機(jī)集群系統(tǒng) , 它通過各種互聯(lián)技術(shù)將 多個計算機(jī)系統(tǒng)連接在一起 , 利用所有被連接系 統(tǒng)的綜合計算能力來處理大型計算問題。高性能 計算方法的基本原理就是將問題分為若干部分 , 而相連的每臺計算機(jī) ( 稱為節(jié)點) 均可同時參與 問題的解決 , 從而顯著縮短了解決整個問題所需 的計算時間。
本文引用地址:http://cafeforensic.com/article/202277.htm1 集群系統(tǒng)的概念 集群是以網(wǎng)絡(luò)技術(shù)連接起來的工作站或 PC 機(jī)的組合 , 這些工作站或 PC 機(jī)就像一個單獨集 成的計算資源一樣協(xié)同工作 , 這些單個的計算機(jī) 就是集群的節(jié)點 ( node) 。
1.1.1 集群計算機(jī)系統(tǒng)是并行處理的主流 集群計算機(jī)提速的前提基礎(chǔ)是微處理器和網(wǎng) 絡(luò)技術(shù)的進(jìn)步。集群計算機(jī)是利用高速通信網(wǎng)絡(luò) 將一組高性能工作站或高檔 PC 網(wǎng)絡(luò)結(jié)構(gòu)連接起 來 , 在并行程序設(shè)計及可視化人機(jī)交互集成開發(fā) 環(huán)境支持下 , 統(tǒng)一調(diào)度 , 協(xié)調(diào)處理 , 實現(xiàn)高效并 行處理的系統(tǒng)。從結(jié)構(gòu)和結(jié)點間的通信方式來看 , 它屬于分布存儲系統(tǒng) , 主要利用消息傳遞方式實 現(xiàn)各結(jié)點之間的通信。目前己實現(xiàn)和正在研究中的集群系統(tǒng)大多采用現(xiàn)有商用工作站 1 代和通用 LA N 網(wǎng)絡(luò) , 這樣既可以縮短開發(fā)周期 , 又可以利 用最新的微處理器技術(shù)。
1.1.2 集群系統(tǒng)的分類 按照應(yīng)用目的可以分成高性能計算集群和高 可用集群。高性能計算 ( High Perfermance Comput2ing) 集群 , 簡稱 HPC 集群 , 這類集群通過將多臺機(jī)器連接起來同時處理復(fù)雜的計算問題 , 提供單 個計算機(jī)不能提供的強(qiáng)大的計算能力。高可用 (High Acailability) 集群 , 簡稱 HA 集群 , 這類集 群的主要功能就是提供不間斷高可靠度的服務(wù)。按照結(jié)點的歸屬可分為專用集群和非專用集 群。在專用集群中所有的資源是共享的 , 并行應(yīng) 用可以在整個集群上運(yùn)行 , 而在非專用集群中 , 全局應(yīng)用通過竊取 CPU 時間獲得運(yùn)行。非專用機(jī) 群中由于存在本地用戶和遠(yuǎn)地用戶對處理器的競爭 , 帶來了進(jìn)程遷移和負(fù)載平衡等問題。按照結(jié)點的操作系統(tǒng)可分為 Linux 集群、So2 laris 集群、NT 集群等 ; 按照各結(jié)點是否相同可分 為同構(gòu)集群和異構(gòu)集群。同構(gòu)機(jī)群中各節(jié)點有相 似的體系并且使用相同的操作系統(tǒng) , 而異構(gòu)機(jī)群 中節(jié)點可以有不同的體系 , 運(yùn)行的操作系統(tǒng)也可 以不盡相同。按照結(jié)點的機(jī)型可分為 PC 集群、工作站集 群和 SMP 集群等。
1.1.3 集群系統(tǒng)的特點:
高可擴(kuò)展性提高 CPU 主頻和總線寬帶是最初提供計算機(jī) 性能的主要手段。但是這一手段對系統(tǒng)性能的提 供是有限的。接著人們通過增加 CPU 個數(shù)和內(nèi)存 容量來提高性能 , 于是出現(xiàn)了向量機(jī) , 對稱多處 理機(jī) ( SMP) 等。但是當(dāng) CPU 的個數(shù)超過某一閾 值 , 象 SMP 這些多處理機(jī)系統(tǒng)的可擴(kuò)展性就變得 極差。主要瓶頸在于 CPU 訪問內(nèi)存的寬帶并不能 隨著 CPU 個數(shù)的增加而有效增長。與 SMP 相反 , 集群系統(tǒng)的性能隨著 CPU 個數(shù)的增加幾乎是線性 的。 11312 高可用性集群中的一個節(jié)點失效 , 它的任務(wù)可以傳遞 給其他節(jié)點??梢杂行Х乐箚吸c失效。 11313 高性能 負(fù)載平衡集群允許系統(tǒng)同時接入更多的用戶。 11314 高性價比集群 ( Cluster) 技術(shù)是使用特定的連接方式 , 將價格相對較低符合工業(yè)標(biāo)準(zhǔn)的硬件設(shè)備結(jié)合起來 , 同時也能提供高性能相當(dāng)?shù)娜蝿?wù)處理能力。
2 影響集群系統(tǒng)并行運(yùn)算的因素
2.1.1 網(wǎng)絡(luò)性能因素 快速消息通信系統(tǒng)集群計算機(jī)是基于高速通 信網(wǎng)絡(luò)互連而構(gòu)成的系統(tǒng)。網(wǎng)絡(luò)性能的好壞對集
群計算機(jī)并行計算效率的提高、處理問題的適應(yīng) 范圍以及系統(tǒng)的可擴(kuò)展性都有很大影響。通信延 遲時間是衡量網(wǎng)絡(luò)性能的重要因素 , 它包括協(xié)議 軟件處理開銷和網(wǎng)絡(luò)硬件處理時間。高速網(wǎng)絡(luò)硬 件雖然降低了網(wǎng)絡(luò)的傳輸延遲 , 但并沒有減少通 信軟件的處理開銷 , 由于軟件處理開銷所占比重 過大 , 在很大程度上阻礙了高速網(wǎng)實際性能的提 高 , 因此 , 在使用高速網(wǎng)絡(luò)的集群系統(tǒng)中 , 影響通信系統(tǒng)性能的瓶頸己不再是網(wǎng)絡(luò)硬件的性能 , 而是通信軟件的處理開銷。傳統(tǒng) TCP/ IP 協(xié)議是為廣域網(wǎng)設(shè)計的網(wǎng)際互連 協(xié)議 , 它提供了復(fù)雜而強(qiáng)大的諸多功能 , 這些復(fù) 雜的功能必然帶來很大的軟件開銷 , 因此這種協(xié) 議并不適合集群計算機(jī)進(jìn)行并行處理。另外 , 傳 統(tǒng)協(xié)議往往是在操作系統(tǒng)核心中實現(xiàn)的 , 由操作 系統(tǒng)引入的開銷也是不容忽視的重要因素。對集 群計算機(jī)系統(tǒng)而言 , 其網(wǎng)絡(luò)系統(tǒng)分布范圍小 , 通 信鏈路可靠性高 , 系統(tǒng)結(jié)構(gòu)相對簡單。為了降低 通信軟件處理開銷 , 需要通過對高效通信協(xié)議的 研究 , 設(shè)計一種適用于集群計算機(jī)系統(tǒng)的快速消 息傳遞機(jī)制 , 為用戶提供一個低延遲、高帶寬、 高可靠的通信模式 , 達(dá)到改善系統(tǒng)性能的目的。
2.1.2 可視化并行程序開發(fā)與調(diào)試環(huán)境因素 影響并行機(jī)推廣使用的一個最重要的障礙是 在并行機(jī)上編寫、編譯、鏈接和調(diào)試程序比較困 難。目前雖然有了許多功能強(qiáng)大的并行環(huán)境 , 但 是編制高效的并行程序仍然是一件比較困難的事 情。主要是因為這些并行環(huán)境的重點都在運(yùn)行環(huán)境上 , 對編程環(huán)境的方便性和實用性注意不夠 , 缺少實用的工具。 一個友好、實用、方便的可視化人機(jī)交互集成開發(fā)環(huán)境 , 應(yīng)為應(yīng)用程序員和最終用戶提供編 輯 , 多種語言的編譯、鏈接、裝配 , 并行環(huán)境配 置 , 各節(jié)點資源使用情況顯示 , 并行任務(wù)的加載、運(yùn)行、狀態(tài)監(jiān)視和控制 , 性能評測和并行調(diào)試以 及聯(lián)機(jī)幫助等功能 , 使用戶在此環(huán)境中即可方便 地完成并行程序的編寫、編譯鏈接 , 并且通過性 能監(jiān)測分析比較并行算法 , 找出性能瓶頸 , 優(yōu)化 并行算法設(shè)計 , 并最終編寫出高效的并行程序。這對于解決并行處理技術(shù)難以實用具有現(xiàn)實意義。 并行程序的可視化是當(dāng)前并行程序環(huán)境的一個重 要趨勢 , 通過控制流和數(shù)據(jù)流模式的圖形動畫可 使程序員直觀地看到并行程序的運(yùn)行過程 , 使用 戶能形象地發(fā)現(xiàn)并行程序的瓶頸 , 為并行程序的調(diào)試及提高編譯效率提供有效的乎段。
2.1.3 程序并行化因素 計算機(jī)發(fā)展到今天 , 己經(jīng)積累了大量的應(yīng)用 軟件 , 要把這些軟件人工改寫成等價的并行軟件 是一件工作量極其龐大、也很繁瑣的工作。用戶迫切要求對現(xiàn)有的應(yīng)用軟件不作任何改動 , 就能 在并行系統(tǒng)上運(yùn)行。因此 , 設(shè)計和實現(xiàn)一個并行 化編譯系統(tǒng)是非常必要的。經(jīng)過近年來的研究 , 全自動并行化系統(tǒng)在并行化能力上有了較大提高 , 但在對某些串行程序進(jìn)行并行化后 , 生成的并行程序的加速比仍然不能令人滿意。其原因在于全 自動并行化系統(tǒng)中的相關(guān)性分析算法、數(shù)據(jù)劃分 算法和通信生成算法還不能有效地處理這些應(yīng)用 程序的復(fù)雜性。除了算法本身的能力不足外 , 缺 乏有關(guān)的程序語義信息。交互式的并行化系統(tǒng)引起人們的格外注意。交互式的并行化系統(tǒng)除了考 慮到全自動系統(tǒng)的功能和特點外 , 還允許用戶選 擇使用或不使用系統(tǒng)中的交互行為。在不使用交 互功能時 , 系統(tǒng)就成了一個全自動的并行化系統(tǒng)。 如果用戶認(rèn)為全自動的并行化效果不好 , 那么可以選擇使用交互功能來進(jìn)一步提高并行代碼質(zhì)量。
2.1.4 容錯與高可用技術(shù)因素 越來越多的應(yīng)用對計算機(jī)系統(tǒng)的性能、可靠 性和可用性提出了越來越高的要求。并行處理是 提高計算能力、滿足不斷增長的應(yīng)用需求的有效途徑。而容錯技術(shù)是提高計算可靠性和可用性的 重要保證。隨著系統(tǒng)規(guī)模的不斷擴(kuò)大 , 工作站/ PC 集群計算機(jī)在計算過程中發(fā)生故障的機(jī)會曾指 數(shù)般增長 , 同時由于集群計算機(jī)系統(tǒng)通常為多用 戶使用 , 結(jié)點等資源具有較大的可變特性。系統(tǒng)在發(fā)生各種異?;蚬收鲜录r會導(dǎo)致本次并行計 算的徹底失敗 , 此前的大量計算不能再用。要想 使集群計算機(jī)系統(tǒng)在上述領(lǐng)域廣泛應(yīng)用 , 系統(tǒng)需 要具有一定的容錯能力 , 保證在發(fā)生各種異常事 件或故障時 , 為用戶提供持續(xù)的服務(wù)。雖然實現(xiàn)容錯的方法有多種 , 但都不能有效地應(yīng)用于工作 站/ PC 集群計算機(jī)。檢查點設(shè)置與卷回恢復(fù)技術(shù) 作為一種后向恢復(fù)技術(shù) , 通過在系統(tǒng)正常運(yùn)行過 程中設(shè)置檢查點 , 保存系統(tǒng)當(dāng)時的一致性狀態(tài) , 并對各進(jìn)程進(jìn)行相關(guān)性跟蹤和記錄。系統(tǒng)發(fā)生故障后 , 將相關(guān)進(jìn)程回卷到故障前系統(tǒng)一致性狀態(tài) (檢查點) , 經(jīng)過狀態(tài)恢復(fù)后從該檢查點處重新執(zhí)行 (而不是從程序開始執(zhí)行) , 實現(xiàn)對系統(tǒng)故障的 恢復(fù) , 節(jié)省了大量重復(fù)計算時間 , 充分體現(xiàn)集群 計算機(jī)系統(tǒng)的并行性能 , 提高集群計算機(jī)系統(tǒng)的可用性。這種后向故障恢復(fù)技術(shù)不僅可以對系統(tǒng) 瞬時、間歇故障進(jìn)行自動恢復(fù) , 并且通過檢查點 文件鏡像和進(jìn)程遷移技術(shù)也可以容忍節(jié)點的永久 故障。同時也是恢復(fù)未知故障 —在某一應(yīng)用設(shè)計過程中未預(yù)料到故障的唯一乎段。
2.1.5 智能資源管理與調(diào)度因素 負(fù)載在系統(tǒng)的各處理結(jié)點上分布的均衡程度 被稱為負(fù)載平衡度。負(fù)載平衡度是影響并行效率 的重要因素。對集群計算機(jī)系統(tǒng)來說 , 如何合理 地安排和調(diào)度任務(wù) , 充分運(yùn)用各節(jié)點的處理能力 , 縮短程序的響應(yīng)時間 , 是進(jìn)行并行計算必須解決 的問題。由于集群計算機(jī)系統(tǒng)具有資源共享動態(tài) 變化的特點 , 而各節(jié)點的負(fù)載分布情況在很大程 度上影響著應(yīng)用程序的執(zhí)行效率 , 因此 , 需要為 系統(tǒng)的資源提供一種智能化的管理機(jī)制 , 以更加充分、合理地利用系統(tǒng)資源 , 加快應(yīng)用程序的執(zhí) 行速度。具體地說 , 一個智能化的資源管理與調(diào) 度系統(tǒng)至少應(yīng)具備負(fù)載與系統(tǒng)信息的監(jiān)測與采集、 負(fù)載初始分配、動態(tài)資源調(diào)度與任務(wù)遷移功能 , 除了以上技術(shù)外 , 諸如單一系統(tǒng)映像 , DSM 并行模型的支持、并行 I/ O 、并行語言等技術(shù)也是集 群計算機(jī)的主要研究內(nèi)容。
3 集群系統(tǒng)的應(yīng)用
高性能計算機(jī)系統(tǒng)一般用于解決大容量存儲、大數(shù)據(jù)量計算等需要大幅度降低處理時間以提高生產(chǎn)效率的應(yīng)用問題。許多對經(jīng)濟(jì)、科技和人類 社會的發(fā)展有廣泛影響的重大應(yīng)用問題都存在固 有的并行性。但是近幾年來由于價格、效率等因素的影響 , 傳統(tǒng)巨型機(jī)、MPP 的應(yīng)用受到一定的 限制 , 而集群計算機(jī)系統(tǒng)提供了一種建立從中小 規(guī)模到大規(guī)模并行處理系統(tǒng)的可擴(kuò)展的方法 , 是 解決許多有關(guān)國計民生的重大計算問題的可行途 徑之一。以石油地震數(shù)據(jù)處理為例。在石油地震勘探 開發(fā)工作中 , 三維地震勘探能提供比二維勘探更 精確的地下圖像 , 接近實際地反映地下真實情況 , 有效地解決地質(zhì)問題。但是 , 由于其數(shù)據(jù)量大、 計算量大、處理周期長 , 特別是由于計算量大 , 因此許多先進(jìn)的三維地震資料處理方法在大型計 算機(jī)上難以實現(xiàn)。而并行處理則為實現(xiàn)這些方法 提供了可能。另外 , 美國空間物理研究院在互聯(lián)網(wǎng)上開展 尋找外星人的集群算法活動 , 將事先由射電望遠(yuǎn) 鏡記錄的資料轉(zhuǎn)成數(shù)據(jù)庫放在網(wǎng)上 , 然后各用戶 通過該活動的網(wǎng)頁下載算法程序 , 利用空余機(jī)時 下載數(shù)據(jù)并進(jìn)行計算 , 程序自動將未計算過的數(shù) 據(jù)下載回來 , 計算完成后自動上傳到網(wǎng)站上去 , 通過全世界喜歡宇宙探索的 PC 機(jī)使用者的空余 機(jī)時完成大型機(jī)才能勝任的計算。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和對集群計算機(jī)系統(tǒng)研 究的深入 , 特別是高效通信機(jī)制的開發(fā) , 系統(tǒng)的 通信性能將會接近專用的互聯(lián)網(wǎng)絡(luò) , 并行編程環(huán) 境和工具更加完善 , 集群計算機(jī)必將對許多具有 挑戰(zhàn)性的計算問題及國民經(jīng)濟(jì)起到積極影響。
參考文獻(xiàn)
[1 ]鄭緯民. 集群系統(tǒng)的現(xiàn)狀與挑戰(zhàn)[J ] . 計算機(jī)教育 ,2004 , (6) :23
[ 2 ] 陳國良 ,吳俊敏. 高性能訓(xùn)算與高性能計算機(jī)[J ] . 2006 , (7)
[ 3 ] 劉仲. 基于對象存儲的集群存儲系統(tǒng)設(shè)計[ J ] 計算機(jī)工程與科 學(xué) ,2005 ,27 (2) :78 - 81
[ 4 ] 楊剛 ,龍海燕 ,楊 . 計算機(jī)總線發(fā)展新趨勢[J ] . 微計算機(jī)信息 , 2003 ,19 (1) :1 - 2
[ 5 ] 胡玉平. 集群計算機(jī)[J ] . 現(xiàn)代計算機(jī). 2001 , (12)
評論