用户工具

站点工具


atk:高效运行quantumatk

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:高效运行quantumatk [2023/07/29 09:20] fermiatk:高效运行quantumatk [2024/02/23 15:43] (当前版本) – [内存错误] fermi
行 1: 行 1:
 ====== 高效运行QuantumATK ====== ====== 高效运行QuantumATK ======
  
-QuantumATK是成熟的软件平台,运行出现意外错误的情况很少,最常见的是内存和进程错误+QuantumATK是成熟的软件平台,运行出现意外错误的情况很少,最常见的是内存和进程错误,这种错误一般出现在块体 DFT(或器件 DFT-NEGF)计算时发生异常终止,log文件没有错误信息或者有如下类似的错误信息:
  
 +{{ :atk:f6cfe2a6-07d3-4933-b1e6-8c2e3f1211c6.png?400 |}}
  
 +这种错误信息表明进程被外部终止。
  
-  * [[atk:计算的内存需求]]+===== 进程错误 ===== 
 + 
 +此时,意外终止的原因并不清楚,可能的原因包括以下几种。 
 + 
 +=== 内存读写错误 === 
 + 
 +可能是计算节点大量的内存泄漏。作为测试,可以提交到其他计算节点,看看计算能否完成。解决方式可以是重启不能正常运行的节点。 
 + 
 +=== MPI兼容性 === 
 + 
 +有时候,QuantumATK自带的 MPIEXEC 可能与本地的环境不兼容,从而出现这种进程频繁异常终止错误,用户可以自行安装测试使用其他版本的 Intel MPI 或 MPICH)。一般公共的 HPC 都会装有多种 MPI 环境,可以直接使用,请咨询 HPC 管理员。 
 + 
 +  也可以参考:[[atk:安装配置MPI并行环境]] 
 + 
 +=== 内存不足 === 
 +此时虽然没有明确的内存不足提示,但也可能是由于内存不足造成的,参考下文降低内存需求。 
 + 
 + 
 +===== 内存错误 ===== 
 + 
 +很多时候这种进程错误是由于内存读写造成的。除此之外,有事内存限制可能是系统管理员为普通用户进行的资源限制,这是QuantumATK会给出明确的内存溢出的错误信息。 
 + 
 +要快速处理计算中出现的内存溢出错误,就要理解以下几点: 
 + 
 +  * DFT计算以自洽为一个单元,自洽单元的 MPI 并行与内存消耗是需要考虑的主要因素; 
 +  * DynamicalMatrix、NEB 等都是由多个 DFT 自洽单元构成的,这个单元计算间也在 MPI 进程上并行; 
 +  * 每启动一个 MPI 进程,都会单独占据一份内存。 
 +  * 每个 MPI 并不一定对应于一个处理器物理核心,而是可以多线程的运行在多个核心上。 
 + 
 +更多关于并行的原理,请参考:
   * [[atk:quantumatk并行计算]]   * [[atk:quantumatk并行计算]]
-  * [[atk:解决quantumatk运行性能和内存消耗问题]]+ 
 +自洽单元的并行原理可以参见: 
 + 
 +或视频: 
 +{{url>//player.bilibili.com/player.html?bvid=BV1fG4y1A7Xm 600,400}} 
 + 
 +我们可以在计算前大致估计 DFT 自洽单元需要多少内存: 
 + 
 +  * [[atk:计算的内存需求]] 
 + 
 + 
 +因此要控制内存占用,主要办法有以下两种。 
 + 
 +=== 控制DFT自洽单元内存消耗 === 
 + 
 +控制DFT自洽单元内存消耗的关键在于不保存计算的中间结果,这将影响计算速度,参见: 
 +    * [[atk:解决quantumatk运行性能和内存消耗问题]] 
 + 
 +=== 控制并行进程数 === 
 + 
 +以一个大体系DFT自洽计算为例,我们在 PBS 设置行请求 1 个节点的全部 64 核心的硬件资源: 
 + 
 +<code> 
 +#PBS -l nodes=1:ppn=64 
 +</code> 
 + 
 +一般来说我们会设置启动 64 个 MPI并行进程的计算: 
 +<code> 
 +[atk_dir]/mpi/bin/mpiexec -n 64 -ppn 64 [atk_dir]/bin/atkpython input.py  
 +</code> 
 +在并行提交时,''mpiexec''(或 ''mpirun'')后 -n 所带的参数即要启动的 MPI并行进程数。 
 + 
 +此时需要占用 64 倍的内存。如果我们在不改变请求资源的前提下,减少''-n''后的数字为 32,则计算内存可以减少一半。 
 + 
 +在使用多节点时,可以考虑减少每个节点上的进程数。例如以使用2节点(每节点64核)为例: 
 +<code> 
 +#PBS -l nodes=2:ppn=64 
 +... 
 +... 
 +[atk_dir]/mpi/bin/mpiexec -n 64 -ppn 32 [atk_dir]/bin/atkpython input.py  
 +</code> 
 + 
 +因此为了控制并行内存,可以: 
 +  * 完整请求一个节点的全部核心进行计算; 
 +  * 提减少并行进程数。 
 + 
 +更多提交作业的示例脚本参见: 
 +  * [[atk:通过命令行方式手动提交QuantumATK计算]] 
 + 
 +动力学矩阵(声子)计算是一个特例,由于体系可能会被扩增成超胞,因此需要额外考虑扩增超胞大小的自洽计算内存消耗。 
 +===== License错误 ===== 
 + 
 +License 出错有两种情况,一种是 license 服务停止或由于长时间网络中断导致 license 出错。 
 + 
 +下面这个视频介绍了QuantumATK中 License 浮动机制、计数规则。 
 +{{url>https://player.bilibili.com/player.html?bvid=BV1e54y1w7tD&page=1 600,400}} 
 + 
 +要解决License服务安装和运行错误,请参考:
   * [[atk:scl服务运行与license获取时的常见错误]]   * [[atk:scl服务运行与license获取时的常见错误]]
-  * [[atk:quantumatk见问题排除]]+ 
 +如果是提交的简单性质计算,则提交时先确认license够用,主要是计算作业数(Quantum/Quantum_NEGF)和并行数(DP)。 
 +如果提交的计算由多个独立自洽计算完成,例如声子或NEB结构优化,则还需要考虑并行机制,以声子为例,将''process_per_displacement''设置为总MPI进程数或总MPI进程数除以2,则计算将只使用1个或2个Quantum/QuantumNEGF的license。 
 + 
 +更多信息参见视频: 
 + 
 +{{url>https://player.bilibili.com/player.html?bvid=BV13k4y1s7Pp 600,400}} 
 +===== 图形界面错误 ===== 
 + 
 +尽管 QuantumATK 的运行一般是十分稳定的,但仍然偶尔会发生意外退出等情况,并导致软件图形用户界面部分功能异、卡顿,此时采取必要方法可以重置软件,恢复 QuantumATK 正常运行。一般情况下,仅重置软件部分功能即可。 
   * [[atk:重置quantumatk]]   * [[atk:重置quantumatk]]
 +
 +===== 更多参考 =====
 +
 +  * [[atk:quantumatk常见问题的排除]]
 +
  
  
  
atk/高效运行quantumatk.1690593653.txt.gz · 最后更改: 2023/07/29 09:20 由 fermi

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