超算小站 超算小站
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
  • 编译环境

  • 基础库

  • 应用软件

    • alamode 编译安装教程
    • ANGSD 编译安装教程
    • BEAST安装使用教程
    • BerkeleyGW-2.1 安装教程
    • COMSOL安装教程
    • CP2K编译安装教程
    • gromacs编译安装教程
    • jfeff安装说明
    • LAMMPS编译安装教程
    • MIgcm编译安装教程
    • MOLPRO安装使用说明
    • nciplot安装说明
    • ovito安装说明(windows+linux)
    • swash编译安装教程
    • UV-CDAT 安装教程
    • VASP编译安装教程
      • 简介
      • 编译环境
      • 编译方法
        • 加载编译环境
        • 安装包配置
        • 修改makefile文件
        • 编译make
        • 配置运行环境
      • 编译方法(简化脚本)
      • 运行
        • 准备输入文件
        • 编写提交脚本
        • 提交任务
        • 查看结果
      • 进阶
    • 如何使用WRF
    • VASP6.x编译安装教程
  • 工具软件

  • 常用语言环境

  • 使用进阶

  • 软件中心
  • 应用软件
mrzhenggang
2017-10-17
目录

VASP编译安装教程

# 简介

VASP 全称 Vienna Ab-initio Simulation Package。它是维也纳大学 Hafner 小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。它是目前材料模拟和计算物质科学研究中最流行的商用软件之一。

官网地址:传送门 (opens new window)。

截止目前(2017.4.22)的最新版本:VASP5.4.4简介 (opens new window)。

下载:商业软件,需要购买版权。

# 编译环境

VASP是FOTRAN语言编写的程序,需要先编译,然后才能运行可执行程序。

因此,需要安装编译器:

  • GNU Compiler (opens new window)
  • INTEL Compiler (opens new window)

以及MPI编译器(如果需要并行计算):

  • MPICH (opens new window)
  • OPENMPI (opens new window)

以及CUDA编译环境(如果需要GPU加速):

  • CUDA (opens new window)

安装neb版本需要下载额外的vtstcode:

  • Transition State Tools for VASP (opens new window)

# 编译方法

我们购买VASP后会得到它的源码包,例如vasp5.4.4.tar.gz。在此我们介绍在linux平台下使用 intel compiler 及 mpich 编译VASP的方法。

# 加载编译环境

不同的平台,编译器的安装及加载方式不同,在此给出最常见的加载方式:

# only on ln2 (192.168.2.4)
source /opt/intel2015/bin/compilervars.sh intel64
export PATH=/usr/local/mpi-intel2015/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpi-intel2015/lib:$LD_LIBRARY_PATH
1
2
3
4

# 安装包配置

假设安装包 vasp.5.4.4.tar.gz 存放在用户根目录下,我们进入根目录,解压缩安装包,并进入解压后的目录:

cd ~ 
tar zxvf vasp.5.4.4.tar.gz
cd vasp.5.4.4
1
2
3

# 修改makefile文件

我们从arch文件夹拷贝一个配置文件到当前目录,然后根据当前系统环境进行适当修改。

cp  ./arch/makefile.include.linux_intel  makefile.include
1

简要分析makefile.include,说几个我们可能会修改的部分吧:

# 预处理配置参数CPP_OPTIONS

# Precompiler options                 
CPP_OPTIONS= -DHOST=\"LinuxIFC\"\
             -DMPI -DMPI_BLOCK=8000 \
             -Duse_collective \
             -DscaLAPACK \
             -DCACHE_SIZE=4000 \
             -Davoidalloc \
             -Duse_bse_te \
             -Dtbdyn \
             -Duse_shmem
1
2
3
4
5
6
7
8
9
10

说明:

  • 这部分是一些预编译选项,以前的版本中(5.3及以前),如果我们想让vasp支持自旋轨道耦合计算,就需要调整这个参数。但从5.4.1开始,默认情况下我们就可以编译出 std 、 ncl 及 gam 版本的vasp,所以暂时不需要手动修改了。

# 编译和链接命令参数

# 修改前
FC         = mpiifort
FCL        = mpiifort -mkl=sequential -lstdc++
# 修改后
FC         = mpif90
FCL        = mpif90  -mkl=sequential -lstdc++
1
2
3
4
5
6

说明:

  • 这部分是用来设定编译时候的编译器及链接参数。mpiifort是 Intel IMPI的命令,我们使用的是 mpich,所以这里需要修改一下,将以上两行中的mpiifort修改为mpif90

# 数学库参数

MKL_PATH   = $(MKLROOT)/lib/intel64
BLAS       =
LAPACK     =
BLACS      = -lmkl_blacs_intelmpi_lp64
SCALAPACK  = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
1
2
3
4
5

说明

  • 这部分是用来定义一些数学库的,BLAS/LAPACK之所以为空,是应为在“FCL”命令中,加入了“-mkl”这个参数,它会自动的链接所需的MKL库。 特别要指出的是,在以前的vasp版本中,BLACS变量默认是“-lmkl_blacs_openmpi_lp64”,我们需要手动修改一下,改为“-lmkl_blacs_intelmpi_lp64”,现在就不用了。因此vasp5.4以后,编译变得简单了许多。

# 编译make

直接执行make即可。

make
1

编译成功后会在bin文件夹下生成三个可执行文件vasp_std、vasp_ncl及vasp_gam。

# 配置运行环境

每次运行 vasp 可执行程序时,需要我们配置可执行程序的路径,以及依赖的动态库路径,如果我们是在用户根目录下编译的vasp,那么运行前请执行:

# vasp
export PATH=$HOME/vasp.5.4.4/bin:$PATH # 这个目录可以依据实际目录调整
# intel 库环境
LUSTRE=`echo $HOME  | awk -F / '{print $2}'`
export LD_LIBRARY_PATH=/$LUSTRE/intel2015_lib:$LD_LIBRARY_PATH
1
2
3
4
5

# 编译方法(简化脚本)

以上编译的步骤,我们可以写成一个脚本进行实现,你需要的做的是:

  1. 将源码包 vasp.5.4.4.tar.gz 和 编译脚本make-vasp5.4.4-th1a.sh 放在统一目录下
  2. 执行 source make-vasp5.4.4-th1a.sh
  3. 等待直到编译完成(需要几十分钟)。

脚本内容就是上面介绍的几个步骤,只是用命令来实现的,建议把以下脚本内容保存为shell脚本,例如名为make-vasp5.4.4-th1a.sh,然后上传到集群目录,并执行脚本即可。

脚本内容如下:

#!/bin/bash
# filename : make-vasp5.4.4-th1a.sh
# 检查
if [ `hostname` != 'ln2' ];then
  echo "Intel compiler 2015 only on ln2, ip is 192.168.2.4"
  echo "Please ssh username@192.168.2.5 and try again"
  exit
fi

# 环境
LUSTRE=`echo $HOME  | awk -F / '{print $2}'`
# only on ln2 (192.168.2.4)
source /opt/intel2015/bin/compilervars.sh intel64
export PATH=/usr/local/mpi-intel2015/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/mpi-intel2015/lib:$LD_LIBRARY_PATH

# vasp
tar zxvf vasp.5.4.4.tar.gz
cd vasp.5.4.4

# cp makefile.include
cp  arch/makefile.include.linux_intel  makefile.include 

# change makefile.include
sed -i "s/mpiifort/mpif90/" makefile.include

# make
time make 2>&1 |tee m.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 运行

下面举例说明如何在天河超算平台下,通过 slurm 作业管理系统,提交vasp程序。

# 准备输入文件

准备一个输入文件,如用vasp的一个标准beachmark算例。

# 编写提交脚本

编写一个名为sub.sh的脚本文件,里面写:

#!/bin/bash
# 添加动态库
LUSTRE=`echo $HOME  | awk -F / '{print $2}'`
export LD_LIBRARY_PATH=/$LUSTRE/intel2015_lib:$LD_LIBRARY_PATH
# 运行算例
yhrun -N 2 -n 24 -p debug /path/to/vasp
1
2
3
4
5
6

参数说明如下:

参数 含义
yhrun slurm作业管理系统中,并行执行mpi程序的命令,类似mpirun
-N 任务所需的总节点数
-n 任务所需的总核数
-p 计算分区
/path/to/vasp_std vasp_std可执行程序所在位置,请替换为实际的路径

vasp_std命令会自动寻找当前目录下的INCAR文件作为输入文件进行计算。

# 提交任务

使用yhbatch命令提交作业:

yhbatch -N 2 -n 24 -p debug sub.sh  
1

# 查看结果

计算完成后会在默认的输出文件OUTCAR中生成结果文件,查看是否正确。

# 进阶

vasp的编译除了这些之外,还有几种其他的情况:

  • 编译neb版本的vasp
  • 编译gpu版本的vasp
  • 编译只优化固定轴的vasp
  • 编译支持wannier90的vasp
  • 编译5.3.5及以前版本的vasp(修改makefile比较复杂)

这些内容如果有感兴趣的朋友可以联系我。

UV-CDAT 安装教程
如何使用WRF

← UV-CDAT 安装教程 如何使用WRF→

Theme by Vdoing | Copyright © 2015-2024 Zheng Gang | MIT License | 津ICP备2021008634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×