用户工具

站点工具


atk:高效运行quantumatk

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:高效运行quantumatk [2023/07/29 09:55] – [进程错误] fermiatk:高效运行quantumatk [2024/02/23 15:43] (当前版本) – [内存错误] fermi
行 3: 行 3:
 QuantumATK是成熟的软件平台,运行出现意外错误的情况很少,最常见的是内存和进程错误,这种错误一般出现在块体 DFT(或器件 DFT-NEGF)计算时发生异常终止,log文件没有错误信息或者有如下类似的错误信息: QuantumATK是成熟的软件平台,运行出现意外错误的情况很少,最常见的是内存和进程错误,这种错误一般出现在块体 DFT(或器件 DFT-NEGF)计算时发生异常终止,log文件没有错误信息或者有如下类似的错误信息:
  
 +{{ :atk:f6cfe2a6-07d3-4933-b1e6-8c2e3f1211c6.png?400 |}}
  
- +这种错误信息表明进程被外部终止。
-也就是显示进程被外部终止。+
  
 ===== 进程错误 ===== ===== 进程错误 =====
行 17: 行 17:
 === MPI兼容性 === === MPI兼容性 ===
  
-有时候,QATK自带的 MPIEXEC 可能与本地的环境不兼容,从而出现这种进程频繁异常终止错误,用户可以自行安装测试使用其他版本的 Intel MPI 或 MPICH)。+有时候,QuantumATK自带的 MPIEXEC 可能与本地的环境不兼容,从而出现这种进程频繁异常终止错误,用户可以自行安装测试使用其他版本的 Intel MPI 或 MPICH)。一般公共的 HPC 都会装有多种 MPI 环境,可以直接使用,请咨询 HPC 管理员
  
-  * [[atk:安装配置MPI并行环境]]+  * 也可以参考:[[atk:安装配置MPI并行环境]]
  
 === 内存不足 === === 内存不足 ===
行 27: 行 27:
 ===== 内存错误 ===== ===== 内存错误 =====
  
-很多时候这种进程错误是由于内存读写造成的,要快速处理计算中出现的内存溢出错误,就需要理解以下几点:+很多时候这种进程错误是由于内存读写造成的。除此之外有事内存限制可能是系统管理员为普通用户进行的资源限制,这是QuantumATK会给出明确的内存溢出的错误信息。 
 + 
 +要快速处理计算中出现的内存溢出错误,就需要理解以下几点:
  
   * DFT计算以自洽为一个单元,自洽单元的 MPI 并行与内存消耗是需要考虑的主要因素;   * DFT计算以自洽为一个单元,自洽单元的 MPI 并行与内存消耗是需要考虑的主要因素;
行 36: 行 38:
 更多关于并行的原理,请参考: 更多关于并行的原理,请参考:
   * [[atk:quantumatk并行计算]]   * [[atk:quantumatk并行计算]]
 +
 +自洽单元的并行原理可以参见:
  
 或视频: 或视频:
 +{{url>//player.bilibili.com/player.html?bvid=BV1fG4y1A7Xm 600,400}}
  
 +我们可以在计算前大致估计 DFT 自洽单元需要多少内存:
  
 +  * [[atk:计算的内存需求]]
  
-因此要控制内存占用,主要办法就是: + 
-  控制 DFT 自洽单元内存消耗,如果控制自洽内存消耗,参见:+因此要控制内存占用,主要办法有以下两种。 
 + 
 +=== 控制DFT自洽单元内存消耗 === 
 + 
 +控制DFT自洽单元内存消耗的关键在于不保存计算的中间结果,这将影响计算速度,参见:
     * [[atk:解决quantumatk运行性能和内存消耗问题]]     * [[atk:解决quantumatk运行性能和内存消耗问题]]
-  * 控制启动的MPI进程数。 
  
 +=== 控制并行进程数 ===
  
 +以一个大体系DFT自洽计算为例,我们在 PBS 设置行请求 1 个节点的全部 64 核心的硬件资源:
  
-  * [[atk:计算的内存需求]]+<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.1690595730.txt.gz · 最后更改: 2023/07/29 09:55 由 fermi

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