HPC高性能計算知識:基礎科普
在過去15年的時間裡,HPC一直是增長最快的IT市場之一,其增長速度有時超過了在線遊戲、平板的年增長率。
HPC高性能計算市場空間有多大?
在2016年的全年,我們報告說,HPC伺服器市場的全球工廠收入從2015年的107億美元上升到創紀錄的112億美元,比2003年的57億美元增長了近兩倍(其他市場分析,請參看「[解讀] Intersect360分析預測: 由AI和Cloud驅動,未來HPC市場達439億」),研究預測,HPC伺服器市場將在2021年增長到148億美元,而整個HPC生態系統的市場在那一年將會超過300億美元的市場。
什麼是高性能計算,涉及哪些技術和知識呢?
高性能計算(High performance computing) 指通常使用很多處理器(作為單個機器的一部分)或者某一集群中組織的幾台計算機(作為單個計算資源操作)的計算系統和環境。高性能集群上運行的應用程序一般使用並行演算法,把一個大的普通問題根據一定的規則分為許多小的子問題,在集群內的不同節點上進行計算,而這些小問題的處理結果,經過處理可合併為原問題的最終結果。由於這些小問題的計算一般是可以並行完成的,從而可以縮短問題的處理時間。
高性能集群在計算過程中,各節點是協同工作的,它們分別處理大問題的一部分,並在處理中根據需要進行數據交換,各節點的處理結果都是最終結果的一部分。高性能集群的處理能力與集群的規模成正比,是集群內各節點處理能力之和,但這種集群一般沒有高可用性。高性能計算的分類方法很多。這裡從並行任務間的關係角度來對高性能計算分類。
一、高吞吐計算(High-throughput Computing)
有一類高性能計算,可以把它分成若干可以並行的子任務,而且各個子任務彼此間沒有什麼關聯。因為這種類型應用的一個共同特徵是在海量數據上搜索某些特定模式,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬於這一類。按照Flynn的分類,高吞吐計算屬於SIMDSingle Instruction/Multiple Data,單指令流-多數據流)的範疇。
二、分布計算(Distributed Computing)
另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干並行的子任務,但是子任務間聯繫很緊密,需要大量的數據交換。按照Flynn的分類,分散式的高性能計算屬於MIMD(Multiple Instruction/Multiple Data,多指令流-多數據流)的範疇。
有許多類型的HPC 系統,其範圍從標準計算機的大型集群,到高度專用的硬體。大多數基於集群的HPC系統使用高性能網路互連,基本的網路拓撲和組織可以使用一個簡單的匯流排拓撲。HPC系統由計算、存儲、網路、集群軟體四部分組成。
高性能計算HPC系統技術特點是什麼?
HPC系統目前主流處理器是X86處理器,操作系統是linux 系統(包括Intel、AMD、NEC、Power、PowerPC、Sparc等)、構建方式採用刀片系統,互聯網路使用IB和10GE。
高性能計算HPC集群中計算節點一般 分3種: MPI節點、胖節點、GPU加速節點。雙路節點稱為瘦節點(MPI節點),雙路以上稱為胖節點;胖節點配置大容量內存;集群中胖節點的數量要根據實際應用需求而定。
GPU英文全稱Graphic Processing Unit,中文翻譯為圖形處理器。 在浮點運算、並行計算等部分計算方面,GPU可以提供數十倍乃至於上百倍於CPU的性能。目前GPU廠家只有三家NVIDIAGPU、AMD GPU和Intel Xeon PHI。可選擇的GPU種類比較少。
NVIDIA 的GPU卡分圖形卡和計算卡,圖形卡有NVIDA K2000與K4000,計算卡K20X/K40M/K80 。
Intel 的GPU是Intel Xeon Phi 系列,屬於計算卡,主要產品有Phi 5110P 、Phi 3210P、Phi 7120P、Phi 31S1P。
AMD 的GPU是圖形和計算合一,主要產品有W5000、W9100、S7000、S9000、S10000。
高性能計算的性能指標怎樣衡量?
CPU的性能計算公式: 單節點性能=處理器主頻*核數*單節點CPU數量*單周期指令數。單周期指令數=8(E5-2600/E5-2600 v2/E7-4800 v2)或16(E5-2600 v3);節點數量=峰值浮點性能需求/單節點性能。
時延(內存和磁碟訪問延時)是計算的另一個性能衡量指標,在HPC系統中,一般時延要求如下:
一個MFlops等於每秒一佰萬(=10^6)次的浮點運算;
一個GFlops等於每秒拾億(=10^9)次的浮點運算;
一個TFlops等於每秒一萬億(=10^12)次的浮點運算,(1太拉);
一個PFlops等於每秒一千萬億(=10^15)次的浮點運算;
一個EFlops等於每秒一佰京(=10^18)次的浮點運算。
測試工具—Linpack HPC是什麼?
Linpack HPC 是性能測試工具。LINPACK是線性系統軟體包(Linear system package) 的縮寫, 主要開始於 1974 年 4 月, 美國Argonne 國家實驗室應用數學所主任 Jim Pool, 在一系列非正式的討論會中評估,建立一套專門解線性系統問題之數學軟體的可能性。
業界還有其他多種測試基準,有的是基於實際的應用種類如TPC-C,有的是測試系統的某一部分的性能,如測試硬碟吞吐能力的IOmeter,測試內存帶寬的stream。
至目前為止,Linpack還是廣泛地應用於解各種數學和工程問題。也由於它高效率的運算, 使得其它幾種數學軟體例如IMSL、MatLab紛紛加以引用來處理矩陣問題,所以足見其在科學計算上有舉足輕重的地位。
Linpack現在在國際上已經成為最流行的用於測試高性能計算機系統浮點性能的Benchmark。通過利用高性能計算機,用高斯消元法求解N元一次稠密線性代數方程組的測試,評價高性能計算機的浮點性能。
雙列直插式內存(DIMM)有幾種類型?
雙列直插式內存(DIMM)包括UDIMM內存、RDIMM內存和LRDIMM內存三種DIMM內存可用類型。
在處理較大型工作負載時,無緩衝DIMM( UDIMM )速度快、廉價但不穩定。
寄存器式DIMM( RDIMM )內存穩定、擴展性好、昂貴,而且對內存控制器的電氣壓力小。它們同樣在許多傳統伺服器上使用。
降載 DIMM( LRDIMM )內存是寄存器式內存( RDIMM )的替代品,它們能提供高內存速度,降低伺服器內存匯流排的負載,而且功耗更低。LRDIMM內存成本比 RDIMM內存高非常多,但在高性能計算架構中十分常見。
非易失雙列直插式內存NVDIMM是什麼?
NVDIMM由BBU(Battery Backed Up) DIMM演變而來。BBU採用後備電池以維持普通揮發性內存中的內容幾小時之久。但是,電池含有重金屬,廢棄處置和對環境的污染,不符合綠色能源的要求。由超級電容作為動力源的NVDIMM應運而生。並且NVDIMM使用非揮發性的Flash存儲介質來保存數據,數據能夠保存的時間更長。
主流高性能計算網路類型有哪些?
InfiniBand架構是一種支持多並發鏈接的「轉換線纜」技術,InfiniBand技術不是用於一般網路連接的,它的主要設計目的是針對伺服器端的連接問題的。因此,InfiniBand技術將會被應用於伺服器與伺服器(比如複製,分散式工作等),伺服器和存儲設備(比如SAN和直接存儲附件)以及伺服器和網路之間(比如LAN,WANs和互聯網)的通信。高性能計算HPC系統為什麼要使用IB互聯?主要原因是IB協議棧簡單,處理效率高,管理簡單,對RDMA支持好,功耗低,時延低。
目前只有Mexllaon、Intel、Qlogic提供IB產品,Mexllaon是主要玩家,處於主導地位, IB目前支持FDR和QDR、EDR。
Host Channel Adapters (HCA)是IB連接的設備終結點,提供傳輸功能和Verb介面;Target Channel Adapters (TCA)是HCA的子集,基本上用於存儲。
RDMA(Remote Direct Memory Access)技術全稱遠程直接數據存取,就是為了解決網路傳輸中伺服器端數據處理的延遲而產生的。RDMA通過網路把數據直接傳入計算機的存儲區,將數據從一個系統快速移動到遠程系統存儲器中,實現Zero Copy。
高性能計算的靈魂—並行文件系統
TOP500 HPC系統中存儲主要使用分散式文件系統,分散式文件系統(Distributed File System)可以有效解決數據的存儲和管理難題: 將固定於某個地點的某個文件系統,擴展到任意多個地點/多個文件系統,眾多的節點組成一個文件系統網路。每個節點可以分布在不同的地點,通過網路進行節點間的通信和數據傳輸。人們在使用分散式文件系統時,無需關心數據是存儲在哪個節點上、或者是從哪個節點從獲取的,只需要像使用本地文件系統一樣管理和存儲文件系統中的數據。
分散式文件系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶訪問的伺服器。當前主流的分散式文件系統包括: Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、以及GoogleFS等,其中Lustre、GPFS是HPC最主流的(本號歷史文章做過大量介紹和分析,請參看文章「從高性能計算(HPC)技術演變解析方案、生態和行業發展趨勢」)。
TAG:架構師技術聯盟 |