赞
踩
## ubuntu版本:22.04
## vasp版本:5.4.4
## 一、Ubuntu操作系统安装:
虚拟机安装,VirtualBox 7.0.8。
分配4颗cpu,4G内存,25G硬盘。
最小化安装,分区分配1.8Gefi系统分区,其余分配在/目录下。
安装完成后,设置账号a,密码a
安装ssh:sudo apt install openssh-server 安装完成后,即可使用ssh命令连接到虚拟机上。
## 二、安装必要的软件包和组件
$ sudo apt install vim
$ sudo apt install make
$ sudo apt install gcc
$ sudo apt install g++
$ sudo apt install gfortran
$ sudo apt install gcc-9 (同时安装版本9)
$ sudo apt install g++-9 (同时安装版本9)
$ sudo apt install gfortran-9 (同时安装版本9)
$ sudo apt install libopenmpi-dev
$ sudo apt install python2
$ sudo apt install libfftw3-dev
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 40
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 40
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100
$ sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 40
$ sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-9 100
可以使用 $ sudo gcc --version
$ sudo g++ --version
$ sudo gfortran --version
来查看当前gcc、g++、gfortran的优先使用版本是不是 9.5
## 三、下载blas, cblas, lapack, scalapack, 并解压所有文件
wget www.netlib.org/blas/blas.tgz
wget www.netlib.org/blas/blast-forum/cblas.tgz
wget www.netlib.org/lapack/lapack-3.4.2.tgz
wget github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.2.0.tar.gz
解压所有文件:tar -zxvf 你需要解压的文件
## 四、进入BLAS文件夹,编译blas
1、gfortran -c -O3 *.f *# 编译所有的 .f 文件,生成 .o文件*
2、ar rv libblas.a *.o *# 链接所有的 .o文件,生成 .a 文件*
3、sudo cp libblas.a /usr/local/lib/ *# 将库文件复制到系统库目录*
## 五、进入CBLAS文件夹,编译cblas
1、cp Makefile.LINUX Makefile.in
#修改Makefile.in文件,添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格)
2、cp ../BLAS-3.10.0/libblas.a testing # 将上一步编译成功的 libblas.a 复制到 CBLAS目录下的testing子目录
3、make # 编译所有的目录
4、sudo cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a # 将库文件复制到系统库目录下
在执行make命令时会报错:
Warning: Rank mismatch in argument ‘strue1’ at (1) (scalar and rank-1) [-Wargume nt-mismatch]
c_sblat1.f:218:48:
218 | CALL STEST1(SASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC)
| 1
Warning: Rank mismatch in argument ‘strue1’ at (1) (scalar and rank-1) [-Wargume nt-mismatch]
gfortran -o xscblat1 c_sblat1.o c_sblas1.o ../lib/cblas_LINUX.a libblas.a
/usr/bin/ld: ../lib/cblas_LINUX.a(cblas_srotg.o): in function `cblas_srotg':
cblas_srotg.c:(.text+0x5): undefined reference to `srotg_'
/usr/bin/ld: ../lib/cblas_LINUX.a(snrm2sub.o): in function `snrm2sub_':
snrm2sub.f:(.text+0x5): undefined reference to `snrm2_'
/usr/bin/ld: ../lib/cblas_LINUX.a(scnrm2sub.o): in function `scnrm2sub_':
scnrm2sub.f:(.text+0x5): undefined reference to `scnrm2_'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:72:xscblat1] 错误 1
make[1]: 离开目录“/home/a/CBLAS/testing”
make: *** [Makefile:180:alltst] 错误 2
但是不影响,lib目录下的cblas_LINUX.a 会生成,可以继续执行下面的安装过程。
## 六、进入lapack文件夹,准备编译lapack以及lapacke
1、cp make.inc.example make.inc # 也可以去INSTALL目录下寻找其他合适的make.inc
修改Makefile中依赖的lib
1、#lib: lapacklib tmglib 用#封掉这一行
2、lib: blaslib variants lapacklib tmglib 启用这一行,去掉#
修改make.inc文件
#BLASLIB = ../../librefblas.a
#LAPACKLIB = liblapack.a
#TMGLIB = libtmglib.a
#LAPACKELIB = liblapacke.a
BLASLIB = /usr/local/lib/libblas.a
CBLASLIB = /usr/local/lib/libcblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
修改lapack_testing.py文件,将第一行的python改为python2
开始编译
sudo make # 编译所有的lapack文件
cd lapacke # 进入lapacke 文件夹,这个文件夹包含lapack的C语言接口文件
make # 编译lapacke
sudo cp include/*.h /usr/local/include/ #将lapacke的头文件复制到系统头文件目录
cd .. #返回到 lapack-3.4.2 目录
sudo cp *.a /usr/local/lib/ # 将生成的所有库文件复制到系统库目录
重新修改make.inc文件
BLASLIB = ../../librefblas.a
LAPACKLIB = liblapack.a
TMGLIB = libtmglib.a
LAPACKELIB = liblapacke.a
#BLASLIB = /usr/local/lib/libblas.a
#CBLASLIB = /usr/local/lib/libcblas.a
#LAPACKLIB = liblapack.a
#TMGLIB = libtmglib.a
#LAPACKELIB = liblapacke.a
编译librefblas.a文件
sudo make
sudo cp *.a /usr/local/lib/
## 七、进入scalapack文件夹,安装scalapack
cp SLmake.inc.example SLmake.inc
make
sudo cp *.a /usr/local/lib
## 八、安装好依赖库后,便可以进入vasp文件夹,编译安装vasp
VASP 5.4.4下载链接 链接:https://pan.baidu.com/s/12vJOF9qiV8_bGKhJg3UR_Q 提取码:9l8u
unzip vasp-5.4.4.zip
cd vasp-5.4.x-master/
tar -xzvf vasp.5.4.4.tar.gz
gunzip patch.5.4.4.16052018.gz
cd vasp.5.4.4/
patch -p0 < ../patch.5.4.4.16052018
创建 /opt/gfortran/fftw-3.3.4-GCC-5.4.1/include 目录
sudo cp /usr/include/fftw3.* /opt//gfortran/fftw-3.3.4-GCC-5.4.1/include/
cp arch/makefile.include.linux_gnu makefile.include
sudo make all
完成后,在bin目录下能看到 vasp_gam vasp_ncl vasp_std 三个文件,意味着安装成功。
## 九、设置环境变量,进行超算测试:
测试文件下载链接 链接:https://pan.baidu.com/s/1bYmM5QwKNhlKUGpRB64Reg 提取码:co8y
根据自己喜好放置 vasp 可执行文件,这里推荐目录
```text
/usr/bin/vasp
```
在系统目录 /usr/bin 下创建文件夹 vasp,进入文件夹后执行复制命令
```text
cp <local-vasp.5.4.4-dir>/bin/vasp_std /usr/bin/vasp/vasp_std
```
执行三次,复制三个版本的可执行文件(记得替换 local-vasp.5.4.4-dir 为自己的 vasp 目录),当然你也可以一次性复制 bin 文件夹。
复制结束后需要添加环境变量,打开 .bashrc 文件,添加复制的 vasp 路径
```text
export PATH=/usr/bin/vasp:$PATH
```
然后运行如下命令重启终端:
```bash
$ source ~/.bashrc
```
把测试文件放在一个目录下,在同一目录下执行
mpirun -np 4 vastp_std
即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。