0 安装gcc和gfortran
以下所有代码都是在root用户权限#下运行
系统是centOS 7.5
yum install gcc
yum install gcc-gfortran
# 测试
gfortran -v
gcc -v
1 安装mpich
# 下载mpich的源码
wget --no-check-certificate https://www.mpich.org/static/downloads/3.3rc1/mpich-3.3rc1.tar.gz
tar zxvf mpich-3.3rc1.tar.gz #这里我用的是mpich-3.3
cd mpich-3.3rc1
./configure -prefix=/usr/local/mpich #这个会运行一段时间
#其中prefix用来指定安装的路径,这样就可以将安装后的所有文件都放到同一个目录下了
make -j4 && make install #这条指令以及上一条指令是安装时常用的一套指令,会很久,慢慢等,j4是四线程
# -j是几个线程编译,可以加快速度
# 配置环境变量
cd ~
vim .bashrc #注意要到主目录中使用
export PATH=/usr/local/mpich/bin:$PATH
source .bashrc
# 测试
# 随意编写一个hello.c文件,然后用mpicc进行编译,生成输出文件 a.out
vim hello.c
# 写入代码
#include<stdio.h>
int main(){
printf("Hello \n");
return 0;
}
# 编译,生成a.out
mpicc hello.c
# 运行
mpirun -np 4 ./a.out
# 如果输出4次hello,则安装成功
2 安装 blas、cblas以及lapack
# 下载源码
wget --no-check-certificate http://www.netlib.org/blas/blas.tgz
wget --no-check-certificate http://www.netlib.org/blas/blast-forum/cblas.tgz
wget --no-check-certificate http://www.netlib.org/lapack/lapack-3.8.0.tar.gz
# 首先解压安装blas
tar -xzf blas.tgz
cd BLAS-3.8.0
make
cp blas_LINUX.a /usr/local/lib # 将生成的.a 复制到规范的lib文件夹
#接下来安装cblas
tar -xzf cblas.tgz
cd CBLAS
# 修改Makefile.in的内容(因为安装cblas需要用到blas,所以要修改blas的路径)
vim Makefile.in
修改其中BLLIB=/usr/local/lib/blas_LINUX.a 即刚刚生成的blas文件
然后
make -j4
# 生成的一个文件在当前的lib下,复制到/usr/local/lib方便使用
cp lib/cblas_LINUX.a /usr/local/lib
#
最后安装lapack:
tar -xzf lapack-3.8.0.tar.gz
cd lapack-3.8.0
#将make.inc.example复制为make.inc(不然会提示找不到文件)
#cp make.inc.example make.inc
#修改make.inc的内容(需要用到blas以及cblas)
vim make.inc
#修改以下内容为你的BLAS和CBLAS位置
BLASLIB=/usr/local/lib/blas_LINUX.a
CBLASLIB=/usr/local/lib/cblas_LINUX.a
# 开始make,报error不要紧,ls . 看看当前目录有没有生成两个.a文件,有就是成功了
make -j4
# 复制.a到那个目录
cp *.a /usr/local/lib
安装HPL
# 下载源码
wget --no-check-certificate http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz
tar -xzf hpl-2.3.tar.gz
cd hpl-2.3
# 复制一份Make.Linux_PII_CBLAS到当前目录
cp setup/Make.Linux_PII_CBLAS ./
vim Make.top
修改 其中的 arch = Linux_PII_CBLAS
vim Makefile
修改其中的 arch = Linux_PII_CBLAS
#获取当前目录
pwd
# 输出 /root/hpl-2.3 记住他
vim Make.Linux_PII_CBLAS
#修改如下{
ARCH = Linux_PII_CBLAS
TOPdir = /root/hpl-2.3 # 你实际的目录,pwd命令获取
MPdir = /usr/local/mpich # mpich的目录,第一步的时候安装的
MPlib = $(MPdir)/lib/libmpich.so /usr/lib64/libpthread-2.17.so /usr/lib64/libc-2.17.so
# 去/usr/lib64目录下,看看libpthread-2.17.so libc-2.17.so有没有,一般都有的
LAdir = /usr/local/lib # 刚刚复制blas到了这个目录
LAinc =
LAlib = $(LAdir)/blas_LINUX.a $(LAdir)/cblas_LINUX.a
CC = /usr/local/mpich/bin/mpicc # 保险一点全路径
LINKER = /usr/local/mpich/bin/mpif77
}
#开始编译 -j是几个线程编译,可以加快速度
make arch=Linux_PII_CBLAS -j4
ls bin/Linux_PII_CBLAS
# 看看是否生成xhpl
# 如果生成了
cd bin/Linux_PII_CBLAS
mpirun -np 4 ./xhpl > HPL-Benchmark.txt
#几分钟后会生成txt
#成功!