在Ubuntu上安装vasp(step by step)

在Ubuntu上安装vasp(step by step)

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 可执行文件,这里推荐目录

/usr/bin/vasp

在系统目录 /usr/bin 下创建文件夹 vasp,进入文件夹后执行复制命令

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 路径

export PATH=/usr/bin/vasp:$PATH

然后运行如下命令重启终端:

$ source ~/.bashrc

把测试文件放在一个目录下,在同一目录下执行

mpirun -np 4 vastp_std

即可。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值