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