Intel平台VASP编译指南
🚀 先决条件与环境准备
Section titled “🚀 先决条件与环境准备”- Intel CPU: 推荐使用支持 AVX、AVX2 或 AVX-512 指令集的新型 CPU,以最大限度地发挥 Intel 编译器和 MKL 的性能。
- Linux 系统: 推荐使用 CentOS/RHEL 或 Ubuntu/Debian 等主流发行版。
您必须安装并配置好以下 Intel 软件套件:
- Intel Fortran Compiler (
ifort) - Intel C Compiler (
icc) - Intel Math Kernel Library (MKL)
- Intel MPI Library (推荐,用于并行计算)
💡 配置环境
确保您已运行 Intel oneAPI 的环境设置脚本,以便系统能找到所有的编译器和库:
Terminal window source /opt/intel/oneapi/setvars.sh
获取 VASP 源代码
Section titled “获取 VASP 源代码”假设您已拥有 VASP 源代码(例如 vasp.x.x.x.tar.gz),并已解压到您的工作目录。
tar -zxvf vasp.x.x.x.tar.gzcd vasp.x.x.x⚙️ 编译 VASP 的准备工作
Section titled “⚙️ 编译 VASP 的准备工作”VASP 的编译主要依赖于一个名为 makefile.include 的配置文件。
复制并修改配置文件
Section titled “复制并修改配置文件”VASP 源码中通常提供了一个适用于 Intel 平台的模板文件。将其复制到主目录下并命名为 makefile.include。
cp arch/makefile.include.intel makefile.include接下来,您需要使用文本编辑器(如 vim 或 nano)编辑 makefile.include 文件。
vim makefile.include📝 makefile.include 核心配置
Section titled “📝 makefile.include 核心配置”以下是针对 Intel 平台的关键配置项。请根据您的 VASP 版本和编译器路径进行调整。
编译器设置 (FCL, CCL)
Section titled “编译器设置 (FCL, CCL)”# Fortran 编译器:使用 Intel FortranFCL = mpif90# 如果不使用 MPI,则使用:FCL = ifort
# C 编译器:使用 Intel C/C++ CompilerCCL = mpiicc# 如果不使用 MPI,则使用:CCL = icc编译选项 (FFLAGS)
Section titled “编译选项 (FFLAGS)”这是性能优化的核心。请根据您的 CPU 类型选择适当的优化级别和指令集。
# 推荐的 Intel 编译标志:FFLAGS = -w -prec-sqrt -pad -ip -O3 -xHOST# -xHOST: 告诉编译器针对当前机器的 CPU 架构进行最高级别优化(例如 AVX512)# -O3: 开启最高级别的优化
# 如果在集群上编译,不确定目标机器架构时,使用通用指令集:# FFLAGS = -w -prec-sqrt -pad -ip -O3 -xCORE-AVX2库设置 (MKL)
Section titled “库设置 (MKL)”正确链接 Intel MKL 库是 VASP 性能的关键。
# 假设 MKLROOT 变量已通过 setvars.sh 正确设置MKL_LIB = $(MKLROOT)/lib/intel64MKL_LIB_SEQ = -L$(MKL_LIB) -lmkl_intel_lp64 -lmkl_sequential -lmkl_coreMKL_LIB_PAR = -L$(MKL_LIB) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm
# 链接行:选择并行或顺序版本BLAS = $(MKL_LIB_PAR)并行计算
如果您使用了
mpif90和mpiicc,那么您应该在BLAS中使用MKL_LIB_PAR,并确保VASP编译时开启了必要的MPI选项(通常是自动处理)。
🔨 执行编译
Section titled “🔨 执行编译”完成 makefile.include 配置后,保存文件。然后使用 make 命令开始编译。
编译标准版本
Section titled “编译标准版本”首先,清除任何旧的编译目标,然后执行标准版本(vasp_std)的编译。
make cleanmake all编译高性能版本 (可选)
Section titled “编译高性能版本 (可选)”VASP 源代码允许您编译针对特定计算优化的不同版本,以获得更高的性能或支持特殊功能。
编译 Gamma 点专用版本。该版本针对仅使用 $\Gamma$ (Gamma) 点的计算进行了优化,速度通常比标准版更快:
make vasp_gamma编译非共线 (Non-Collinear) 和自旋轨道耦合 (SOC) 版本。用于处理复杂的磁性结构和相对论效应:
make vasp_nclPowered by Namyki