拓冰建站拓冰建站
首页 / 资讯中心 / 正文

VASP 6.3.2 在 Ubuntu 上安装教程:Intel oneAPI 编译配置与验证

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 装完接近 20GVASP 编译中间文件再加几个 G。内存 8G 起步编译阶段比较吃内存。CPU 核数不影响编译但影响后面测试算例的运行速度。2.2 下载 Intel oneAPI 两个 ToolkitoneAPI 对个人和科研用户免费注册一个 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 bzip2build-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 LibraryMKL其他如 DPC、VTune 都不需要。安装路径默认/home/yourname/intel/oneapi记住这个路径后面环境变量要用。3.2 安装 HPC Toolkit勾 MPI 和 Fortransh 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.acd /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 stdmake std只编标准版vasp_std够大多数计算用。如果要编vasp_gamGamma 点专用或vasp_ncl非共线磁分别执行make gam和make ncl。编译时间取决于 CPU一般 30 到 60 分钟。编完在bin/目录下能看到vasp_std。4. 验证请求跑官方测试算例确认安装成功4.1 准备测试算例VASP 官方提供测试算例包解压后进入某个算例目录比如test/si/或你自己课题组的vasp-testtar -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目录加到PATHexport PATH/home/yourname/DFT/vasp/vasp.6.3.2/bin:$PATH4.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 21出问题时grep -i error build.log能快速定位。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门