它依赖于BLAS(基本线性代数子程序)库,并通过MPI(消息传递接口)进行并行计算
本文旨在详细指导如何在Linux环境下搭建HPL,确保每一步都清晰明了,便于读者顺利实现
一、环境准备 首先,我们需要选择一个合适的Linux发行版
虽然HPL可以在多种Linux系统上运行,但较新的Ubuntu版本(如Ubuntu 18.04和Ubuntu 20.04)以及基于Debian的系统(如Deepin)通常表现更好
如果可能,推荐使用这些系统进行搭建
接下来,确保系统已经安装了必要的编译工具和依赖库
这些工具包括GCC(GNU编译器集合)、GFortran(Fortran编译器)、G++(C++编译器)等
同时,我们需要安装OpenMPI或MPICH,作为并行计算的工具
OpenBLAS或GotoBLAS也是不可或缺的,作为矩阵计算的底层库
在Ubuntu系统上,可以通过以下命令安装这些工具: sudo apt update sudo apt install gcc g++ gfortran openmpi-bin libopenmpi-dev libopenblas-dev 对于CentOS系统,安装过程类似,但命令稍有不同: sudo yum install gcc gcc-gfortran openmpi openmpi-devel openblas-devel 二、下载和编译BLAS BLAS库是进行矩阵计算的基础
下载BLAS源码,通常版本为3.8.0,可以通过以下命令完成: wget http://www.netlib.org/blas/blas-3.8.0.tgz tar -xzf blas-3.8.0.tgz cd BLAS-3.8.0 make 编译完成后,会生成`blas_LINUX.a`文件
为了后续使用,将这个文件复制到`/usr/local/lib`目录下: sudo cpblas_LINUX.a /usr/local/lib 接下来,我们需要CBLAS,它是BLAS的C语言接口
下载CBLAS源码并解压: wget http://www.netlib.org/blas/blast-forum/cblas.tgz tar -xzf cblas.tgz cd CBLAS 在CBLAS目录下,将之前编译的`blas_LINUX.a`文件复制过来,并编译CBLAS: cp /usr/local/lib/blas_LINUX.a ./ make 编译成功后,会生成`cblas_LINUX.a`文件
同样,将这个文件复制到`/usr/local/lib`目录下: sudo cp lib/cblas_LINUX.a /usr/local/lib 三、安装MPI 对于并行计算,MPI是必不可少的
我们可以选择OpenMPI或MPICH
以OpenMPI为例,安装过程如下: sudo apt install openmpi-bin libopenmpi-dev Ubuntu系统 或者 sudo yum install openmpi openmpi-devel CentOS系统 安装完成后,需要配置环境变量
在`~/.bashrc`文件中添加以下内容: export PATH=/usr/local/openmpi/bin:$PATH export LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH 然后,使用`source ~/.bashrc`命令使环境变量生效
四、下载和配置HPL 现在,我们可以下载HPL源码了
通常使用的是HPL 2.3版本: wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz tar -xzf hpl-2.3.tar.gz cd hpl-2.3 解压后,进入`hpl-2.3/setup`目录,找到`Make.Linux_PII_CBLAS`文件,并将其复制到`hpl-2.3`目录下,重命名为`Make.test`: cp