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 + GotoBlas2SHELL = /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