高性能計(jì)算(縮寫HPC)指通常使用很多處理器(作為單個(gè)機(jī)器的一部分)或者某一集群中組織的幾臺(tái)計(jì)算機(jī)(作為單個(gè)計(jì) 算資源操作)的計(jì)算系統(tǒng)和環(huán)境。有許多類型的HPC系統(tǒng),其范圍從標(biāo)準(zhǔn)計(jì)算機(jī)的大型集群,到高度專用的硬件。
本文參考自“高性能計(jì)算知識(shí)匯總”及“OpenMP編譯原理及實(shí)現(xiàn)”,高性能計(jì)算應(yīng)用特征剖析、超級(jí)計(jì)算機(jī)研究報(bào)告、深度報(bào)告:GPU研究框架、《高性能計(jì)算和超算專題》。
大多數(shù)基于集群的HPC系統(tǒng)使用高性能網(wǎng)絡(luò)互連,比如那些來自InfiniBand或Myrinet的網(wǎng)絡(luò)互連?;镜木W(wǎng)絡(luò)拓?fù)浜徒M織可以使用一個(gè)簡單的總線拓?fù)洌谛阅芎芨叩沫h(huán)境中,網(wǎng)狀網(wǎng)絡(luò)系統(tǒng)在主機(jī)之間提供較短的潛伏期,所以可改善總體網(wǎng)絡(luò)性能和傳輸速率。
高性能計(jì)算硬件結(jié)構(gòu)和總體結(jié)構(gòu)
高性能計(jì)算拓?fù)浣Y(jié)構(gòu),從硬件結(jié)構(gòu)上,高性能計(jì)算系統(tǒng)包含計(jì)算節(jié)點(diǎn)、IO節(jié)點(diǎn)、登錄節(jié)點(diǎn)、管理節(jié)點(diǎn)、高速網(wǎng)絡(luò)、存儲(chǔ)系統(tǒng)等組成。
高性能計(jì)算集群性能指標(biāo)
FLOPS是指每秒浮點(diǎn)運(yùn)算次數(shù),F(xiàn)lops用作計(jì)算機(jī)計(jì)算能力的評(píng)價(jià)系數(shù)。根據(jù)硬件配置和參數(shù)可以計(jì)算出高性能計(jì)算集群的理論性能。
1) CPU理論性能計(jì)算方法(以Intel CPU為例)
單精度:主頻*(向量位寬/32)*2 雙精度:主頻*(向量位寬/64)*2 2代表乘積指令
2) GPU理論性能計(jì)算方法(以NVIDIA GPU為例)
單精度:指令吞吐率*運(yùn)算單元數(shù)量*頻率
3) MIC理論性能計(jì)算方法(以Intel MIC為例)
單精度:主頻*(向量位寬/32)*2 雙精度:主頻*(向量位寬/64)*2 2代表乘積指令 通過利用測試程序?qū)ο到y(tǒng)進(jìn)行整體計(jì)算能力進(jìn)行評(píng)價(jià)。
Linapck測試:采用主元高斯消去法求解雙精度稠密線性代數(shù)方程組,結(jié)果按每秒浮點(diǎn)運(yùn)算次數(shù)(flops)表示。
HPL:針對(duì)大規(guī)模并行計(jì)算系統(tǒng)的測試,其名稱為HighPerformanceLinpack(HPL),是第一個(gè)標(biāo)準(zhǔn)的公開版本并行Linpack測試軟件包。用于TOP500與國內(nèi)TOP100排名依據(jù)。
同構(gòu)計(jì)算節(jié)點(diǎn)
同構(gòu)計(jì)算節(jié)點(diǎn)是指集群中每個(gè)計(jì)算節(jié)點(diǎn)完全有CPU計(jì)算資源組成,目前,在一個(gè)計(jì)算節(jié)點(diǎn)上可以支持單路、雙路、四路、八路等CPU計(jì)算節(jié)點(diǎn)。
異構(gòu)計(jì)算節(jié)點(diǎn)
異構(gòu)計(jì)算技術(shù)從80年代中期產(chǎn)生,由于它能經(jīng)濟(jì)有效地獲取高性能計(jì)算能力、可擴(kuò)展性好、計(jì)算資源利用率高、發(fā)展?jié)摿薮?,目前已成為并?分布計(jì)算領(lǐng)域中的研究熱點(diǎn)之一。異構(gòu)計(jì)算的目的一般是加速和節(jié)能。目前,主流的異構(gòu)計(jì)算有:CPU+GPU,CPU+MIC,CPU+FPGA
常見的并行文件系統(tǒng)
PVFS:Clemson大學(xué)的并行虛擬文件系統(tǒng)(PVFS) 項(xiàng)目用來為運(yùn)行Linux操作系統(tǒng)的PC群集創(chuàng)建一個(gè)開放源碼的并行文件系統(tǒng)。PVFS已被廣泛地用作臨時(shí)存儲(chǔ)的高性能的大型文件系統(tǒng)和并行I/O研究的基礎(chǔ)架構(gòu)。作為一個(gè)并行文件系統(tǒng),PVFS將數(shù)據(jù)存儲(chǔ)到多個(gè)群集節(jié)點(diǎn)的已有的文件系統(tǒng)中,多個(gè)客戶端可以同時(shí)訪問這些數(shù)據(jù)。
Lustre,一種平行分布式文件系統(tǒng),通常用于大型計(jì)算機(jī)集群和超級(jí)電腦。Lustre是源自Linux和Cluster的混成詞。于2003年發(fā)布Lustre 1.0。采用GNU GPLv2開源碼授權(quán)。
集群管理系統(tǒng)的主要功能
目前,幾大主流服務(wù)器廠商都提供了自己的集群管理系統(tǒng),如浪潮的Cluster Engine,曙光的Gridview,HP的Serviceguard,IBM Platform Cluster Manager等等。集群管理系統(tǒng)主要提供一項(xiàng)的功能:
1)監(jiān)控模塊:監(jiān)控集群中的節(jié)點(diǎn)、網(wǎng)絡(luò)、文件、電源等資源的運(yùn)行狀態(tài)。動(dòng)態(tài)信息、實(shí)況信息、歷史信息、節(jié)點(diǎn)監(jiān)控??梢员O(jiān)控整個(gè)集群的運(yùn)行狀態(tài)及各個(gè)參數(shù)。
2)用戶管理模塊:管理系統(tǒng)的用戶組以及用戶,可以對(duì)用戶組以及用戶進(jìn)行查看,添加,刪除和編輯等操作。
3)網(wǎng)絡(luò)管理模塊:系統(tǒng)中的網(wǎng)絡(luò)的管理。
4)文件管理:管理節(jié)點(diǎn)的文件,可以對(duì)文件進(jìn)行上傳、新建、打開、復(fù)制、粘貼、重命名、打包、刪除和下載等操作。
5)電源管理模塊:系統(tǒng)的自動(dòng)和關(guān)閉等。
6)作業(yè)提交和管理模塊:提交新作業(yè),查看系統(tǒng)中的作業(yè)狀態(tài),并可以對(duì)作業(yè)進(jìn)行執(zhí)行和刪除等操作。還可以查看作業(yè)的執(zhí)行日志。
7)友好的圖形交互界面:現(xiàn)在的集群管理系統(tǒng)都提供了圖形交互界面,可以更方便的使用和管理集群。
集群作業(yè)調(diào)度系統(tǒng)
關(guān)于目前主流的HPC作業(yè)調(diào)度系統(tǒng)有:LSF/Slurm/PBS/SGE,他們分別也都有一些衍生版本,所以,有人也將他們稱為四大流派。
下表列出了目前主要使用的 HPC作業(yè)調(diào)度管理系統(tǒng):PBS/Torque、Slurm、LSF、SGE 和 LoadLeveler使用的常用命令、環(huán)境變量和作業(yè)規(guī)范選項(xiàng),這些作業(yè)調(diào)度管理器中的每一個(gè)都具有獨(dú)特的功能,但最常用的功能在表中列出的所有這些環(huán)境中都可用。
集群管理系統(tǒng)中最主要的模塊為作業(yè)調(diào)度系統(tǒng),目前,主流的作業(yè)調(diào)度系統(tǒng)都是基于PBS的實(shí)現(xiàn)。PBS(Portable Batch System)最初由NASA的Ames研究中心開發(fā),主要為了提供一個(gè)能滿足異構(gòu)計(jì)算網(wǎng)絡(luò)需要的軟件包,用于靈活的批處理,特別是滿足高性能計(jì)算的需要,如集群系統(tǒng)、超級(jí)計(jì)算機(jī)和大規(guī)模并行系統(tǒng)。
PBS的主要特點(diǎn)有:代碼開放,免費(fèi)獲?。恢С峙幚?、交互式作業(yè)和串行、多種并行作業(yè),如MPI、PVM、HPF、MPL;PBS是功能最為齊全,歷史最悠久,支持最廣泛的本地集群調(diào)度器之一。
PBS的目前包括openPBS, PBS Pro和Torque三個(gè)主要分支.其中OpenPBS是最早的PBS系統(tǒng),目前已經(jīng)沒有太多后續(xù)開發(fā), PBS pro是PBS的商業(yè)版本,功能最為豐富. Torque是Clustering公司接過了OpenPBS,并給與后續(xù)支持的一個(gè)開源版本。PBS主要有如下特征:
1)易用性:為所有的資源提供統(tǒng)一的接口,易于配置以滿足不同系統(tǒng)的需求, 靈活的作業(yè)調(diào)度器允許不同系統(tǒng)采用自己的調(diào)度策略。
2)移植性:符合POSIX 1003.2標(biāo)準(zhǔn),可以用于shell和批處理等各種環(huán)境。
3)適配性:可以適配與各種管理策略,并提供可擴(kuò)展的認(rèn)證和安全模型。支 持廣域網(wǎng)上的負(fù)載的動(dòng)態(tài)分發(fā)和建立在多個(gè)物理位置不同的實(shí)體上的虛 擬組織。
4)靈活性:支持交互和批處理作業(yè)。torque PBS提供對(duì)批處理作業(yè)和分散的計(jì)算節(jié)點(diǎn)(Compute nodes)的控制。
2016年Altair基于PBS Pro提供了開源許可版本,其與MRJ于1998年發(fā)布的原始開源版本兩者合二為一大致就是現(xiàn)在的OpenPBS。與Pro版本比,多了很多限制,但都支持Linux和Windows。
Slurm全稱為Simple Linux Utility for Resource Management,前期主要由勞倫斯利弗莫爾國家實(shí)驗(yàn)室、SchedMD、Linux NetworX、Hewlett-Packard 和 Groupe Bull 負(fù)責(zé)開發(fā),受到閉源軟件Quadrics RMS的啟發(fā)。 Slurm最新版本為22.05,目前由社區(qū)和SchedMD公司共同維護(hù),保持開源和免費(fèi),由SchedMD公司提供商業(yè)支持,僅支持Linux系統(tǒng),最大節(jié)點(diǎn)數(shù)量超過12萬。 Slurm擁有容錯(cuò)率高、支持異構(gòu)資源、高度可擴(kuò)展等優(yōu)點(diǎn),每秒可提交超過1000個(gè)任務(wù),且由于是開放框架,高度可配置,擁有超過100種插件,因此適用性相當(dāng)強(qiáng)。
基于LSF(Load Sharing Facility)的調(diào)度器主要有Spectrum LSF、PlatformLSF、OpenLava三家。 早期的LSF是由Toronto大學(xué)開發(fā)的Utopia系統(tǒng)發(fā)展而來。
2007年,Platform Computing基于早期老版本的LSF開源了一個(gè)簡化版Platform Lava。 這個(gè)開源項(xiàng)目2011年中止了,被OpenLava接手。2011年,Platform員工David Bigagli基于Platform Lava的派生代碼創(chuàng)建了OpenLava 1.0。2014年,一些Platform的員工成立了Teraproc公司,為OpenLava提供開發(fā)和商業(yè)支持。2016年IBM就LSF版權(quán)對(duì)Teraproc公司發(fā)起訴訟,2018年IBM勝訴,OpenLava被禁用。
2011年,Platform Lava開源項(xiàng)目中止后。2012年1月,IBM收購了Platform Computing。Spectrum LSF就是IBM收購后推出的商用版本,目前更新到10.1.0,同時(shí)支持Linux和Windows,最大節(jié)點(diǎn)數(shù)超過6000,在國內(nèi)提供商業(yè)支持。
Platform LSF是LSF的早期版本,與Spectrum LSF一樣屬于IBM,目前版本是9.1.3,目測已經(jīng)停止更新以維護(hù)為主。
在這三個(gè)調(diào)度器中,僅有Spectrum LSF支持Auto-Scale集群自動(dòng)伸縮功能,同時(shí)該調(diào)度器還可通過LSF resourceconnector實(shí)現(xiàn)溢出到云,支持云廠商包括AWS、Azure、Google Cloud。
并行編程模型
消息傳遞接口(Message Passing Interface, MPI),MPI是一種基于消息傳遞的并行編程技術(shù)。MPI程序是基于消息傳遞的并行程序。消息傳遞指的是并行執(zhí)行的各個(gè)進(jìn)程具有自己獨(dú)立的堆棧和代碼段,作為互不相關(guān)的多個(gè)程序獨(dú)立執(zhí)行,進(jìn)程之間的信息交互完全通過顯示地調(diào)用通信函數(shù)來完成。
1) MPI是一個(gè)庫,而不是一門語言。
2) MPI是一種標(biāo)準(zhǔn)或規(guī)范的代表,而不特指某一個(gè)對(duì)它的具體實(shí)現(xiàn),迄今為止,所有的并行計(jì)算機(jī)制造商都提供對(duì)MPI的支持,可以在網(wǎng)上免費(fèi)得到MPI在不同并行計(jì)算機(jī)上的實(shí)現(xiàn),一個(gè)正確的MPI程序可以不加修改地在所有的并行機(jī)上運(yùn)行。
3) MPI是一種消息傳遞編程模型,并成為這種編程模型的代表。事實(shí)上,標(biāo)準(zhǔn)MPI雖然很龐大,但是它的最終目的是服務(wù)于進(jìn)程間通信這一目標(biāo)。常見MPI類型有以下幾類:
1) OpenMPI
OpenMPI是一種高性能消息傳遞庫,它是MPI-2標(biāo)準(zhǔn)的一個(gè)開源實(shí)現(xiàn),由一些科研機(jī)構(gòu)和企業(yè)一起開發(fā)和維護(hù)。因此,OpenMPI能夠從高性能社區(qū)中獲得專業(yè)技術(shù)、工業(yè)技術(shù)和資源支持,來創(chuàng)建最好的MPI庫。OpenMPI提供給系統(tǒng)和軟件供應(yīng)商、程序開發(fā)者和研究人員很多便利。易于使用,并運(yùn)行本身在各種各樣的操作系統(tǒng),網(wǎng)絡(luò)互連,以及一批/調(diào)度系統(tǒng)。
下載地址:http://www.open-mpi.org/
2) Intel MPI
Intel MPI是Intel編譯器中支持的MPI版本。
3) MPICH
MPICH是MPI標(biāo)準(zhǔn)的一種最重要的實(shí)現(xiàn),可以免費(fèi)從網(wǎng)上下載。MPICH的開發(fā)與MPI規(guī)范的制訂是同步進(jìn)行的,因此MPICH最能反映MPI的變化和發(fā)展。MPICH的開發(fā)主要是由Argonne National Laboratory和Mississippi State University共同完成的,在這一過程中IBM也做出了自己的貢獻(xiàn),但是MPI規(guī)范的標(biāo)準(zhǔn)化工作是由MPI論壇完成的。MPICH是MPI最流行的非專利實(shí)現(xiàn),由Argonne國家實(shí)驗(yàn)室和密西西比州立大學(xué)聯(lián)合開發(fā),具有更好的可移植性。相關(guān)下載地址:http://www.mpich.org/
4) Mvapich
MVAPICH是VAPI層上InfiniBand的MPI的縮寫,它充當(dāng)著連接消息傳遞接口(MPI和被稱作VAPI的InfiniBand軟件接口間的橋梁,也是MPI標(biāo)準(zhǔn)的一種實(shí)現(xiàn)。InfiniBand是“無限帶寬”的縮寫,這是一種新的支持高性能計(jì)算系統(tǒng)的網(wǎng)絡(luò)架構(gòu)。OSU(Ohio State University)超級(jí)計(jì)算機(jī)中心的科學(xué)家彼特于2002年開發(fā)出MVAPICH前,InfiniBand和MPI是不兼容的。
同時(shí),MVAPICH2/MVAPICH也可以從Open Fabrics Enterprise Distribution (OFED)套件中獲得。最新版本為MVAPICH2 2.2b,下載地址:http://mvapich.cse.ohio-state.edu/
審核編輯 :李倩
-
高性能
+關(guān)注
關(guān)注
0文章
157瀏覽量
20398 -
網(wǎng)絡(luò)拓?fù)?/span>
+關(guān)注
關(guān)注
0文章
102瀏覽量
11381 -
單精度
+關(guān)注
關(guān)注
0文章
8瀏覽量
2245
原文標(biāo)題:高性能計(jì)算關(guān)鍵組件核心知識(shí)
文章出處:【微信號(hào):架構(gòu)師技術(shù)聯(lián)盟,微信公眾號(hào):架構(gòu)師技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論