HPCC 做為叢集電腦採購指標之研究 周朝宜張西亞王順泰陳德民 國家高速網路與計算中心 {cychou, jerry, stwang, gavin}@ nchc.org.tw 摘要 HPCC (HPC Challenge Benchmark Suite) 是美國國防部先進研究計畫署高效能技術電腦計畫 (DARPA HPCS) 所提出新一代效能評估程式以補強 HPL 功能, 做為 2010 年採購或評估機器依據, 本文探討 HPCC 做為採購叢集電腦指標可行性之研究, 在 NCHC Formosa II HPC Cluster 之 Dual-Core AMD Opteron 架構效能分析, 並且模擬 Single-Core 單顆中央處理器之效能分析, 我們更加入成本因素與 CPU 功率 ( 瓦特數 ), 其中 CPU 功率做為衡量 CPU 熱量產生指標, 評估 HPCC 做為採購指標的可能性, 提供採購者建議與協助 關鍵詞 : HPCC, 叢集電腦, 效能分析 Abstract The HPCC (HPC Challenge Benchmark Suite) has been released by the DARPA HPCS program to the acquisition community for 2010 procurements. We will study these factors by using HPCC on the tree simulation platforms of PC Cluster, Dual-Core, Single-core, and Single CPU. We also consider both cost and CPU wattage factors for purchasing the PC Cluster. Keywords: HPCC, PC Cluster, benchmarks 1. 前言 HPCC (HPC Challenge Benchmark Suite) [1] 是美國國防部先進研究計畫署高效能技術電腦計畫 (DARPA HPCS, Defense Advanced Research Projects Agency, High Productivity Computing Systems) 所提出新一代效能評估程式以補強 HPL[2] 功能, 有別於其他效能評估程式只有單一衡量指標, 特別結合幾個簡單效能評估程式成為單一執行檔, 涵蓋處理器 記憶體 訊息傳遞等因素, 企圖模擬應用領域程式並且考量空間 (Spatial) 和時間 (Temporal), 做為 2010 年採購或評估機器依據 軟體包括 HPL STREAM FFT(FFTE) RandomAccess PTRANS DGEMM b_eff(mpi latency/bandwidth test),hpl 廣泛地被應用在 Top 500 Linpack 系統計算效能評比 [3], 這可稱為趨近最高理論值 (Toward Peak Performance) 工具, STREAM 是量測主記憶體頻寬的工具, RandomAccess 是量測主記憶體隨機更新速率, PTRANS 是矩陣轉換 (Matrix Transpose) 平行程式, 藉以衡量整個系統的訊息傳遞效能, b_eff 用來評估 MPI 訊息傳遞的效能, 將這幾個效能評估程式整合為單一個執行檔, 以 HPL 最佳效能之矩陣大小為基礎, 涵蓋 Local, Embarrassingly Parallel, and Global 三項類別 本文將探討此程式在 NCHC Formosa II HPC Cluster 之 Dual-Core AMD Opteron 架構效能分析, 並且模擬 Single-Core 單顆中央處理器之效能分析, 我們更加入成本因素與 CPU 功率 ( 瓦特數 ), 其中 CPU 功率做為衡量 CPU 熱量產生指標, 評估 HPCC 做為採購指標的可能性, 提供採購者建議與協助 2. 實驗平台與研究方法
NCHC Formosa II HPC Cluster 是我們的實驗 平台, 它採用 IBM eserver 326 主機板, 擁有 80 個 2.2 GHz Dual-Core AMD Opteron 計算節點, 總 共有 320 個計算處理核心 (Core), 每個節點配有 4 GB DDR400 記憶體與兩張 Gigabit Ethernet 網路 卡, 透過 6 個 48 port 的 Nortel Baystack 5510 串接 在一起 作業系統為 Fedora Core 4 x86-64 (2.6.14 SMP) Linux, 提供編譯器有 Gnu 4.02 x86-64, Intel 9.0 EM64T, PGI 6.0 x86-64, Pathscale 2.53 x86-64 等,MPI-Middleware 有 MPICH 1.2.7p1, LAM/MPI 7.11 等, 使用 Torque 排程系統 我們採用 Gnu 編 譯器搭配 MPICH, 並且搭配單一執行緒 (Single Thread) 之 ATLAS 3.7.11 [6] 數學函數庫, 做為模擬 實驗的基礎 研究方法如后, 模擬 Dual-Core 時讓每個節 點 (Node) 負責處理 4 個 MPI 工作 (Job), 以下稱為 Dual-Core 模式 模擬 Single-Core 時讓每個節點 執行 2 個 MPI 工作, 以下稱為 Single-Core 模式 和模擬單顆中央處理器時讓每個節點只負責執行 1 個 MPI 工作, 以下稱為 Single-CPU 模式 由於我們的實驗平台是雙核心 (Dual-Core) 架 構的機器, 也就是說, 每一個節點有兩個 CPU, 每一個 CPU 內含 2 個計算處理核心, 假設 Single-Core 模式的 2 個 MPI 工作分別落在 2 個 CPU 上,Single-CPU 和 Single-Core 模式以 CPU 做為 計算單元, 而 Dual-Core 模式則以 Core 當 作 計算單元, 以下使用 計算單元 (Computation Unit) 來統稱不同模式之分析比較 3. 軟體介紹 HPL 利用列樞扭之 LU 分解法 (LU factorization with row pivoting) 求解 N 組線性聯立 方程組,N SQRT(Available Memory in bytes/8), 總共執行 2 3 3 2 N + N 個浮點計算, 資料使用 3 2 cyclic-block 方式對應在二維的計算單元上, 因此 HPL 之計算複雜度 (Complexity) 比訊息傳遞多一 個階 (Order), 無法展現記憶體與訊息傳遞效能, 反 應出記憶體依賴 (Memory Bound) 或是訊息傳遞依 賴 (Communication Bound) 的應用問題之特色, 有 見於此缺陷,HPCC 特別加入記憶體與訊息傳遞效 能評估程式補強 STREAM[4] 包含 4 個模組 :COPY, SCALE, ADD, and TRIAD 量測主記憶體頻寬, 輸出 結果包括單機 ( 只使用 1 計算單元 ) 與 Embarrassingly Parallel 兩種類型, 以下分別使 用 SN 和 EP 來表示, 其中 EP 表示所有的計 算單元同時執行此程式, 但是彼此不做訊息交換, 此種類型的計算對共享記憶體架構衝擊較大 RandomAccess 量測記憶體隨機位置之整數 更新速率以 GUPS 為單位, 分成三種模式, 單機 Embarrassingly Parallel 透過 MPI [5] 介面執行 All-to-All 訊息交換 PTRANS 是矩陣轉換之平行程式, 程式需要 所有計算單元成雙成對同時交換彼此的訊息, 藉以 衡量整個系統的訊息傳遞效能, 所量測出的傳遞速 度以 GB/s 為單位 MPI 訊息傳遞之效能分析, 分成兩部份, 其 一是傳統點對點 (Ping-Pong); 另一種為 Ring 方 式, 此種方式又分為兩種 :Naturally Ring 和 Randomly Ring, 前者是依照 MPI_COMM_WORLD 順序排列, 而後者採取隨機方式, 量測出指標有最 大 Ping-Pong Latency 最小 Ping-Pong 頻寬 Naturally Ring 之 Latency 和頻寬 10 組 Randomly Ring 幾何平均值 (Latency 和頻寬 ), 其中以 8 bytes 訊息來量測 Latency, 以 2 MB 訊息來量測頻寬 [1] 執行 DGEMM 是量測矩陣相乘的計算效能, 總共 3 2N 個浮點計算, 輸出結果包括單機與 Embarrassingly Parallel 兩種,FFT 是一維的離散傅 立葉變換 (Discrete Fourier Transform), 輸出結果 包括單機 Embarrassingly Parallel 透過 MPI 協 同工作版本 4. 結果分析 我們比較兩種不同的採購方式, 第一種是採
購 8 個節點, 第二種是採購 16 個計算單元 4.1 模擬八個節點之結果分析 Table 1 是三個模擬模式使用 8 個節點所呈現之整體效能, 其中 G- 表示透過 MPI 介面之執行整體效能, EP- 表示所有計算單元同時執行, 但是彼此不做訊息交換, 如同第三小節說明 從 Table 1(a) 數據我們發現 Dual-Core 模式在 G-HPL G-PTRANS G-FFT 領先, 而三個模擬模式 Dual-Core Single-Core Single-CPU 的 Efficiency=R max /R peak 值依序為 59 67 75%, 此趨勢與 AMD 公司所呈現相同 [7] G-RandomAccess 所呈現出效能為 Single-CPU > Single-Core > Dual-Core, 主要是受限於 Dual-Core 架構之記憶體控制器 (Memory Controller) 的瓶頸 [8] 從 Table 1(b) 數據我們發現模擬 Dual-Core 模式在 EP-STREAM Trial EP-DGEMM 指標領先, 構, 同樣的 Dual-Core 的頻寬只有 Single-CPU 模 式的不到三分之一 Table 1(b). The Global Results of the HPCC using 8 nodes EP-STRAEM Triad EP- DGEMM Bandwidth (MB/s) Latency (μs) Dual-Core 42.88 124.99 13.48 68.43 Single-Core 21.6 62.88 22.58 52.62 Single-CPU 19.76 31.24 44.19 51.52 Fig. 1 是每一個 MPI 工作的平均值或單一中 央處理器之效能數據等八個指標所呈現之雷達 圖, 其中 PP- 表示每一個計算單元的平均值, SN- 表示單機效能, 如同第三小節說明 從 Fig. 1 雷達圖我們發現以模擬單個中央處理 器模式呈現出最好表現, 尤其在 PP-FFT PP-PTRANS PP-RandomAccess 和訊息傳遞頻寬等 4 項指標, 這主要是受限於 Dual-Core 架構之記憶 每一個計算單元之平均值分別為 1.34 GB/s 1.35 GB/s 2.47 GB/s ( Dual-Core Single-Core Single-CPU ), 這個理由如上所陳述受限於 Dual-Core 的記憶體控制器瓶頸 Table 1(a). The Global Results of the HPCC using 8 nodes G-HPL G- G-Random PTRANS Aceess (Mup/s) G-FFT Dual-Core 83.10 0.460 0.206 1.33 Single-Core 47.04 0.285 0.222 1.07 Single-CPU 26.52 0.281 0.257 0.83 Fig. 1. The Kiviat Diagram using 8 nodes 從 Table 1(b) 數據我們發現 EP-DGEMM 指標比起 G-HPL 更接近最高理論值, 三個模式都可達 89%, 從這三種模式呈現相同效能表現,Dual-Core 平台適合獨立運算同時執行, 不涉及訊息傳遞模式 在訊息傳遞效能方面, 延遲時間 Dual-Core 比起 Single-CPU 增加 33%, 這是因為參加計算的 MPI 工作數目增加 4 倍, 並且涉及共享記憶體架 體控制器的瓶頸,PP-HPL 和訊息傳遞延遲時間相差幅度就沒有那麼明顯, 兩個單機效能指標 SN-DGEMM 和 SN-STREAM Trial 則呈現相同的結果, 這是可以預期的 Fig. 2 是考慮成本因素 ( PP-COST) 與 CPU 瓦特數 (PP-WATT) 兩項指標的雷達圖, 也就是說, 將 PP-COST PP-WATT 兩項指標分別取代 SN-DGEMM 和 SN-STREAM Trial 兩項指標, 發現
Dual-Core 模式在此兩項指標由明顯優勢, 在 CPU 瓦特數指標中 Dual-Core 模式相對於 Single-Core Single-CPU 模式只產生一半的熱量, 在價格指標上 Dual-Core 只需 Single-Core 的六成, 只需 Single-CPU 不到 4 成, 這兩項指標呈現出 Dual-Core 架構優勢 [8], 三者價格效能比 ( PP-HPL / PP-COST ) 為 Dual-Core : Single-Core : Single-CPU = 2.2 : 1.5 : 1, 此項指標值越高越佳 Dual-Core 是 Single-CPU 的 2.2 倍,Dual-Core 是 Single-Core 的 1.5 倍 Single-CPU 在 G-PTRANS 呈現突出表現, 是 Dual-Core 的 2.4 倍, 主要是因為成對之整體交換 在 Switch-based 網路架構可以得到很好表現, 但是 對於需要整體交換模式 (All-to-All) 的 G-Random Aceess 就無法呈現優勢 Table 2(a). The Global Results of the HPCC using 16 MPI Jobs G-HPL G- PTRANS G-Random Aceess (Mup/s) G-FFT Dual-Core 45.93 0.216 0.215 0.72 Single-Core 47.04 0.285 0.222 1.07 Single-CPU 49.45 0.519 0.215 1.72 從 Table 2(b) 數據我們發現 EP-DGEMM 指標與 8 個節點呈現相同結果, 更能印證上述 Dual-Core 平台適合獨立運算同時執行, 不涉及訊息傳遞模式 論點 訊息傳遞效能方面也和 8 個節點呈現相同結果, 這只要也是受限記憶體控制器的瓶頸 Fig. 2. The Cost and Watt related Kiviat Diagram using 8 nodes 從 Table 1 的整體效能指標做為採購標準則以 Dual-Core 機器會有較佳效能表現, 但是若由 Fig. 1 雷達圖為基準則由 Single-CPU 勝選, 如果只考量 經費與伴隨的熱量兩項效應則以 Dual-Core 為首 Table 2(b). The Global Results of the HPCC using 16 MPI Jobs EP-STRAEM Triad EP- DGEMM Bandwidth (MB/s) Latency (μs) Dual-Core 23.04 62.68 15.93 53.63 Single-Core 21.60 62.88 22.58 52.62 Single-CPU 34.56 62.93 40.26 49.92 選, 整體而言,Dual-Core 在價格效能比上呈現出 明顯優勢 4.2 模擬 16 個計算單元之結果分析 Table 2 是三個模擬模式使用 16 個計算單元所呈現之統整體效能, 從數據我們發現模擬 Single-CPU 模式有稍好表現, 相差幅度不大, 僅在 G-PTRANS EP-STREAM Trial 和訊息傳遞頻寬等 3 項指標有明顯領先 從 Table 2(a) 數據 Dual-Core Single-Core Single-CPU 的 Efficiency 值依序為 65 63 70%, 在同樣的 16 個計算單元時,Single-CPU 的 G-HPL 和 Efficiency 都取得領先 Fig. 3 是每一個計算單元之 8 種效能指標雷達圖, 結果與 Table 2 相近,Single-CPU 模式呈現出最佳表現, 尤其在 PP-FFT PP-PTRANS 和訊息傳遞頻寬等 3 項指標, 其他的 5 項指標, 則呈現相近的效能表現,PP-RandomAccess 記憶體存取效能與 Table 2 的 EP-STREAM Trial 指標呈現出不同效能表現 Fig. 4 是考慮成本因素與 CPU 瓦特數兩項指標的雷達圖, 從圖形發現 Dual-Core 在此兩項效應呈現明顯領先優勢, 如同 Fig. 2 價格指標呈現, 三者價格效能比為 Dual-Core : Single-Core :
Fig. 3. The Kiviat Diagram using 16 MPI-Procs Fig. 4. The Cost and Watt related Kiviat Diagram using 16 MPI-Procs Single-CPU = 2.6 : 1.6 : 1,Dual-Core 是 Single-CPU 的 2.6 倍,Dual-Core 是 Single-Core 的 1.6 倍, 比起上述同節點數的情形更明顯差距 如果依據 Table 2 整體效能指標採購需要 16 個 MPI 工作機器則由 Single-CPU 領先, 由 Fig. 3 的雷達圖做為採購基準, 也是得到相同的結果, 但是僅考量經費與伴隨的熱量這兩項效應則以 Dual-Core 為首選, 這與採購 8 節點機器的情形相同 4. 結論與討論 我們已經利用 HPCC 在三種模擬機器平台之採購指標分析, 在同樣採購 8 個節點, 整體效能指標以 Dual-Core 機器較佳, 但是採用雷達圖做為基準的話, 則由 Single-CPU 勝選, 如果只考量經費與伴隨的熱量兩項效應則以 Dual-Core 為首選 ; 同樣採購 16 個計算單元, 整體效能指標與雷達圖仍以 Single-CPU 領先, 但是僅考量經費與伴隨的熱量兩項效應則以 Dual-Core 為首選 採購 8 個節點總價格比為 Dual-Core : Single-Core : Single-CPU = 1.44 : 1.17 : 1, 每個 CPU 價格比 ( PP-COST) 為 Dual-Core : Single-Core : Single-CPU = 0.36 : 0.59 : 1, 價格效能比為 Dual-Core : Single-Core : Single-CPU = 2.2 : 1.5 : 1; 採購 16 個計算單元 (CPU 或是 Core) 之 PP-COST 為 Dual-Core : Single-Core : Single-CPU = 0.36 : 0.59 : 1, 價格效能比為 Dual-Core : Single-Core : Single-CPU = 2.6 : 1.6 : 1, 在兩種採購模式中 Dual-Core 在每個 CPU 價格比與價格效 能比有極大的優勢 EP-DGEMM 指標比起 G-HPL 更接近最高理論值, 三個模式都可達 89%, 從這三種模式呈現相同效能表現,Dual-Core 平台適合獨立運算同時執行, 不涉及訊息傳遞模式 參考文獻 [1] P. Luszczek, et. Al., Introduction to the HPC Challenge Benchmark Suite, LBNL-57493, 2005. [2] High-Performance Linpack Benchmark : http://www.netlib.org/benchmark/hpl [3] Top500 List, http://www.top500.org [4] J. McCalpin, STREM Home Page : http://www.cs.virginia.edu/stream [5] M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra, MPI: The Complete Reference, MIT Press, Cambridge, MA, 1996. [6] ATLAS Home Page : http://math-atlas.sourceforge.net [7] AMD Home Page : http://www.adm.com [8] D. M. Pase and M. A. Eckl, A Comparison of Single-Core and Dual-Core Opteron Processor Performance for HPC, IBM Co., 2005