VASP计算AIMD的报错解决

VASP计算AIMD的报错解决

出现问题:Information: wavefunction orthogonal band 243 0.8845

参考链接

The message indicates that bands have crossed during the scf procedure, which causes difficulties in the extrapolation of the wave functions and charge densities.

Most probably, the ionic step widths are too large (due to the elevated temperature) to make a reasonable prediction of the wavefunctions and the charges for the next step.

最可能的原因是步长偏大,无法合理预测下一步的波函数和电荷。

添加IWAVPR = 11解决了该问题

出现问题:forrtl: severe (41): insufficient virtual memory

♾️最终解决的方法为更换mpi,为第三个解决方法

尝试的方法:

  1. MAXMEM = 1848,无效

  2. 添加ulimit -s unlimited
    ulimit -l unlimited,无效

  3. 参考链接

    推测为mpi不兼容导致的内存栈溢出。

    解决方法为参考链接中 安装mpi2015解决内存溢出的问题 下的2#内容。

    因为我没有root权限,所以我这里不能全局安装mpi2015,只能通过在自己单独的用户下使用mpi2015,可以参考链接的非root用户方法安装,我这里也重复一下我进行的操作。

    下载文件

    文件的下载可以参考链接直接下载,原作者是存在百度网盘里面的,下载好文件之后再上传到自己的服务器上,找给位置给存放好。

    我这里是存放在自己的software目录下的,然后用tar -zvxf 指令对该压缩包进行解压。

    1
    tar -zxvf soft-hpc.tar.gz

    解压完成之后就会有一个soft-hpc文件夹,里面就有mpi2015的各类文件。

    文件配置

    非root用户安装需要重新配置一下文件,这里需要先查看一下你的安装包所处的绝对路径,可以切换到soft-hpc目录下,然后使用pwd指令查看路径

    1
    2
    cd soft-hpc
    pwd

    复制一下pwd返回的路径,后面修改配置文件的时候会用到,然后切换到soft-hpc\mpi\intelmpi-5.0.2.044目录下,修改soft-hpc.cfg文件,主要需要修改的内容如下图黄框中的内容,需要将这里的内容修改为刚刚pwd得到的路径:

    我pwd返回的就是/home/jason/software/soft-hpc,所以我黄框中的内容也是这个。

    随后还需要修改当前目录下的install.sh文件,修改的内容也是如黄框中所示,将其改为pwd得到的路径,这个要修改的内容在72行,比较靠后:

    安装

    安装的时候需要切换到soft-hpc的目录下,可以看到这个目录下有一个hpcsoft的可执行文件:

    那么就可以直接运行这个文件,输入:

    1
    ./hpcsoft

    然后就会让你输入安装路径,我们直接安装到soft-hpc的目录下即可,也就是输入刚刚pwd返回的路径即可:

    随后会弹出三个安装选项,这里选择2即可:

    接下来就是看你的登陆节点上是否有intel编译器了,一般来说,这里是可以正常安装了,但是对我们课题组的服务器来说,登陆节点没有编译环境,所以到这一步的时候会报错:

    1
    2
    [cabc1] Info: Installing IntelMPI (with intel), please wait a minute ...
    Intel does not installed, please install Intel Compiler firstly!

    那么这里就需要提前加载一下编译环境,加载的办法挺多的,我这里给出我们课题组的办法,就是去手册里面找,在我们课题组的服务器集群介绍手册上面有:

    因为我这里是临时使用编译环境,所以不需要把它添加到.bashrc文件中,直接敲这个指令即可,输入:

    1
    source /soft/profile.d/oneapi_2021.sh intel64

    然后再重复一遍之前的安装步骤,即可正常安装。

    使用

    在成功安装好mpi2015之后,由于这个是安装在自己的用户上的,所以对于使用它还是有一些注意事项的,大概就是我们不能再通过之前vasp脚本的source路径来调用服务器集群中的mpi,而是要切换路径,让它在运行vasp的时候调用我们自己安装好的mpi2015。

    这里先看一下我们自己的vasp.sh,也就是提交任务的脚本:

    其中的:

    1
    source /soft/profile.d/vasp54.sh

    就是加载vasp运行的运行环境,这里可以直接打开vasp54.sh看看:

    其实很简单的两项,第一行就是加载mpi的运行指令,第二行就是加载vasp的运行指令,拆解开来就很好处理了,我们可以将vasp.sh中关于这个环境变量的配置删去,也就是删除source /soft/profile.d/vasp54.sh这一行的内容,自己重新配置运行vasp的环境。

    首先对于vasp的运行指令,由于版本基本没有啥变动,我们可以直接将它写进自己的.bashrc文件中:

    1
    vim ~/.bashrc

    在文件的最后添加:

    1
    export PATH="/soft/vasp5.4.4/vasp.5.4.4/bin:$PATH"

    然后保存并退出,然后输入:

    1
    source ~/.bashrc

    接下来就是关于mpi的选择,这里我们就有两个方案,一个是我以后自己在运行服务器的时候就想一直用mpi2015了,那么我们可以直接仿照配置vasp的方法,将mpi2015的环境变量直接写入.bashrc文件中,直接在.bashrc文件末尾添加:

    1
    source /home/jason/software/soft-hpc/profile.d/mpi_intelmpi-5.0.2.044.sh intel64

    修改完成后保存并推出。然后source一下即可,这个时候我们的任务脚本就变成如下这样的:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash

    #SBATCH -p jason
    #SBATCH -J vasp
    #SBATCH -n 32
    #SBATCH -N 1

    mpirun -np 32 /soft/vasp5.4.4/vasp.5.4.4/bin/vasp_std

    ♾️这个方法我并没有尝试。
    我为了尽量少变动程序,这里就是仅在跑AIMD的时候调用mpi2015,那么我就没有对.bashrc文件进行最后有关mpi的修改,而是对提交任务的脚本进行了修改,相当于设定了一个专门用来跑AIMD的任务脚本,也很简单,首先是vasp运行的配置,跟上面一样,修改.bashrc文件然后source一下,而关于mpi的内容就是写到了vasp.sh里面,我用的vasp.sh如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash

    #SBATCH -p taowu
    #SBATCH -J 15AIMD
    #SBATCH -n 32
    #SBATCH -N 1

    ulimit -s unlimited
    ulimit -l unlimited

    source /home/jason/software/soft-hpc/profile.d/mpi_intelmpi-5.0.2.044.sh intel64

    mpirun -np 32 /soft/vasp5.4.4/vasp.5.4.4/bin/vasp_gam

    关于ulimit -s unlimited和ulimit -l unlimited是我之前做的无效尝试,但是加上也没啥坏处,我这里相当于把mpi环境的加载放到了提交任务之后,而对于普通的vasp任务,我就可以沿用以往的任务提交脚本了。

    这里用的vasp运行指令不是vasp_std而是vasp_gam则是因为跑AIMD用的K点是1*1*1,Gamma点的计算使用vasp_gam可以提高计算效率。


VASP计算AIMD的报错解决
http://phoenixjason.cn/2023/06/07/20230607VASP计算AIMD的报错解决/
作者
Jason
发布于
2023年6月7日
许可协议