用户工具

站点工具


atk:通过命令行方式手动提交quantumatk计算

通过命令行方式手动提交QuantumATK计算

运行串行计算

在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算:

#假设ATK安装路径为[atk_installdir]
[atk_installdir]/bin/atkpython input.py | tee log

在Linux单机上并行计算

在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算:

#假设ATK安装路径为[atk_installdir]
[atk_installdir]/libexec/mpiexec.hydra -n 4 [atk_installdir]/bin/atkpython input.py | tee log

注意

  • 在单机上使用MPI并行可能和MKL的多线程并行互相干扰,降低并行效率。应使用环境变量 MKL_NUM_THREADS=1 MKL_DYNAMIC=FALSE 将动态多线程功能关闭。
  • 2017版本以后,QuantumATK使用内置Intel MPI并行,可更好的管理同时使用MPI多进程和MKL多线程并行,敬请测试。

在Linux计算机集群上并行计算

并行提交脚本设置

以下是一个典型的PBS提交脚本,用户可根据实际情况修改使用。用户应对实际安装的系统进行一些测试计算以得到最佳的运行方案。

atk.pbs
#!/bin/bash
## 下载调试此脚本应将中文注释删去,否则可能会有兼容性问题
##
## 提交任务的名称
#PBS -N atktest
## 根据系统提供的队列名设置(这里是low)
#PBS -q low
## 请求计算资源(示例为请求4个节点,每节点20个核)
#PBS -l nodes=4:ppn=20
## 导出环境变量
#PBS -V
## 将out和err合并输出
#PBS -j oe
 
##---------------------------------------------------------
## 设置输入文件的名称
SCRIPT=atktest.py
##---------------------------------------------------------
 
##修改路径以适配系统
##假设ATK安装路径为[atk_installdir]
ATK_BIN_DIR=[atk_installdir]/QuantumATK-2019.03/bin/atkpython
 
## 为适配HPC硬件并正确使用并行网络 mpiexec.hydra可能需要带一些参数,请咨询HPC硬件提供商
MPI_DIR=[atk_installdir]/QuantumATK-2019.03/libexec/mpiexec.hydra
 
## 通知计算时需要访问的License server所在位置或自动搜索
export SNPSLMD_LICENSE_FILE="27020@管理节点主机名或IP"
 
cd $PBS_O_WORKDIR
 
echo ------------------------------------------------------
echo 'Job is running on node(s): '
cat hostile.$PBS_JOBID
echo ------------------------------------------------------
echo PBS: qsub is running on $PBS_O_HOST
echo PBS: originating queue is $PBS_O_QUEUE
echo PBS: executing queue is $PBS_QUEUE
echo PBS: execution mode is $PBS_ENVIRONMENT
echo PBS: current home directory is $PBS_O_HOME
echo PBS: working directory is $PBS_O_WORKDIR
echo PBS: job name is $PBS_JOBNAME
echo PBS: job identifier is $PBS_JOBID
echo PBS: PATH = $PBS_O_PATH
echo PBS: node file is $PBS_NODEFILE
echo ------------------------------------------------------
 
## 将启动的MPI进程总数为NP
NP=$( sort $PBS_NODEFILE | wc -l )
 
## 关闭MKL的OpenMP线程
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=FALSE
 
## 并行计算命令
$MPI_DIR -n $NP $ATK_BIN_DIR $SCRIPT > ${PBS_JOBNAME}.out

正确选择并行网络

目前主流的计算机集群都配备了InfiniBand(IB)高速网络用于节点间并行的高速数据交换,用户应选择IB网络进行并行。

说明

以上脚本的修改需要根据具体的集群hosts文件中的主机名规律进行调试。

atk/通过命令行方式手动提交quantumatk计算.txt · 最后更改: 2020/01/16 21:05 由 fermi

© 2014-2020 费米科技(京ICP备14023855号