☰
VASP 6.3.2 在 Ubuntu 上安装教程:Intel oneAPI 编译配置与验证
2026/9/26 10:50:28 网站建设 项目流程

1. 为什么 VASP 6.3.2 在 Ubuntu 上总装不干净

如果你正在 Ubuntu 上从零部署 VASP 6.3.2,大概率会遇到这几类问题:编译到一半报mkl找不到、mpirun跑起来提示vasp_std: No such file or directory、或者算例跑完能量明显不对。这些坑我基本都踩过一遍,最后发现根因往往不在 VASP 本身,而在 Intel oneAPI 编译器链的选型和环境变量配置上。

VASP 6.3.2 是维也纳大学开发的第一性原理计算软件,做材料、催化、电池方向的科研用户几乎绕不开它。它本身不提供二进制包,必须自己用 Fortran 编译器加 MPI 加数学库编译。Ubuntu 自带的gfortran能编,但性能和 MKL 支持都不如 Intel 的ifort/mpiifort组合。所以这篇教程聚焦一件事:用 Intel oneAPI 的 Base Toolkit 加 HPC Toolkit,在 Ubuntu 22.04 上把 VASP 6.3.2 一次编译通过,并用官方测试算例验证结果。

适合谁看:刚进组要自己搭环境的硕博生、需要复现文献计算但卡在编译环节的科研人员、以及想把 VASP 从旧版升级到 6.3.2 的用户。全程命令可复制,makefile.include给骨架,最后用测试算例确认安装成功。

2. 前置准备:oneAPI 工具链与 VASP 源码

2.1 系统与硬件要求

Ubuntu 22.04 LTS 是当前最稳的选择,20.04 也能用但 glibc 版本偏低。硬盘建议留 40G 以上,因为 oneAPI 两个 Toolkit 装完接近 20G,VASP 编译中间文件再加几个 G。内存 8G 起步,编译阶段比较吃内存。CPU 核数不影响编译,但影响后面测试算例的运行速度。

2.2 下载 Intel oneAPI 两个 Toolkit

oneAPI 对个人和科研用户免费,注册一个 Intel 账号即可。需要下载两个离线安装包:

Base Toolkit 提供 MKL 数学库,HPC Toolkit 提供ifort、mpiifort和 MPI 运行时。版本建议用 2023.2.0,和 VASP 6.3.2 的makefile.include.intel模板匹配度最好。下载页面选 Linux 的 offline 版本,得到.sh安装脚本。

# Base Toolkit 示例下载命令,实际链接以你账号里生成的为准 wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/xxxx/l_BaseKit_p_2023.2.0.49397.sh # HPC Toolkit 示例下载命令 wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/xxxx/l_HPCKit_p_2023.2.0.49440.sh

注意:Intel 的下载链接带时效 token,过期后重新登录账号生成即可,不要直接抄别人博客里的旧链接。

2.3 获取 VASP 6.3.2 源码

VASP 是商业软件,源码需要你所在课题组有 license,从官方或导师提供的渠道获取vasp.6.3.2.tgz。拿到后传到 Ubuntu 机器上,可以用 U 盘、scp或共享文件夹。假设放在/home/yourname/DFT/vasp/目录下。

2.4 安装系统依赖

先更新系统并装基础编译工具:

sudo apt update sudo apt upgrade -y sudo apt install -y build-essential gfortran wget tar bzip2

build-essential提供make、gcc等,gfortran虽然最终不用它编 VASP,但某些辅助脚本会依赖。

3. 可复制配置:oneAPI 安装与 makefile.include 骨架

3.1 安装 Base Toolkit(只勾 MKL)

执行安装脚本:

sh l_BaseKit_p_2023.2.0.49397.sh

图形界面出来后,同意协议,选 Customize。为了省空间,只勾选 Math Kernel Library(MKL),其他如 DPC++、VTune 都不需要。安装路径默认/home/yourname/intel/oneapi,记住这个路径,后面环境变量要用。

3.2 安装 HPC Toolkit(勾 MPI 和 Fortran)

sh l_HPCKit_p_2023.2.0.49440.sh

同样同意协议后选 Customize,勾选 Intel MPI Library 和 Intel Fortran Compiler,这两个是 VASP 编译的核心。装完在/home/yourname/intel/oneapi下会多出mpi和compiler目录。

3.3 激活 oneAPI 环境变量

每次新开终端都要 source 一次:

source /home/yourname/intel/oneapi/setvars.sh

验证是否生效:

which ifort which mpiifort

正常应该输出/home/yourname/intel/oneapi/compiler/.../ifort和/home/yourname/intel/oneapi/mpi/.../mpiifort。如果which找不到,说明路径写错了,检查setvars.sh的实际位置。

3.4 编译 FFTW3 接口库

VASP 用 MKL 自带的 FFTW3 接口,需要先编译出libfftw3xf_intel.a:

cd /home/yourname/intel/oneapi/mkl/2023.2.0/interfaces/fftw3xf source /home/yourname/intel/oneapi/setvars.sh make libintel64

编译完当前目录会出现libfftw3xf_intel.a,记住这个路径,makefile.include里要引用。

3.5 生成 makefile.include 骨架

解压 VASP 源码并复制 Intel 模板:

cd /home/yourname/DFT/vasp tar -zxvf vasp.6.3.2.tgz cd vasp.6.3.2 cp arch/makefile.include.intel makefile.include

然后编辑makefile.include,关键改动如下:

# 编译器前缀,用 mpiifort 走 Intel MPI FC = mpiifort FCL = mpiifort # MKL 路径留空,因为 setvars.sh 已声明 MKLROOT MKLROOT = # FFTW3 接口库路径,指向你刚编译出的 .a 文件 FFTW3_LIB = /home/yourname/intel/oneapi/mkl/2023.2.0/interfaces/fftw3xf/libfftw3xf_intel.a # 优化选项,-xHost 让编译器针对当前 CPU 生成指令 FFLAGS = -assume byterecl -w -O2 -xHost OFLAG = -O2 -xHost # 链接 MKL 和 FFTW3 LLIBS = $(FFTW3_LIB) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm

注意:MKLROOT后面一定要留空。很多教程让你填 MKL 路径,但setvars.sh已经声明了MKLROOT环境变量,再填会冲突导致链接失败。

3.6 开始编译

source /home/yourname/intel/oneapi/setvars.sh make std

make std只编标准版vasp_std,够大多数计算用。如果要编vasp_gam(Gamma 点专用)或vasp_ncl(非共线磁),分别执行make gam和make ncl。编译时间取决于 CPU,一般 30 到 60 分钟。编完在bin/目录下能看到vasp_std。

4. 验证请求:跑官方测试算例确认安装成功

4.1 准备测试算例

VASP 官方提供测试算例包,解压后进入某个算例目录,比如test/si/或你自己课题组的vasp-test:

tar -xvf vasp-test.tar.bz2 cd vasp-test ls

应该看到INCAR、POSCAR、POTCAR、KPOINTS四个输入文件。

4.2 运行 VASP

用 Intel MPI 启动,-np后面跟核数,按你机器实际情况改:

source /home/yourname/intel/oneapi/setvars.sh mpirun -np 4 /home/yourname/DFT/vasp/vasp.6.3.2/bin/vasp_std

如果直接写mpirun -np 4 vasp_std报execvp error on file vasp_std (No such file or directory),说明vasp_std不在PATH里。两个解决办法:一是用完整路径,二是把bin目录加到PATH:

export PATH=/home/yourname/DFT/vasp/vasp.6.3.2/bin:$PATH

4.3 判断运行结果

正常运行会在终端输出迭代信息,最后生成OUTCAR、OSZICAR、CONTCAR等文件。检查OSZICAR最后几行,能量应该收敛:

tail -20 OSZICAR

如果看到类似E0= -10.xxxxx且相邻两步能量差小于EDIFF,说明计算正常。再对比官方参考值,能量误差在 meV 级别就算安装成功。

5. 本篇常见错排查

5.1 编译报错cannot find -lmkl_intel_lp64

这是makefile.include里MKLROOT填了值导致的。把MKLROOT =后面清空,确保setvars.sh已 source,再make std。

5.2mpirun报vasp_std: No such file or directory

两种原因:一是没 source oneAPI 环境,mpiifort的运行时库找不到;二是vasp_std不在PATH。先source setvars.sh,再用完整路径或加PATH。

5.3 编译到fftw3xf报错

检查是否在fftw3xf目录下执行make libintel64,且setvars.sh已 source。如果报ifort: command not found,说明 HPC Toolkit 没装 Fortran 编译器,重新运行安装脚本勾选。

5.4 运行算例能量不收敛或报ZBRENT

多半是POTCAR和POSCAR元素顺序不匹配,或者KPOINTS设置不合理。先确认测试算例是官方原版没被改动,再检查POTCAR是否用cat正确拼接。

5.5 编译时间过长或卡死

-xHost在部分虚拟机里可能触发指令集不兼容,改成-O2去掉-xHost试试。另外编译时内存不足也会卡,关掉其他占内存的程序。

6. 后续计算与工具链衔接

VASP 装好后,日常计算流程是:准备四个输入文件,mpirun提交,分析OUTCAR和vasprun.xml。如果要做高通量计算或自动化流程,可以用 Python 的pymatgen、ASE来生成输入和解析输出。

对于需要长期跑 VASP 任务、同时还想用大模型辅助写分析脚本或排查报错的场景,可以了解下 TaoToken 的 Coding Plan,它面向长期编码和 Agent 工作流,适合把计算脚本编写、结果解析这类重复工作交给模型处理。接入方式参考官方文档,API 地址是 https://taotoken.net/api ,模型对话入口在 https://taotoken.net/models ,API Keys 在 https://taotoken.net/api-keys 管理。这样 VASP 负责算,模型负责帮你写后处理脚本,两边不耽误。

最后提醒一句:makefile.include改完后先make veryclean再重新make std,避免旧的目标文件干扰。编译日志建议重定向到文件,方便出错时回溯:

make std > build.log 2>&1

出问题时grep -i error build.log能快速定位。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询