用户工具

站点工具


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

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:通过命令行方式手动提交quantumatk计算 [2023/05/13 21:19] – [在Linux单机上并行计算] fermiatk:通过命令行方式手动提交quantumatk计算 [2023/09/03 16:23] (当前版本) – [并行提交脚本设置] fermi
行 1: 行 1:
 ====== 通过命令行方式手动提交QuantumATK计算 ====== ====== 通过命令行方式手动提交QuantumATK计算 ======
  
-===== 运行串行计算 =====+===== 串行计算 =====
 在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算: 在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算:
 <code bash> <code bash>
行 8: 行 8:
 </code> </code>
  
-===== 在Linux单机上并行计算 =====+===== 在 Linux 并行计算 =====
 在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算: 在Linux单机上安装好并行环境后,可以直接通过交互式命令来并行计算:
 <code bash> <code bash>
行 19: 行 19:
 === 注意 === === 注意 ===
   * 在单机上使用MPI并行可能和MKL的多线程并行互相干扰,降低并行效率。应使用环境变量 MKL_NUM_THREADS=1 MKL_DYNAMIC=FALSE 将动态多线程功能关闭。   * 在单机上使用MPI并行可能和MKL的多线程并行互相干扰,降低并行效率。应使用环境变量 MKL_NUM_THREADS=1 MKL_DYNAMIC=FALSE 将动态多线程功能关闭。
 +  * 大型HPC服务器上的并行计算效率与机器的配置和管理方式强烈相关,用户应当与HPC管理员和技术人员协商如何进行提交脚本的设置。
 </WRAP> </WRAP>
 ===== 在Linux计算机集群上并行计算 ===== ===== 在Linux计算机集群上并行计算 =====
行 24: 行 25:
 ==== 并行提交脚本设置 ==== ==== 并行提交脚本设置 ====
  
-以下是个典型的PBS提交脚本,用户根据实际情况修改使用用户应对实际安装的系统进行一些测试计算以得到最佳的运行方案。+以下是个典型的提交脚本示例,用户需要根据实际情况修改。调试成功后,应对实际安装的系统进行一些测试计算以得到最佳的运行方案。 
 + 
 +=== PBS ===
  
 <file bash atk.pbs> <file bash atk.pbs>
行 42: 行 45:
  
 ##--------------------------------------------------------- ##---------------------------------------------------------
-## 设置输入文件的名称 +## 设置输入文件的名称(不写.py) 
-SCRIPT=atktest.py+SCRIPT=atktest
 ##--------------------------------------------------------- ##---------------------------------------------------------
  
 ##修改路径以适配系统 ##修改路径以适配系统
 ##假设ATK安装路径为[atk_installdir] ##假设ATK安装路径为[atk_installdir]
-ATK_BIN_DIR=[atk_installdir]/QuantumATK-2019.03/bin/atkpython+ATK_BIN_DIR=[atk_installdir]/QuantumATK-2022.12/bin/atkpython
  
-## 为适配HPC硬件并正确使用并行网络 mpiexec.hydra可能需要带一些参数,请咨询HPC硬件提供商 +## 为适配HPC硬件并正确使用并行网络 mpiexec.hydra可能需要带一些参数,请咨询HPC硬件或服务商 
-MPI_DIR=[atk_installdir]/QuantumATK-2019.03/libexec/mpiexec.hydra+MPI_DIR=[atk_installdir]/QuantumATK-2022.12/mpi/bin/mpiexec
  
 ## 通知计算时需要访问的License server所在位置或自动搜索 ## 通知计算时需要访问的License server所在位置或自动搜索
 export SNPSLMD_LICENSE_FILE="27020@管理节点主机名或IP" 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 ## 将启动的MPI进程总数为NP
行 81: 行 66:
 export MKL_NUM_THREADS=1 export MKL_NUM_THREADS=1
 export MKL_DYNAMIC=FALSE export MKL_DYNAMIC=FALSE
 +
  
 ## 并行计算命令 ## 并行计算命令
-$MPI_DIR -n $NP $ATK_BIN_DIR $SCRIPT > ${PBS_JOBNAME}.out+cd $PBS_O_WORKDIR 
 +$MPI_DIR -n $NP $ATK_BIN_DIR ${SCRIPT}.py > ${SCRIPT}.out
  
 </file> </file>
-==== 正确选择并行网络 ==== 
  
-目前主流计算机集群都配备了InfiniBandIB高速网络节点并行的高速数据交换,户应选择IB网络进行并行+=== LSF === 
 + 
 + 
 +<file bash atk.lsf> 
 +#!/bin/sh 
 +#BSUB -q hpc_q 
 +## LSF经常在这里指定所使用的MPI,最后不需要直接写出mpirun命令 
 +## 也可以使用QATK自带的Intel MPI版本,具体如何修改脚本请咨询HPC管理员 
 +#BSUB -a intelmpi   
 +#BSUB -n 12 
 +#BSUB -o output.%J 
 +#BSUB -e error.%J 
 +#BSUB -R "span[ptile=12]" 
 + 
 +##--------------------------------------------------------- 
 +## 设置输入文件的名称不写.py 
 +SCRIPT=atktest 
 +##--------------------------------------------------------- 
 + 
 +##修改路径以适配系统 
 +##假设ATK安装路径为[atk_installdir] 
 +ATK_BIN_DIR=[atk_installdir]/QuantumATK-2022.12/bin/atkpython 
 +## QATK自带的MPI,户应测试使用这个还是HPC安装的其他MPI(仅支持MPICH和Intel MPI) 
 +MPI_DIR=[atk_installdir]/QuantumATK-2022.12/mpi/bin/mpiexec 
 + 
 +## 通知计算时需要访问的License server所在位置或自动搜索 
 +export SNPSLMD_LICENSE_FILE="27020@管理节点主机名或IP" 
 + 
 +## 并行计算命令 
 +## 使用QATK自带MPI时 
 +## $MPI_DIR -n $NP $ATK_BIN_DIR $SCRIPT > $.out 
 +## 使用HPCMPI时 
 +$ATK_BIN_DIR ${SCRIPT}.py > ${SCRIPT}.out 
 + 
 +</file> 
 + 
 +=== SLURM === 
 + 
 + 
 +<file bash atk.srp> 
 +#!/bin/bash 
 +#SBATCH -J test 
 +#SBATCH -p test 
 +#SBATCH --tasks=8    
 +#SBATCH --cpus-per-task=7   
 +#SBATCH -N 2     
 +#SBATCH -o test-%j.out 
 +#SBATCH -e test-%j.err 
 +#SBATCH --no-requeue 
 +#SBATCH --tasks-per-node=4  
 +#SBATCH --ntasks-per-socket=2  
 +#SBATCH --export=ALL 
 + 
 +##--------------------------------------------------------- 
 +## 设置输入文件的名称 
 +SCRIPT=atktest.py 
 +##--------------------------------------------------------- 
 + 
 +##修改路径以适配系统 
 +##假设ATK安装路径为[atk_installdir] 
 +ATK_BIN_DIR=[atk_installdir]/QuantumATK-2022.12/bin/atkpython 
 +## 为适配HPC硬件并正确使并行网络 mpiexec可能需要带一些参数,请咨询HPC硬件或服务商 
 +MPI_DIR=[atk_installdir]/QuantumATK-2022.12/mpi/bin/mpiexec 
 + 
 +## 通知计算时需要访问的License server所在位置或自动搜索 
 +export SNPSLMD_LICENSE_FILE="27020@管理节点主机名或IP" 
 + 
 +## 并行计算命令 
 +$MPI_DIR -n $NP $ATK_BIN_DIR $SCRIPT > $.out 
 + 
 +</file>
  
-<WRAP center important 100%> 
-==== 说明 ==== 
-以上脚本的修改需要根据具体的集群hosts文件中的主机名规律进行调试。 
-</WRAP> 
  
atk/通过命令行方式手动提交quantumatk计算.1683983961.txt.gz · 最后更改: 2023/05/13 21:19 由 fermi

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