linpack学习记录
??基準測試程序(Benchmark)用來測量機器的硬件最高實際運行性能,以及軟件優化的性能提升效果,可分為微基準測試程序(Microbenchmark)和宏基準測試程序(Macrobenchmark)
微基準測試程序用來測量一個計算機系統的某一特定方面,如CPU定點/浮點性能、存儲器速度、I/O速度、網絡速度或系統軟件性能(如同步性能);宏基準測試程序用來測量一個計算機系統的總體性能或優化方法的通用性,可選取不同應用,如Web服務程序、數據處理程序以及科學與工程計算程序。
微基準測試程序
STREAM:由John McCalpin設計的測量持續存儲器帶寬和計算速度的測試程序,包含Copy、Scalar、Add和Traid四個函數,分別用來執行向量拷貝、向量更新拷貝、向量加法和向量更新。STREAM2包含Fill、Copy、Daxpy和Sum四個函數,分別用來執行向量賦值、向量拷貝、向量更新和向量求和。STREAM的指標為實測存儲器帶寬(MB/s)。
LMBENCH:用來測量OS開銷和處理器、緩存、存儲器、網絡以及磁盤之間的數據傳輸能力。
宏基準測試程序
Linpack:20世紀70年代中期開發了IAnpack軟件用于解線性方程,因為Linpack使用廣泛且其指標幾乎可以在所有參加測試的系統上得到,國際上一般用Linpack測試出的最高性能指標作為衡量機器性能的標準。每年兩次更新并發布的世界超級計算機500強排行榜(TOPS00)即按Linpack測試值排序。
LINPACK是線性系統軟件包(Linear system package) 的縮寫,計算機硬件的不斷的升級帶來了系統處理性能持續的提高,如何的對平臺的性能作出正確的判斷就是性能測試的主要目標,業界也有多種測試基準,有的是基于實際的應用種類如TPC-C,有的是測試系統的某一部分的性能,如測試硬盤吞吐能力的IOmeter,測試內存帶寬的stream。
Linpack測試包括三類:Linpack100、Linpack1000和HPL。
Linpack100求解規模為100階的稠密線性代數方程組,只允許采用編澤優化選項進行優化,不得更改代碼,甚至代碼中的注釋也不得修改。
Linpack1000要求求解規模為1000階的線性代數方程組,達到指定的精度要求,可以在不改變計算量的前提下做算法和代碼上的優化。
HPL(High?Performance Linpack)也叫高度并行計算基準測試,對數組大小N沒有限制,求解問題的規??梢愿淖?#xff0c;除基本算法(計算量)不可改變外,可以采用其他任何優化方法。
前兩種測試運行規模較小,已不適合現代計算機的測試,因此一般使用Linpack即指HPL。
HPL是針對現代并行計算機提出的測試方式。用戶在不修改任意測試程序的基礎上,可以調節問題規模大小N(矩陣大小)、使用到的CPU數目、使用各種優化方法等來執行該測試程序,以獲取最佳的性能。HPL采用高斯消元法求解線性方程組。當求解問題規模為N時,浮點運算次數為(2/3 * N^3+2*N^2)。因此,只要給出問題規模N,測得系統計算時間T,峰值=計算量(2/3 * N^3+2*N^2)/計算時間T,測試結果以浮點運算每秒(Flops)給出。
????HPLinpack的核心算法是求解階 為n 的線性方程:Ax=b,A∈Rn×n?,x,b∈Rn 。算法首 先使用行選主元高斯消元法對系數矩陣 [A,b]進 行 LU 分 解:Pr[A,b]= [LU], [ ]y ,Pr,L,U ∈ Rn×n,y∈ Rn 。LU 分解 完 成 后,解 原 方 程 等 價 于 求解上三角方程Ux =y。 從上 述 介 紹 可 以 看 出,HPLinpack 測試 程 序 的執行分為 LU 分解 和 回 代 兩 個 過 程。其 中,LU 分解過程的浮點操作次數為 (2/3)n3 - (1/2)n2?(-(1/2)n2)在計算機中相對影響很小,忽略不計); 回代過程的浮點操 作 次 數 為2n2?。
???所以總的浮點操作運算次數為:分解操作運算次數+回代浮點運算次數(2/3 * N^3+2*N^2)。
???
LINPACK主要的特色是:
1、率先開創了力學 (Mechanics) 分析軟件的制作。
2、建立了將來數學軟件比較的標準。
3、提供軟件鏈接庫, 允許使用者加以修正以便處理特殊問題, (當然程序名稱必須改寫, 并應注明修改之處, 以尊重原作者, 并避免他人誤用。)
4、兼顧了對各計算機系統的通用性, 并提供高效率的運算。
?LINPACK 還是廣泛地應用于解各種數學和工程問題,是數學庫測試程序。 也由于它高效率的運算, 使得其它幾種數學軟件例如IMSL、 MATLAB 紛紛加以引用來處理矩陣問題, 所以足見其在科學計算上有舉足輕重的地位。
Linpack現在在國際上已經成為最流行的用于測試高性能計算機系統浮點性能的benchmark。通過利用高性能計算機,用高斯消元法求解N元一次稠密線性代數方程組的測試,評價高性能計算機的浮點性能。
計算峰值
隨著產品硬件的不斷的升級,整個的計算能力也以數量級的速度提升。衡量計算機性能的一個重要指標就是計算峰值,例如浮點計算峰值,它是指計算機每秒鐘能完成的浮點計算最大次數。包括理論浮點峰值和實測浮點峰值:
理論浮點峰值是該計算機理論上能達到的每秒鐘能完成浮點計算最大次數,它主要是由CPU的主頻決定的,
理論浮點峰值=CPU主頻×CPU每個時鐘周期執行浮點運算的次數×系統中CPU核心數目。
實測浮點峰值是指Linpack測試值,也就是說在這臺機器上運行Linpack測試程序,通過各種調優方法得到的最優的測試結果。實際上在實際程序運行過程中,幾乎不可能達到實測浮點峰值,更不用說達到理論浮點峰值了。這兩個值只是作為衡量機器性能的一個指標,用來表明機器處理能力的一個標尺和潛能的度量。
硬件準備
準備硬件平臺的配置
升級到最新的BIOS、BMC等版本
調整對性能有影響的參數設置
軟件準備
操作系統的準備。由于OS自身也會占用系統資源,因此一般會使用linux作為linpack測試的OS平臺,采用最新的內核版本的linux,這樣可以充分的發揮出硬件的新的特性,發揮出平臺的計算性能;在系統啟動后,將一些沒有必要的系統守護進程去掉,可以運行ntsysv命令,關閉除了irqbalance 和 messagebus.之外的系統服務進程,也可以節省系統的資源;并且將操作系統啟動到第3級,不能進入圖形方式。
總結
以上是生活随笔為你收集整理的linpack学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 福禄克同轴适配器DTX-COAX配DTX
- 下一篇: “赋能开发者”高峰论坛暨西安葡萄城30周