當前位置:首頁 » 編程軟體 » HPL編譯detail

HPL編譯detail

發布時間: 2022-08-21 21:39:41

Ⅰ hpl編譯出錯,是不是make文件的問題

高級語言的編譯出錯,原因有很多種。可以是源程序中的程序錯誤,也可以是 makefile 文件的本身編寫規則寫得不對,都會導致在 make makefile 文件時出現錯誤。因為 makefile 對編寫 makefile 文件的規則、以及編譯、連接的先後順序是很嚴格的,至於說到底是哪一種類型的錯誤,那就需要仔細檢查源程序、以及 makefile 文件了。

Ⅱ ubuntu benchmark怎麼進行測試

一、Linpack簡介
Linpack是國際上最流行的用於測試高性能計算機系統浮點性能的benchmark。通過對高性能計算機採用高斯消元法求解一元N次稠密線性代數方程組的測試,評價高性能計算機的浮點性能。

Performance Linpack,也叫高度並行計算基準測試,它對數組大小N沒有限制,求解問題的規模可以改變,除基本演算法(計算量)不可改變外,可以採用其它任何優化方法。前兩種測試運行規模較小,已不是很適合現代計算機的發展。
HPL 是針對現代並行計算機提出的測試方式。用戶在不修改任意測試程序的基礎上,可以調節問題規模大小(矩陣大小)、使用CPU數目、使用各種優化方法等等來執 行該測試程序,以獲取最佳的性能。HPL採用高斯消元法求解線性方程組。求解問題規模為N時,浮點運算次數為(2/3 * N^3-2*N^2)。因此,只要給出問題規模N,測得系統計算時間T,峰值=計算量(2/3 * N^3-2*N^2)/計算時間T,測試結果以浮點運算每秒(Flops)給出。HPL測試結果是TOP500排名的重要依據。

二、Linpack安裝與測試
1. Linpack安裝條件:
在安裝HPL之前,系統中必須已經安裝了編譯器、並行環境MPI以及基本線性代數子方程(BLAS)或矢量圖形信號處理庫(VSIPL)兩者之一。

在Ubuntu下,使用apt-get安裝gfortran,mpich2,每個計算節點都需要安裝
安裝完後,可先使用mpicc編譯helloworld驗證mpi集群是否工作正常

hpl linpack預設配置是使用atlas的庫,所以這里我們安裝ATLAS
參考http://blog.sina.com.cn/s/blog_708532ea0100m8nt.html

根據atlas的安裝文檔, 首先要switch off cpu throttling.首先安裝cpufrequtils和cpufreqd這兩個包, 也許還要安裝powernowd包

從http://sourceforge.net/projects/math-atlas/files/下載atlas
cd ATLAS
mkdir build
cd build
../configure
make

編譯沒有問題的話會在lib目錄下生成幾個靜態庫

2. 安裝與編譯Linpack:
第一步,從www.netlib.org/benchmark/hpl 網站上下載HPL包hpl.tar.gz並解包

cd hpl-2.1
cp setup/Make.Linux_PII_CBLAS_gm Make.x86_64
vi Make.x86_64

修改下列配置:
ARCH = x86_64
TOPdir = $(HOME)/projects/hpl-2.1

LAdir = $(HOME)/projects/ATLAS/build/lib
LAinc =
LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a

然後開始編譯:
make arch=x86_64
如果出現符號找不到的問題,請檢查LAlib的庫的位置

cd bin/x86_64
在這個目錄下生成了兩個文件, HPL.dat是linpack計算的配置文件, xhpl是測試程序

這里有關於HPL.dat的配置說明:
http://blog.csdn.net/yosoqoo/article/details/3563349
其中幾個重要的參數(必須針對集群環境修改)
1 # 表示只做一次計算,使用下面的第一個數
100000 30 34 35 Ns #矩陣大小,為了測試性能,一般取N*N*8 ~ 內存總量,集群時考慮總內存量

1 # of NBs
192 2 3 4 NBs #分塊大小,經驗值192
4 1 4 Ps # PxQ 應該等於整個集群的進程數,一般等於cpu核數
16 4 1 Qs # P 一般<=Q

如果是單機,可以運行mpiexec -n 64 ./xhpl來看一下是否工作正常。
對於集群,首先需要保證所有機器的可以相互使用ssh無密碼登錄(比如要從s1登錄到s2,需要把s1上的.ssh/id_rsa.pub內容拷貝到s2的.ssh/authorized_keys里。
然後創建mpi_hosts文件,內容就是集群內各機器名稱,每個機器一行。

在每個機器上,都需要有相同的用戶,以及同樣的hpl-2.1路徑和文件HPL.data,xhpl程序

運行mpiexec -n 64 -f mpi_hosts, ./xhpl

注意:
1. 矩陣不能太小,要保證矩陣數據可以佔用大量內存,運行時可以free來查看內存使用量,用top,然後按1來查看cpu每個核的使用情況
2. 節點間數據傳輸量比較大,應該使用萬兆網路,否則網路會成為瓶頸。
3.本文只是為了驗證,並不是為了優化benchmark。如果要達到更好的benchmark數值,應該使用優化的blas庫,比如intel的mkl。intel的mkl本身就帶了linpack測試程序

熱點內容
開源庫編譯管理員 發布:2025-02-06 09:39:14 瀏覽:914
臉書怎麼注冊安卓 發布:2025-02-06 09:36:47 瀏覽:380
車用安卓導航無線打不開什麼原因 發布:2025-02-06 09:27:50 瀏覽:789
安卓與蘋果如何互相傳送文件 發布:2025-02-06 09:27:40 瀏覽:25
華為伺服器盤符如何分配 發布:2025-02-06 09:26:41 瀏覽:559
傳奇h5源碼下載 發布:2025-02-06 09:26:06 瀏覽:77
編譯uclibc 發布:2025-02-06 09:09:04 瀏覽:151
用gcc編譯16位匯編 發布:2025-02-06 09:06:07 瀏覽:822
什麼低端安卓手機不卡 發布:2025-02-06 09:03:32 瀏覽:13
我的世界伺服器卡領地 發布:2025-02-06 08:50:45 瀏覽:255