1. 程式人生 > >linpack基準測試(HPL+MKL+IMPI)安裝

linpack基準測試(HPL+MKL+IMPI)安裝

參考http://blog.csdn.net/icefromair/article/details/51524476

1、系統環境

    ubuntu server 16.04

    軟體:    

hpl-2.2.tar.gz
l_mkl_2018.1.163.tgz
l_mpi_2018.1.163.tgz

2、解壓安裝mkl

      tar命名解壓安裝即可,然後進入目錄,直接執行install.sh檔案,根據提示安裝即可。

[email protected]:~$ tar -zxvf l_mkl_2018.1.163.tgz
[email protected]:~$ cd l_mkl_2018.1.163/
[email protected]
:~/l_mkl_2018.1.163$ ./install.sh#後面根據提示進行就可以了

3、解壓安裝mpi

       同mkl一樣解壓安裝即可。

[email protected]:~$ tar -zxvf l_mpi_2018.1.163.tgz 
[email protected]:~$ cd l_mpi_2018.1.163/
[email protected]:~/l_mpi_2018.1.163$ ./install.sh #同樣根據提示進行就可以

4、編譯安裝hpl

    4.1、解壓hpl檔案

[email protected]
:~$ tar -zxvf hpl-2.2.tar.gz [email protected]:~$ cd hpl-2.2/
[email protected]:~/hpl-2.2$ cp setup/Make.Linux_PII_CBLAS .

把setup目錄裡面的Make.Linux_PII_CBLAS檔案複製到top目錄也就是setup的上級目錄,hpl-2.2目錄下,然後命名一下

我的命名是Make.ubuntu_mkl_intel,檔案裡面arch=Make.ubuntu_mkl_intel,這兩個是一樣的。

修改後檔案主要有下面內容(去掉了註釋行):

SHELL        = /bin/sh
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
ARCH         = ubuntu_mkl_intel
TOPdir       = $(HOME)/hpl-2.2
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
HPLlib       = $(LIBdir)/libhpl.a 
MPdir        = /usr/local/intel/impi/2018.1.163/intel64
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.a
LAdir        = -L/usr/local/intel/mkl/lib/intel64 -L/usr/local/intel/lib/intel64#這裡也可以通過匯入連結庫路徑也最好這樣,
LAinc        = -I/usr/local/intel/mkl/include #不然像我這樣,最後執行xhpl檔案會找不到連結庫,要新增到LD_LIBRARY_PATH中才可以
LAlib        = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lm#
F2CDEFS      =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAdir) $(LAinc) $(MPinc) -lpthread
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib) -lpthread
HPL_OPTS     = -DHPL_CALL_CBLAS
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC           = /usr/local/intel/impi/2018.1.163/bin64/mpicc -lpthread
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER       = /usr/local/intel/impi/2018.1.163/bin64/mpicc -lpthread
LINKFLAGS    = $(CCFLAGS)
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo

接下來編譯:

[email protected]:~/hpl-2.2$ make arch=ubuntu_mkl_intel
#如果沒有報錯,在當前目錄下有個bin目錄會看到ubuntu_mkl_intel目錄,裡面就有可以這行的檔案了

5、執行測試:

[email protected]:~/hpl-2.2/bin/ubuntu_mkl_intel$ mpirun -n 4 ./xhpl 
./xhpl: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
./xhpl: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
./xhpl: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
./xhpl: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory

出現了我說上面說的問題,沒有新增沒有把共享庫路徑寫進LD_LIBRARY_PATH,因為這個共享庫沒有在預設搜尋路徑下,所以現在新增到LD_LIBRARY_PATH就可以。

[email protected]:/etc/profile.d$ sudo vim mkl.sh
#寫入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/intel/mkl/lib/intel64:/usr/local/intel/lib/intel64
然後重新載入這個檔案
[email protected]:/etc/profile.d$ source mkl.sh
#你也可以不寫在這裡。能加入環境變數即可

重新執行檔案:

[email protected]:~/hpl-2.2/bin/ubuntu_mkl_intel$ ldd xhpl
#可以看到動態連結庫都找得到了
[email protected]:~/hpl-2.2/bin/ubuntu_mkl_intel$ mpirun -n 4 ./xhpl

#就可以看到一大堆的執行結果了,部分如下
--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0167027 ...... PASSED
================================================================================
T/V                N    NB     P     Q               Time                 Gflops
--------------------------------------------------------------------------------
WR00R2R4          35     4     4     1               0.00              2.786e-01
HPL_pdgesv() start time Wed Mar  7 22:46:45 2018

HPL_pdgesv() end time   Wed Mar  7 22:46:45 2018

--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0234356 ...... PASSED
================================================================================

Finished    864 tests with the following results:
            864 tests completed and passed residual checks,
              0 tests completed and failed residual checks,
              0 tests skipped because of illegal input values.
--------------------------------------------------------------------------------

End of Tests.
===============================================================================

6、總結

    這幾天裝各種不同數學庫和mpi版本出現各種問題,希望藉此能幫助一些同樣裝hpl遇到困難的人。

7、附帶一些關於mpich+atlas、mpich+openblas、mpich+gotoblas2數學庫的配置檔案

MPICH + atlas

#MPICH+Atlas
SHELL        = /bin/sh
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
ARCH         = ubuntu_atlas_mpich
TOPdir       = $(HOME)/hpl-2.2
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
HPLlib       = $(LIBdir)/libhpl.a 
MPdir        = /usr/local/mpich
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.a
LAdir        = /usr/local/atlas/lib
LAinc        =
LAlib        = $(LAdir)/libcblas.a $(LAdir)/libatlas.a
F2CDEFS      =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -lpthread
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib) -lpthread
HPL_OPTS     = -DHPL_CALL_CBLAS
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC           = /usr/local/mpich/bin/mpicc -lpthread
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER       = /usr/local/mpich/bin/mpicc
LINKFLAGS    = $(CCFLAGS)
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo

 MPICH + openblas

SHELL        = /bin/sh
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
ARCH         = ubuntu_open_mpich
TOPdir       = $(HOME)/hpl-2.2
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
HPLlib       = $(LIBdir)/libhpl.a 
MPdir        = /usr/local/mpich
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.a
LAdir        = /usr/local/openblas/lib
LAinc        =
LAlib        = $(LAdir)/libopenblas.a
F2CDEFS      =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -lpthread
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib) -lpthread
HPL_OPTS     = -DHPL_CALL_CBLAS
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC           = /usr/local/mpich/bin/mpicc -lpthread
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER       = /usr/local/mpich/bin/mpicc
LINKFLAGS    = $(CCFLAGS)
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo
MPI + GotoBlas2
SHELL        = /bin/sh
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
ARCH         = ubuntu_goto_mpich
TOPdir       = $(HOME)/hpl-2.2
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
HPLlib       = $(LIBdir)/libhpl.a 
MPdir        = /usr/local/mpich
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.a
LAdir        = $(HOME)/GotoBLAS2
LAinc        =
LAlib        = $(LAdir)/libgoto2.a
F2CDEFS      =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -lpthread
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib) -lpthread
HPL_OPTS     = -DHPL_CALL_CBLAS
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC           = /usr/local/mpich/bin/mpicc -lpthread
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER       = /usr/local/mpich/bin/mpicc
LINKFLAGS    = $(CCFLAGS)
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo



相關推薦

linpack基準測試HPL+MKL+IMPI安裝

參考http://blog.csdn.net/icefromair/article/details/515244761、系統環境    ubuntu server 16.04    軟體:    hpl-2.2.tar.gz l_mkl_2018.1.163.tgz l_mp

SMM框架的搭建和測試Spring MVC+MyBatis

meta true model spa const -i ssp pan div Spring MVC:MVC框架,通過Model-View-Controller模式很好的將數據,業務與展現進行分離。 MyBatis:數據持久層框架 我這裏使用的是MyEclipse 2

SSH框架的搭建和測試Spring + Struts2 + Hibernate

conf work fault 項目 -i extends struts2 scrip map SSH框架實現了視圖、控制器、和模型的徹底分離,同時還實現了業務邏輯層與持久層的分離。 Spring實現了MVC中的 Controller的功能,Struts實現Web視圖的功能

【跟我學oracle18c】第十八天:Multitenant Architecture:2.3 Application root,pdb,Container Maps專項測試對應例項實踐

                         對映表指定元資料鏈接的公共表中的一列,並使用分割槽將不同的應用程式PDBs與不同的列值關聯起來。通過這

Maven打包時跳過測試maven-surefire-plugin

1、在pom檔案新增 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <

大資料測試開源優測

什麼是BI? BI(Business Intelligence)即商務智慧,它是一套完整的解決方案,用來將企業中現有的資料(原始資料或商業資料或業務資料等)進行有效的整合,快速準確地提供報表並提出決策依據,幫助企業做出明智的業務經營決策。 原始資料記錄了企業日常事

Jmeter之app效能測試ios,android

效能測試的相關知識介紹 效能測試: 1、系統容量測試 即求得最大使用者數和最佳使用者數。我們需要對系統做出分析,找出系統的壓力點。 2、系統強度測試 系統在長時間的壓力下效能狀況 3、系統性能瓶頸 需要分析可能對系統造成瓶頸的邏輯業務,然後才能進行效能測試 效能測試常見分

支付安全性測試 轉自51testing

現在有不少測試朋友做的專案中,可能也會涉及到支付相關的功能。比如:做商城的,做遊戲的以及其他線上交易的網站、APP等。如果支付出了問題,或者使用者拿少的錢通過篡改請求資料購買大金額的商品,如果是實物的話,發貨前還有可能被發現。如果是虛擬商品話費、遊戲幣等就有可能造成損失。

(模板)米勒羅賓素數測試大數素數判斷&&搜尋離合數最近的素數

現在ZRain要讓n個孩子變成天使,每個孩子都有一個RP值,當RP值為一個質數時孩子就能變成天使。但是改變孩子的RP值是有代價的,比如rp從x改到y需要付出|x-y|的代價。ZRain真的太喜歡這些孩子了,他希望這些孩子都變成可愛的天使,但又希望付出最小的代價。   &nbs

模擬高併發的測試不準確哦

模擬高併發的原理就是:利用執行緒池去執行多個執行緒通過httpclient訪問controller  package com.xtzn.utils; import com.alibaba.fastjson.JSONObject; import org.apache.http.

C語言程式設計入門第一次單元測試中國大學MOOC

以下程式碼片段的輸出是:int j=4; for ( int i=j; i<=2*j; i++ ) { switch ( i/j ) { case 0: case 1: p

Hadoop實踐---Hadoop叢集測試MR樣例

Hadoop 自帶的測試程式在{Hadoop安裝目錄}/share/hadoop/mapreduce/hadoop-mapreduce-examples-{hadoop版本}.jar 1.tera

Web相容性測試思維導圖

web相容性測試真實測試思路(思維導圖) web相容性測試-作業系統 web相容性測試-瀏覽器 web相容性測試-解析度 web相容性測試-組合測試場景|相容性測試工具|網速 思維導圖原件下載地址:https://download.

在 Eclipse 中使用 JUnit4 進行單元測試圖文教程一

1 import java.util.*; 2 public class Expression { 3 int a; 4 int b; 5 static int c;//使用者答案 6 int answer;//答案 7 static Scanner

jmeter進行http壓力測試圖文小教程

下載地址:http://jmeter.apache.org/download_jmeter.cgiJMeter基於Java開發,需要系統有安裝JDK環境。解壓後進入bin目錄,點選jmeter.bat

Tomcat伺服器的搭建和測試啟動和關閉

首先保證你是裝過java或者安卓的開發環境,就是已經配置過jdk的情況下,進行如下設定就行,(JDK的環境變數配置網上很全,隨便搜就能配置成功) 在Tomcat官網上下載一個版本解壓後進行如

晶片測試藍橋基礎練習詳解

問題描述   有n(2≤n≤20)塊晶片,有好有壞,已知好晶片比壞晶片多。   每個晶片都能用來測試其他晶片。用好晶片測試其他晶片時,能正確給出被測試晶片是好還是壞。而用壞晶片測試其他晶片時,會隨機給出好或是壞的測試結果(即此結果與被測試晶片實際的好壞無關)。   給出

ios端app效能測試cpu/記憶體/耗電

ios端app效能測試簡要步驟: 一、 準備步驟 1. 下載xcode 可以通過訪問 https://developer.apple.com/xcode/downloads/ 下載最新的xcode的版本 2.開啟xcode,右鍵xcode選擇instruments,如果測試

WPF屬性繫結測試索引器方式

小結:   如果屬性繫結路徑上的任何可通知變化屬性發生改變,其路徑及以下路徑都視為發生了變化,不管是否是可通知變化屬性,都會重新繫結新值。看來微軟對於繫結的機制是下了功夫的,如果採用簡單的反射,路徑尋找的方式,如果頁面元素比較多,層次比較多,效率肯定有問題的,看來有時間得反

spring mvc單元測試帶請求引數

package com.gpl.test; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springfr