“尺”有所短:Linkpack的缺陷與不足
張建中
2012年07月16日
Linpack測試 現(xiàn)在,Linpack在國際上已經成為最流行的用于測試高性能計算機系統(tǒng)浮點性能的benchmark。通過利用高性能計算機,用高斯消元法求解N階稠密線性代數方程組的測試,評價高性能計算機的浮點性能。
Linpack測試包括三類,Linpack100、Linpack1000和HPL。Linpack100求解規(guī)模為100階的稠密線性代數方程組,它只允許采用編譯優(yōu)化選項進行優(yōu)化,不得更改代碼,甚至代碼中的注釋也不得修改。Linpack1000要求求解規(guī)模為1000階的線性代數方程組,達到指定的精度要求,可以在不改變計算量的前提下在算法和代碼上做優(yōu)化。HPL即High Performance Linpack,也叫高度并行計算基準測試,它對數組大小N沒有限制,求解問題的規(guī)模可以改變,除基本算法(計算量)不可改變外,可以采用其它任何優(yōu)化方法。前兩種測試運行規(guī)模較小,已不適合現(xiàn)代計算機的發(fā)展,因此現(xiàn)在使用較多的測試標準為HPL,而且階次N也是linpack測試必須指明的參數。
HPL是針對現(xiàn)代并行計算機提出的測試方式。用戶在不修改任意測試程序的基礎上,可以調節(jié)問題規(guī)模大小N(矩陣大小)、使用到的CPU數目、使用各種優(yōu)化方法等來執(zhí)行該測試程序,以獲取最佳的性能。HPL采用高斯消元法求解線性方程組。當求解問題規(guī)模為N時,浮點運算次數為(2 * N3/3-2*N2)。因此,只要給出問題規(guī)模N,測得系統(tǒng)計算時間T,峰值 = 計算量(2 * N3/3-2*N2)/計算時間T,測試結果以浮點運算每秒(Flops)給出。
Linpack的缺陷和不足 越來越多的業(yè)內人士對Linpack標準提出了質疑,一種單一的標準能否有效地衡量出超級計算機的真實性能。在新奧爾良召開的“2010年超級計算機大會”上,有高性能計算廠商的高官諷刺該排名說,如果將10萬部Android智能手機連在一起,也能排在首位。
Linpack確實存在一些問題,有不少的缺陷和不足,但也有一些真實的東西在內。這只是一個排名,有些時候還要具體問題具體分析。
Linpack基本上就是用來解決線性方程的公式轉換語言集,因此比較適合用來衡量超級計算機的計算性能,但并不適合衡量變得越來越重要的超級計算機的記憶性能。另外,Linpack標準也不衡量超級計算機的可靠性。令人欣慰的是,該排名的評選方已經在完善其評判標準。
現(xiàn)在已經有人開發(fā)出新標準HPC Challenge,根據多個不同標準來衡量超級計算機的性能。如在“2010年超級計算機大會”上,有人推出一種超級計算機排名,被稱為“Graph500”,該排名通過一系列標準來衡量超級計算機性能,利用圖論去分析超級計算機在模擬生物、安全、社會以及類似復雜問題時的吞吐量進行排名,而不是像Linpack那樣比較傳統(tǒng)的數值運算能力。至于“Graph500”將來能否取代當前的“TOP500超級500強”排名還是個未知數。再如,www.green500.org網站2011年11月發(fā)布了最新的“綠色500(Green500)”超級計算機排名?!熬G色500”不同于TOP500,在關注超級計算機計算性能的同時,更加關注超級計算機的能耗問題,它通過測量與能耗相關的實測性能來對超級計算機的能效進行評定,用Mflops/W(百萬次浮點操作/瓦)作為指標來表征超級計算機的綠色程度。
對一個復雜事物件進行排名,選取什么標準和什么方法,對多種因素給出一個排名結果,都一定存在缺陷和不足。衡量一臺超級計算機的實際性能,需要有一把客觀、公認、公開、公平、公正的標準“尺子”。國際高性能計算領域專家聯(lián)合開發(fā)的Linpack基準測試程序,就是現(xiàn)階段的這樣一把“尺子”。盡管Linpack基準測試程序有各種各樣的不足,你可以指出它的很多缺陷,但重要的是要給出一種更好的、大家都能接受的客觀、公正、公平的標準,這決不是一件容易的事,這就像數學上由多維空間向一維空間投影一樣,任何一種方法和標準,都一定存在不足之處。