超算競賽導引

本文旨在記錄閱讀《超算競賽導引》一書中的重點知識和心得體會~ 目前國際上把亞洲ASC、美國SC、德國ISC並稱爲三大國際超算競賽,全球Top500,中國HPC Top100和Green 500爲高性能計算機排行榜。 

第一章:超算的發展與應用

一、 超級計算機簡介

超級計算機(以下簡稱"SC")的作用就不用多說啦,爲了反映當前世界上超級計算機的發展水平,自1993年起,每年的6月和11月分別在德國和美國召開的世界超級計算機會議上,發佈世界上超級計算機的500強(Top500)排行榜,通過測試執行基準程序LINPACK(線性方程組求解)所需的時間長短來排行。Top500對SC的體系架構的分類是比較簡化的,只將SC分爲星形、向量、大規模並行處理(massively parallel processing, MMP)系統和集羣這幾種。目前P級(每秒千萬億次,10^15)的SC已經成熟,E級(百萬萬億次,10^18)的SC研製正在激烈的競爭中進行。


二、超算的發展與架構分類

1. 第一代SC是單指令多數據流(SIMD)的陣列處理機,第二代是具有流水結構的向量機,第三代是具有MIMD形式的共享主存多處理機系統,第四代是MPP系統,第五代是集羣系統,並逐步由同構方式轉爲異構方式,主要由CPU+GPU或CPU+MIC(many integrated core ).

2. 可以按並行計算方式是SIMD還是MIMD,以及存儲器是共享的還是分佈的這兩個準則加以分類,一般可分爲以下四類:

(1)共享存儲-SIMD(SM-SIMD)  (2)分佈存儲-SIMD(DM-SIMD) (3)SM-MIMD (4)DM-MIMD



三、SC的應用現狀

1)已歸納出5種並行程序設計算法範例



2)已開發了各種類型的並行編程語言可供用戶使用

(1)面向共享存儲器的線程編程語言,如POSIX Threads、Java Threads、Open MP等。在標準的順序語言中調用線程庫中的各種例程。

(2)面向分佈存儲器的消息傳遞編程語言,如消息傳遞接口(message passing interface,MPI)、並行虛擬機(PVM)等。在標準的順序語言中調用各種消息傳遞的庫例程。

(3)開發數據並行的並行編程語言,如HPF(high performance fortran).

(4)面向異構並行架構的編程語言,如NVIDIA的CUDA編程語言。


3)已提出3種基本的並行編程模型供用戶使用

(1)共享變量

(2)消息傳遞

(3)數據並行


第二章:超算集羣系統的構建及功耗管理

一、超算集羣系統的組成

集羣架構目前已經成爲最廣泛的超級計算機架構,典型的HPC集羣系統主要由五類計算(或網絡)設備和三類網絡組成。
五類設備主要指管理節點及登錄節點、計算節點(包括瘦節點(刀片服務器)和胖節點(用於數據劃分困難或對內存需求特別大的特殊應用運算等,一般採用四路以上的服務器))、交換設備(大型交換機)、I/O節點和存儲設備。另外,當前很多高性能服務器都採用CPU+加速處理器異構的方式,因此有些高效能集羣系統還包括加速節點。


第三章:超算系統的網絡通信

·一、InfiniBand 技術概要

主流網絡互連技術包括以太網、FC和InfiniBand,FC是爲實現存儲互聯而設計的存儲專屬網絡,由於其技術侷限性,迄今只在存儲互聯領域得到廣泛應用。以太網與InfiniBand同爲開放網絡互連技術,以太網更側重網絡協議的通用性,而InfiniBand擁有大幅領先於以太網和FC性能的優勢,同時是具備軟件定義網絡(soft defined network,SDN)屬性的智能網絡。
InfiniBand架構介紹如下:
1) HCA
主機通道適配器(host channel adapter,HCA)是InfiniBand網絡的最終節點,可以安裝在服務器或存儲中,實現服務器、存儲與InfiniBand網絡的連接。
2)TCA
目標通道適配器(TCA)主要爲內嵌系統定義的適配器架構,不用提供面向應用程序的標準應用程序接口(API),迄今應用只侷限於很小的領域。
3)網絡交換機
實現網絡通信的交換
4)路由器
實現InfiniBand多子網直接互連。
5)網線與連接模塊
高性能、低延遲、高效率、可靠穩定的網絡互連、低功耗、數據完整性、開放性。

二、InfiniBand技術核心---RDMA

RDMA與TCP/IP類似屬於網絡傳輸協議,然而傳統的TCP/IP技術在處理數據傳輸的過程中需要佔用大量的服務器資源而使得TCP傳輸效率低下。RDMA操作使應用可以從一個遠程應用的內存中讀數據或向這個內存中寫數據。遠程節點的CPU在整個RDMA操作中並不提供服務,因此沒有帶來任何負載,使得CPU資源能專注於應用處理。
RDMA的技術核心:
1)零拷貝技術
網卡(HCA)可以直接與應用內存相互傳輸數據,從而避免了在應用程序內存與內核內存之間的數據拷貝過程。
2)內核旁路技術
內核旁路(kernel bypass)技術,當執行RDMA讀/寫請求時,應用程序不需要執行內核調用就可向網卡發送命令,從而減少了在處理網絡傳輸時內核空間與用戶空間之間環境切換的次數。
3)協議裝載
網卡硬件中部署可靠的傳輸協議,從而消除通信對CPU資源的依賴。 InfiniBand與其他網絡技術最大的區別就是其爲應用層提供直接RDMA消息傳輸服務,無論是用戶應用程序還是內核應用。而傳統網絡當應用層需要訪問網絡服務時,必須要通過操作系統的支持才能完成。

三、基於InfiniBand的HPC應用優化

基於MPI規範的實現軟件包括MPICH與OpenMPI.MPICH由美國阿貢國家實驗室和密西西比州立大學聯合開發,具有很好的可移植性。MVAPICH2、Intel MPI、Platform MPI都是基於MPICH開發的。OpenMPi由多家高校、研究機構、公司共同維護的開源MPI實現。

第四章:超算系統的應用環境

簡單概括爲CPU並行系統應用環境、CPU+MIC異構並行系統應用環境以及CPU+GPU異構並行系統應用環境,其中每一類都包含硬件環境(多核服務器、InfiniBand網線等)、軟件環境(操作系統(windows/Linux)、並行運行環境(MPICH/節點內用OpenMP或PThread))、開發環境(編譯器和調試器(gcc/gdb,Intel conpiler XE等)、高性能數學函數庫(MKL,GotoBlas,OpenBLAS等)、高性能調優工具(intel VTune/NVIDIA Nsight))。

第五章:超算系統性能評測方法

當前最常用的性能度量是“每秒浮點運算次數”(floating operations per second).
對一臺給定的高性能計算機系統,其理論的峯值性能是固定的,爲CPU主頻×CPU單核每個時鐘週期能執行的浮點操作數×系統總CPU核數

高性能計算機的性能測評通常可分爲以下四大類:
1)單項測評
通常又稱爲微基準測試,對計算機特定部件或單項性能進行測試,常見的包括內存帶寬測試、網絡性能測試、I/O性能測試等。
2)整體計算性能測評
常見的測試包括HPL(high performance LINPACK)、HPCC(high performance computing challenge)、SPEC HPC(standard performance evaluation corporation high performance computing)等。目前國際和國內的SC排行榜都是基於整體計算性能測評結果進行排序的。
3)領域應用性能測評
4)典型應用性能測評

主要測試程序及應用
1.內存性能測試程序Stream
2.通信性能測試程序OMB
3.浮點計算性能測試程序HPL
HPL是通過求解一個稠密線性方程組Ax=b所花費的時間來評價計算機的浮點計算性能。爲保證測評結果的公正性,HPL不允許修改基本算法(採用LU分解的高斯消去法),機必須保證總浮點計算次數不變。對N*N的矩陣A,求解Ax=b的總浮點計算次數即計算量爲(2/3×N^3-2×N^2)。因此,只要給頂問題規模N,測的系統計算時間T,則HPL將測定該系統浮點性能值爲:計算量/計算時間T,單位爲flops.
常用的HPL優化策略如下:
(1)選擇儘可能大的N,在系統內存耗盡之前,N越大,HPL性能越高
(2)HPL的核心計算是矩陣乘(耗時通常在90%以上),其採用分塊算法實現,其中分塊的大小對計算性能影響巨大,需綜合系統CPU緩存大小等因素,通過小規模問題的實例,選擇最佳的分塊矩陣值。
(3)LU分解參數、MPI、不同BLAS數學庫的性能、編譯選項核操作系統等其他衆多因素同樣對測試結果有影響。
4.綜合性能測試程序HPCC
`HPCC由若干知名的測試程序組成,其選擇的七個測試程序如下:
(1)HPL,獲得浮點計算性能值,時空局部性均良好
(2)DGEMM,雙精度實數矩陣乘,獲得浮點計算性能值,時空局部性均良好
(3)Stream,獲得系統內存持續帶寬值,空間局部性好,時間局部性差
(4)PTRANS,並行矩陣轉秩,體現系統通信性能,空間局部性好,時間局部性差
(5)RandomAccess,測試內存隨機更新速率,時空局部性均不好
(6)FFT,計算雙精度一維複數離散傅里葉變換,獲得浮點計算性能值,空間局部性差,時間局部性好
(7)b_eff,測定系統通信帶寬和延遲
HPCC雖然提供了豐富的測試結果,但並未在高性能計算界獲得廣泛的支持和認可,其中測試過程和結果過於複雜、無法給定易於比較的單一指標是兩個重要因素。
5.領域測試程序集Graph 500 Benchmark
其所計算的問題是在一個龐大的無向圖種採用寬度優先算法進行搜索。


後面章節省略(主要講三大高性能競賽歷史以及ASC賽題分析)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章