VASP 编译
VASP 编译
介绍
VASP 中的可执行命令无
-h
等帮助选项官方安装教程:
安装参考资料:
- 【计算材料学-从算法原理到代码实现】视频教程 - 4.1_VASP安装教程_哔哩哔哩_bilibili
- 【计算材料学-从算法原理到代码实现】视频教程 - 4.1_VASP的Intel_OneAPI安装教程_哔哩哔哩_bilibili
- intel oneAPI以及vasp5.4.4安装
- Ubuntu18.04编译VASP5.4.4的详细步骤 - 哔哩哔哩
- VASP 5.4.4极简安装方法(CentOS 7.6+ifort 19)_哔哩哔哩_bilibili
- VASP最简单的安装方法(含全程视频演示) - 思想家公社的门口:量子化学·分子模拟·二次元
- VASP6 编译(含 GPU 版本):编译版本6的VASP
- VASP6.5.0+Intel CPU编译并添加module环境 - 第一性原理 (First Principle) - 计算化学公社
- VASP - 上海交大超算平台用户手册 Documentation
- Instaling VASP - CodiMD
含 VASP 版本更新内容简要介绍:
- VASP 6.5.0(新特性:电声耦合)和 6.4.3: Changelog - VASP Wiki
- VASP - NSC
在 makefile.include
中的 OFLAG 参数里加入 -xhost,这样编译器会使得编译出的程序能够利用当前机子 CPU 能支持的最高档次的指令集以加速计算
VASP 编译
编译前须知
编译条件
- Fortran、C、C++ 编译器
- 数值计算库:FFTW、BLAS、LAPACK、ScaLAPACK
- MPI
VASP.5.4.4、VASP.6.X.X 安装包路径:Master:
/opt/software
;将其拷贝到自己的用户目录下,传输至超算平台)makefile.include 不同架构的含义:makefile.include - VASP Wiki
make.include 文件选择
- VASP.5.4.4 只支持 Intel Classic 编译器
- VASP 6 支持 Intel Classic 和 Intel oneAPI 编译器
1 | # Intel Composer suite and oneAPI Base + HPC toolkits for CPUs |
自定义功能:Customize - makefile.include - VASP Wiki
- HDF5
- Wannier90
- Libxc
- …
VASP.5.4.4 源代码目录结构
1 | vasp.X.X.X (root directory) |
- VASP.6.X.X 源代码目录结构
1 | vasp.x.x.x (root directory) |
三种版本可分开进行编译:
make std
,make gam
,make ncl
make -jN
并行编译的特性只有 VASP6 才支持,VASP5 不支持bin
目录若出现vasp_std
,vasp_gam
,vasp_ncl
可执行文件,则表示编译成功编译得到的三个版本
1 | vasp_std # standard 标准版本 |
Intel oneAPI 套件
Master 上选择 intel_omp 编译,运行
mpirun -n 2 vasp_std
命令会报错;选择 Intel 编译正常安装步骤
1 | # 超算平台编译步骤;Master 可忽略此步骤 |
- VASP.5.4.4 编译最后可能会出现的 remark(无影响)
1 | ifort: command line remark #10412: option '-mkl=sequential' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl=sequential' |
- 对于 2024 及更新的的 Intel oneAPI,不再包含 C++ Compiler Classic(即无 icc、icpc),需对
makefile.include
文件内容进行修改
1 | # 修改前 |
GPU
VASP GPU 版本在小体系下,计算速度与 CPU 版本差不多;大体系下会有加速效果(占用显存较多,一个进程可达 6-7G)
安装步骤
1 | # 考虑在已安装 CPU 版本的情况下另外安装 GPU版本 |
- 出现以下报错:
- 解决方法:将 nvfortran 所在路径添加到环境变量
export PATH=${PATH}:/path/to/nvfortran
- 解决方法:将 nvfortran 所在路径添加到环境变量
1 | -------------------------------------------------------------------------- |
GNU 套件
Mac M1:VASP M1 Mac Compilation Guide · GitHub
- gnu_omp 架构编译 VASP6 + HDF5(耗时 32 min 左右)
Linux
1 | # lib 路径 |
HDF5
- 安装步骤
1 | wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_14_3/src/hdf5-1.14.3.tar.gz |
- 未添加
--enable-parallel
参数会出现以下报错:
1 | configure: error: --enable-cxx and --enable-parallel flags are incompatible. Use --enable-unsupported to override this error. |
- 使用
- HDF5 Preview 插件:只能打开.hdf5 格式,无法打开.h5 格式
- Pandas 的
read_hdf()
不太好用 - vaspout.h5 - VASP Wiki
- h5py 暂不能很好地解析 vaspout.h5 文件中的数据
1 | h5ls data.h5 # 显示 Group 列表 |
VASP.6.3.0 + HDF5
安装步骤
1 | # 超算平台编译步骤 |
- 可能会出现以下报错
1 | error while loading shared libraries: libhdf5_fortran.so.102: cannot open shared object file: No such file or directory |
VASP + VTST 编译
在 VASP 添加过渡态计算功能
参考:
安装步骤:
下载 VTST Code 和 VTST Scripts:Download — Transition State Tools for VASP
修改
src/main.F
源码:
1 | # 替换前 第 3519 行附近 |
- 备份
src/chain.F
;复制 vtstcode-XXX 中对应 VASP 版本(如 vtstcode5、vtstcode6.3;vtstcode6.3 中多了ml_pyamff.F
文件和pyamff_fortran/
目录)的目录下的所有文件到src/
:
1 | cp src/chain.F src/chain.F-org |
- 修改
src/.objects
源码,在chain.o
所在行前添加:
1 | # vtstcode5 和 vtstcode6.1 |
- 使用 vtstcode6.3,还需修改
src/makefile
源码:
1 | # 替换前 |
- 编译:同 VASP 编译步骤
- VASP.6.3.0 + VTST 出现报错:VTST 源码代码有问题
- VASP6.3.2 + vtstcode6.3编译出错 - 第一性原理 (First Principle) - 计算化学公社
- 过渡态神器VTST为什么在VASP6.3编译不成功?因为源代码有问题!
- 解决方法:在 chain.F 第 202 行后添加
ENDIF
1 | mpiifort -free -names lowercase -assume byterecl -w -xHOST -O2 -I/opt/software/intel/oneapi/mkl/2022.1.0/include/fftw -c chain.f90 |
相关问题
- VASP 运行出现
forrtl
报错:forrtl: severe (174): SIGSEGV, segmentation fault occurred - My Community
1 | # 在 提交脚本 / 终端 / ~/.{bash,zsh}rc 中添加命令 |
AMD CPU 与 Intel CPU 编译 VASP 的区别
VASP编译偶遇“Function return parameter requires SSE register while SSE is disabled”
-xHOST
是一个编译器标志,通常用于告诉编译器针对运行当前编译过程的机器的最高可用指令集进行优化。这个标志是 Intel 编译器中的一部分,用于生成可以利用当前处理器所有高级特性的代码
SCALAPACK:高扩展的 LAPACK,主要用于分布式内存体系结构
OneAPI问题:缺少libmkl_intel_*_.so.*文件的解决
自己安装的 Ubuntu 测试,Intel oneAPI 2023 版编译 VASP 6.3.0 报错
1 | minimax_functions1D.F(46): catastrophic error: Function return parameter requires SSE register while SSE is disabled. |
VASP固定基矢优化结构 - Misaraty:对于二维材料,固定 z 方向晶胞参数不变(固定 z 轴),优化 x、y 晶胞参数
- NVHPC 和 OpenACC 介绍(ChatGPT4 生成)
NVHPC(NVIDIA HPC 编译器套件)是由 NVIDIA 提供的一套编译器工具集,专门为高性能计算(HPC)应用设计。它包括了 C、C++ 和 Fortran 语言的编译器,以及对 CUDA 架构的支持。NVHPC 编译器针对 NVIDIA GPU 优化,使得开发者能够有效地将高性能计算任务加速。此外,这个套件还包含了数学库、通信库和调试工具,帮助开发者提高应用程序的性能和可靠性。
OpenACC 是一个开放的编程标准,旨在简化 CPU 和 GPU 等异构计算设备上的并行编程。它允许开发者通过简单的编译器指令来标记代码中的并行区域,无需深入了解底层的硬件架构。这种方式使得代码能够保持可读性和可移植性,同时能够在不同的硬件平台上实现有效的执行。OpenACC 广泛用于科学计算和工程仿真领域,尤其是在需要大规模数据处理和计算的应用中。
NVHPC 编译器套件支持 OpenACC 标准,使得使用这一标准的代码可以直接在 NVIDIA 的 GPU 上进行编译和运行,从而实现高效的加速效果。这种结合提供了一种强大的工具,以利用现代硬件的并行处理能力,加速科学和工程计算的应用程序。