Skip to content

VASP软件使用说明

本文主要介绍如何在超算互联网商城使用VASP软件。

1 查找软件

在商城首页输入软件名搜索软件,点击需要使用的软件卡片进入软件商品界面,选择软件版本以及资源配置区域,阅读并同意《服务协议》,点击“立即使用”等待配置完成可以使用该软件;已经使用过的软件会在规格的右上角有一个绿色的“已使用”标识,点击“去使用”可直接使用该软件。

1.png

已经使用过的软件亦可以选择其他可用区域开通软件,或点击“已开通”后面的提交作业方式直接使用。

2.png

2 使用软件

2.1 登录简介

点击“命令行”图标后进入eshell界面,从商城的“命令行”进入终端,终端会显示商品自带的软件应用版本、环境变量和启动路径信息。由启动路径可以得到软件部署的位置。(注:实际使用中请根据下方红框内提供的算例示例进入对应路径。)

2.2 目录结构

本产品软件安装目录为 ~/apprepo/vasp/6.4.2-intelmpi2017_ioptcell,包含app、case、install.log、scripts四个子目录,其中app包含应用软件主体和依赖库;case 包含相关运行算例、作业日志、作业提交脚本等信息;install.log 为VASP安装日志,scripts 为软件环境变量。目录结构如下:
.
├── app # 应用软件主体和依赖库
│ ├── . . .
├── case # 可运行算例、脚本
│ ├── vasp.slurm # slurm脚本文件
│ ├── slurm-51879451.out # 运行日志
│ └── . . .
├── install.log #AMBER安装日志
└── scripts # 应用环境变量
├── env.sh
└── vasp-6.4.2-intelmpi2017_ioptcell

2.3 作业提交

资源调用逻辑如下:用户在登录节点执行脚本,脚本将自动申请计算资源,并在该计算资源上运行计算指令,并将计算结果实时同步到当前目录下。

我们已经为您提供完整的使用脚本:

(1)执行cd ~/apprepo/vasp/6.4.2-intelmpi2017_ioptcell进入软件部署目录,在目录下的case 文件夹中有软件对应的提交脚本。

(2)输入whichpartition可以查询可用队列,复制选中合适的队列名称,这里选择了“xahcnormal”,并打开脚本vasp.slurm进行脚本文件的修改。

(3)替换脚本vasp.slurm中的队列名称为复制好的队列名称,并根据自己的需求更改脚本的配置信息。

(4)如果您需要进行其他修改可参考如下命令:

参数含义
-J vasp指定作业名为abinit
-p kshctest指定使用队列为kshctest
-N 2申请两个计算节点
--ntasks-per-node=32每个节点使用32核
module purge清理当前环境,避免环境冲突
module load vasp-6.4.2-intelmpi2017_ioptcell加载使用的软件以及编译软件使用的环境
srun并行运行命令
--mpi=pmi2intelmpi的通信初始化参数
vasp_std软件执行程序的名字

注意:

  1. -J、-p、-N、--ntasks-per-node=32为slurm调度参数,更多调度命令可使用sbatch --help命令查看;
  2. slurm脚本中的命令依次执行,提交作业时需把脚本和输入文件放在相同文件夹,并在该文件夹下提交作业;
  3. 该示例以仅供参考,其他中心资源请根据实际对应修改队列、核数和软件环境等;
  4. 上述描述为命令行提交作业方式,除此之外还有模板提交和图形提交两种方式(需软件自身支持),具体见“其他作业提交方式”。

2.4 作业提交与结果查看

(1)确认环境变量、修改好脚本后保存退出,使用sbatch vasp.slurm提交作业,并通过squeue查看作业的运行状态。

(2)任务完成后作业会自动结束,并在当前目录生成日志文件slurm-作业号.out或使用tail -f slurm-作业号.out 实时查看。

(3)打开slurm-51879451.out查看作业的日志输出以及检查是否正常结束。

(4)另外可参考如下常用指令进行作业管理:

命令含义简单示例
sbatch批量提交作业命令,后面跟脚本文件sbatch xxx.sh
squeue查看目前提交作业的信息squeue(可显示作业号、作业状态等)
salloc占用空闲计算资源命令salloc -p kshctest -N 1 -n 32
scontrol查看正在计算作业信息scontrol show job jobid
scancel取消作业scancel jobid
sacct查看历史作业sacct -j jobid -X -o elapsed,state,nodelist

注意:请不要在登录节点(login)上直接运行作业计算(编译等日常操作除外),以免影响您的作业正常运行。

3 常见问题

(1)报错:Error reading item ISPIN from file INCAR 解决思路:需要排查下格式问题。如:1)检查INCAR所在路径是否存在空格、INCAR命名格式;2)执行dos2unix INCAR。

(2)vasp-dcu多卡怎么修改脚本,例如要使用8卡进行计算?

解决思路:vasp-dcu多卡脚本在原有基础上仅需要修改#SBATCH -N、#SBATCH -n、gres、for这四处即可。如下:

shell
1卡:
#SBATCH -N 1
#SBATCH -n 8
#SBATCH --gres=dcu:1
for ((j=0; j<1; j++))
 
4卡:
#SBATCH -N 1
#SBATCH -n 32
#SBATCH --gres=dcu:4
for ((j=0; j<4; j++))
 
8卡:
#SBATCH -N 2
#SBATCH -n 64
#SBATCH --gres=dcu:4
for ((j=0; j<4; j++))

(3)vasp的NPAR值一般怎么设置?

解决思路:NPAR一般设置核数开平方的值左右的整数,而且能够整除核数。如:running on 128 total cores 这个核数是128,开平方的值是11.3,能够整除核数是16和8。

(4)vasp NCORE设置不合理报错:cannot subdivide 128 nodes by 5.Fatal error in MPI_topo_test(MPI_COMM_NULL)

解决思路:cannot subdivide是运行核数和NCORE设置不匹配导致,NCORE的数值应能整除运行核数。

(5)报错:forrtl: severe (174): SIGSEGV, segmentation fault occurred 解决思路:导致段错误的原因较多,可以在脚本中添加参数ulimit -s unlimited再提交试下。

(6)报错ERROR:non collinear calculations?#I REFUSE #-DNGXhalf 解决思路:非线性vasp计算需要用vasp_ncl程序来计算。如:mpirun -np 32 vasp_ncl

(7)vasp-DCU报错:HIP ERROR:Error code=2 解决思路:HIP ERROR:Error code=2表示显存溢出,考虑增加卡数 或 减小INCAR中NSIM参数。

(8)计算中途报错:forrtl:No such file or directory. file not found file /XDATCAR

解决思路:排查下计算过程中是否变动过目录名称,这通常由变动目录名称引起。