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