---
# System prepended metadata

title: HPL & HPCC

---

# HPL & HPCC
###### HPL和HPCC的數學函式庫我皆採用BLAS的函式庫，因為ATLAS的函式庫在安裝上會有權限問題提除非參考HPCC參考1中的singularity寫法。
###### OPENMPI根據官方要求要採用3(含)以前的版本，所以這裡採用OPENMPI 3.1.4。
###### HPL是包含於HPCC的一個測試，所以安裝過程兩者非常接近。
* [[HPL 參考1](https://hackmd.io/@tings0802/demon#HPL-)]
* [[HPL 參考2](https://hackmd.io/@tings0802/test2_02#HPL-sol-2)]
* [[HPCC 參考1](https://hackmd.io/bg_etAIfT8ik175rQR3UgA?view)]
* [[HPCC 參考2](https://hackmd.io/@tings0802/demon#HPCC-)]
* [[HPCC 參考3](https://hackmd.io/@tings0802/test2_02#HPCC)]

## 安裝
安裝步驟：HPL ：OPENMPI -> BLAS -> HPL
安裝步驟：HPCC：OPENMPI -> BLAS -> HPCC

### 預設資料夾(我的習慣)
>* `HOME=/home/nckuhpclab02`
>* `cd $HOME`
>* `mkdir DNLD PROG LYAN`

### 安裝 OPENMPI 3.1.4
* 以 OPENMPI 3.1.4 為例
>* `cd /DNLD`
>* `wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.4.tar.gz`
>* `tar -zxvf openmpi-3.1.4.tar.gz`
>* `cd openmpi-3.1.4`
>* `./configure --prefix=$HOME/PROG/openmpi-3.1.4`
>* `make`
>* `make install`
>* `export PATH=$PATH:$HOME/PROG/openmpi-3.1.4/bin`
>* `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/PROG/openmpi-3.1.4/lib`

### 安裝 BLAS
>* `cd $HOME/PROG`
>* `wget http://www.netlib.org/blas/blas-3.8.0.tgz`
>* `tar xzvf blas-3.8.0.tgz`
>* `cd BLAS-3.8.0`
>* `make`

### 安裝 HPL
>* `cd $HOME/PROG`
>* `wget https://netlib.org/benchmark/hpl/hpl-2.3.tar.gz`
>* `tar xvf hpl-2.3.tar.gz`
>* `cd hpl-2.3`
>* `vim ./setup/Make.Linux_PII_FBLAS`
>> * TOPdir       = $(HOME)/PROG/hpl-2.3
>> * MPdir        = $(HOME)/PROG/openmpi-3.1.4
>> * MPlib        = $(MPdir)/lib/libmpi.so
>> * LAdir        = $(HOME)/PROG/BLAS-3.8.0
>> * LAlib        = $(LAdir)/blas_LINUX.a
>> * CC           = mpicc
>> * LINKER       = mpif77

>* `cp ./setup/Make.Linux_PII_FBLAS .`
>* `make arch=Linux_PII_FBLAS`

### 安裝 HPCC
>* `cd $HOME/PROG`
>* `wget http://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz`
>* `tar -xvf hpcc-1.5.0.tar.gz`
>* `cd hpcc-1.5.0/hpl/`
>* `cp ./setup/Make.Linux_PII_FBLAS ./Make.Linux`
>* `vim Make.Linux`
>> * TOPdir       = $(HOME)/PROG/hpcc-1.5.0/hpl
>> * MPdir        = $(HOME)/PROG/openmpi-3.1.4
>> * MPlib        = $(MPdir)/lib/libmpi.so
>> * LAdir        = $(HOME)/PROG/BLAS-3.8.0
>> * LAlib        = $(LAdir)/blas_LINUX.a
>> * CC           = mpicc
>> * CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall -std=c99
>> * LINKER       = mpif77

>* `cd ..`
>* `make arch=Linux`