VASP 6.3.0 安装包下载:
vasp.6.3.0.tgz
访问密码:

此处内容需要登录后方可阅读。


众所周知,VASP是一款“商用开源”软件(指付费解锁代码,免费什么也没有),其非常负责的态度使得个人没有渠道来正常获取VASP源文件.

Who can apply?
Licenses are issued to well-defined research groups under the direction of a single chair, professor, or group leader at one single physical location. Individual students or entire departments/faculties are not eligible.

参考VASP项目官网Get a lisence.

据校内某团队信息,课题组通过国内代理商花费大约7万余人民币购买了3年的更新. 我对这种定价和模式保留意见,这不符合开源精神,当然,VASP并不是开源软件.

根据sobereva的统计,2024年计算化学公社参与投票的565人,在25款第一性原理程序中投出他们最常用的:
结果表明CP2K与VASP并驾齐驱
这不能说明全部,但是在相当长的一段时间内VASP依然是相当多人的主要计算程序.

在部署以前

目的

博主部署VASP的目的主要是进行学习和可行性验证等,并非实际生产环境,主要保证能跑起来,而非高效的跑起来.

参考

VASP的最简单的安装方法
從零開始透過Spack套件管理器部屬VASP全家桶
在AMD机器上安装DFT计算软件VASP.6.2.0简明教程
使用aocc+aocl从头编译使用openmpi的vasp6

配置

配件名型号数量
CPUAMD Ryzen R9 7950X1
主板华硕 TUF B650M GAMING PLUS WIFI1
内存金士顿 FURY BEAST ddr5 c30 32G2
显卡耕升RTX4070Ti Super 16G 追风1
SSD三星 990 evo plus 2T1

在这里并没有用到显卡,但也有通过GPU加速第一性原理计算的方式. 通常来说,生产实际中为CPU每个核心预留8G内存.

路径

我们使用spack. 据说通过spack部署的VASP相对于直接编译得到的拥有较低的效率,不过这并不在我们的讨论范围内.

Spack is a package manager for supercomputers, Linux, and macOS. It makes installing scientific software easy. Spack isn’t tied to a particular language; you can build a software stack in Python or R, link to libraries written in C, C++, or Fortran, and easily swap compilers or target specific microarchitectures.

经过AMD和各位先辈的努力,现如今利用AOCC和AOCL编译已经可行且效率可观.

部署

布置环境

在root下运行:

export SPACK_ROOT=/opt/spack
git clone -c feature.manyFiles=true https://github.com/spack/spack.git ${SPACK_ROOT}
source ${SPACK_ROOT}/share/spack/setup-env.sh

写入~/.bashrc~/.zshrc等:

export SPACK_ROOT=/opt/spack
source ${SPACK_ROOT}/share/spack/setup-env.sh

随后

source ~/.bashrc #(或.zshrc)

安装AOCC依赖:

apt install lbzip2

安装AOCC:

spack install aocc +license-agreed

自动查找添加编译器:

spack compiler find

确定现有编译器:

spack compilers

加载AOCC

spack load aocc

安装VASP

cd进入有vasp.6.3.0.tgz的目录,随后进行安装。

注意,版本必须填写6.3.0,spack是从本地调用的vasp包,不指明版本将尝试使用[email protected],进而安装失败. spack -j参数同make,后跟随CPU核数(核数高于16核区别不大),其余版本和参数按需调整.

spack install -j 32 [email protected] +openmp +fftlib +hdf5 %aocc ^amdfftw ^amdblis threads=openmp ^amdlibflame ^amdscalapack ^openmpi fabrics=cma,ucx

在7950x上消耗约40分钟,安装完成后加载vasp

spack load vasp %aocc

后续参考下面,注意修改为自己的路径,如/opt/spack/opt/spack/linux-zen4/vasp-6.3.0-k3tpqsutalrz36sefzq63rglfnfjo2f7.

复制.spack到用户目录,以使用编译器等,或切换至目标用户手动查找.

cp -r ~/.spack /home/someone/

vasp.6.3.0.tgz复制解压在合适的位置,如~/vasp

cd ~/vasp
tar -xvzf vasp.6.3.0.tgz
cd vasp.6.3.0

创建软链接

ln -s /opt/spack/opt/spack/linux-zen4/vasp-6.3.0-k3tpqsutalrz36sefzq63rglfnfjo2f7/bin/vasp_std bin/vasp_std
ln -s /opt/spack/opt/spack/linux-zen4/vasp-6.3.0-k3tpqsutalrz36sefzq63rglfnfjo2f7/bin/vasp_gam bin/vasp_gam
ln -s /opt/spack/opt/spack/linux-zen4/vasp-6.3.0-k3tpqsutalrz36sefzq63rglfnfjo2f7/bin/vasp_ncl bin/vasp_ncl

再次加载(不确定是否需要)

spack load vasp %aocc

后记

对于不同算例,不同编译器得到的vasp效率不同. 一些情况下,基于oneAPI(由因特尔开发)的vasp效率会高于AOCC. 实际在使用AMD CPU时,应当采用不同编译器多编译几个版本,在进行测试的后选取效率更高的进行运算.