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