2
资讯分享
如何快速编译vasp
2022-04-25 19:06:50
78

1 安装Intel编译器和相关的库

将parallel_studio_xe_2019_update1_cluster_edition.tgz包拷贝到Linux里面,通过tar -xzf [文件名]将之解压。如果当前处于图形环境,就进入此目录,在命令行下运行./install_GUI.sh启动Intel Parallel Studio XE的图形界面的安装程序。如果你是在纯文本环境下,就运行./install.sh启动文本界面的安装程序,但是在自定义组件的时候操作比较繁琐。

对于root用户,默认的安装路径是/opt/intel,这里就用默认路径。如果你想省硬盘,安装过程中可以选择自定义,对于编译计算化学程序完全用不着的组件都可以不去装。其中IA32版的组件都不装,因为我们编译程序都是编译64bit版本。要装的组件里只有以下这些是必须的
·Intel Fortran Compiler
·Intel C++ Compiler
·Intel Math Kernel Library 2019 Update 1 for Fortran里的Intel MKL core libraries for Fortran、Fortran 95 interfaces for BLAS and LAPACK、Cluster support for Fortran
·Intel Math Kernel Library 2019 Update 1 for C/C++里的Intel MKL core libraries for C/C++、Cluster support for C/C++
·Intel MPI Library 2019 Update 1里的Intel MPI Library for applications...
·Intel Threading Building Blocks 2019(这是Intel C++ Compiler必须依赖的)
安装时可能会显示缺少32bit库之类,不用管,继续装即可。

装好后,使用比如gedit ~/.bashrc命令编辑当前用户目录下的.bashrc文件,这里面的内容是每次进入bash终端时自动运行的。把下面这行加入其中末尾,用来自动配置Intel Parallel Studio XE的运行环境:
source /opt/intel/parallel_studio_xe_2019/psxevars.sh
(如果你之前装了其它MPI库,应当把.bashrc里相应配置在开头加上#注释掉,免得造成冲突。另外,加入这语句后如果发现使用SSH的File Transfer界面以sftp方式连接失败,应当把这个.sh文件里的echo语句给注释掉或者删掉)

然后重新进入终端,运行ifort -V,如果显示出了编译器的版本,说明编译器已经可以正常使用了。

然后进入/opt/intel/compilers_and_libraries_2019.1.144/linux/mkl/interfaces/fftw3xf,运行make libintel64命令,过一会儿当前目录下会产生libfftw3xf_intel.a库文件。

2 编译VASP

解压VASP包,得到vasp.5.4.4目录。进入此目录,把arch/makefile.include.linux_intel拷到上一级目录下改名为makefile.include,里面的配置专门适合Intel编译器。打开此文件,把其中的OFLAG参数里加入-xhost,这样编译器会使得编译出的程序能够利用当前机子CPU能支持的最高档次的指令集以加速计算,也因此就没必要手动添加其它一些VASP编译教程里诸如-xAVX、-mSSE4.2之类的选项了。

之后运行make all命令开始编译。一般半个小时到一个小时可以编译完毕。

编译完成后,在vasp.5.4.4/bin目录下出现了vasp_gam、vasp_ncl、vasp_std三个可执行文件,分别是Gamma only版,非共线版和标准版。为了使用方便,可以把最常用的vasp_std改名为vasp。然后在~/.bashrc末尾加入以下这行,使得此目录加入到操作系统寻找可执行文件的路径中:
export PATH=$PATH:/sob/vasp.5.4.4/bin
之后重新进入终端,VASP就可以用了。

3 测试VASP

下载测试任务包http://sobereva.com/attach/455/benchmark.Hg.tar.gz,这是个含50个Hg原子的标准测试任务。将之解压,会看到IN-short和IN-long,分别是一个耗时较短和一个耗时较长任务的INCAR文件。这里将IN-short改名为INCAR,进入此目录,输入mpirun -np 4 vasp测试调用四个核心执行此任务,然后检查得到的OUTCAR看是否内容正常,没异常的话就说明完全装好了!

如果运行自己的任务出现异常,把ulimit -s unlimited命令加入到~/.bashrc里重新进入终端再试,此命令可以避免某些操作系统对堆栈内存可用尺寸进行过严限制的问题。

全部评论(0)
只看楼主
暂无数据
--
楼主
Level.2
0 帖子
楼主热帖
暂无数据