用户工具

站点工具


atk:高效运行quantumatk

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:高效运行quantumatk [2023/07/29 10:07] – [内存错误] 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 |}}
  
- +这种错误信息表明进程被外部终止。
-也就是显示进程被外部终止。+
  
 ===== 进程错误 ===== ===== 进程错误 =====
行 27: 行 27:
 ===== 内存错误 ===== ===== 内存错误 =====
  
-很多时候这种进程错误是由于内存读写造成的,要快速处理计算中出现的内存溢出错误,就需要理解以下几点:+很多时候这种进程错误是由于内存读写造成的。除此之外有事内存限制可能是系统管理员为普通用户进行的资源限制,这是QuantumATK会给出明确的内存溢出的错误信息。 
 + 
 +要快速处理计算中出现的内存溢出错误,就需要理解以下几点:
  
   * DFT计算以自洽为一个单元,自洽单元的 MPI 并行与内存消耗是需要考虑的主要因素;   * DFT计算以自洽为一个单元,自洽单元的 MPI 并行与内存消耗是需要考虑的主要因素;
行 37: 行 39:
   * [[atk:quantumatk并行计算]]   * [[atk:quantumatk并行计算]]
  
-我们可以在计算前大致估计 DFT 自洽单元需要多少内存: +自洽单元的并行原理可以参见:
- +
-  * [[atk:计算内存需求]]+
  
 或视频: 或视频:
 +{{url>//player.bilibili.com/player.html?bvid=BV1fG4y1A7Xm 600,400}}
  
 +我们可以在计算前大致估计 DFT 自洽单元需要多少内存:
 +
 +  * [[atk:计算的内存需求]]
  
  
行 49: 行 53:
 === 控制DFT自洽单元内存消耗 === === 控制DFT自洽单元内存消耗 ===
  
-参见:+控制DFT自洽单元内存消耗的关键在于不保存计算的中间结果,这将影响计算速度,参见:
     * [[atk:解决quantumatk运行性能和内存消耗问题]]     * [[atk:解决quantumatk运行性能和内存消耗问题]]
  
行 62: 行 66:
 一般来说我们会设置启动 64 个 MPI并行进程的计算: 一般来说我们会设置启动 64 个 MPI并行进程的计算:
 <code> <code>
-[atk_dir]/mpi/bin/mpiexec -n 64 [atk_dir]/bin/atkpython input.py +[atk_dir]/mpi/bin/mpiexec -n 64 -ppn 64 [atk_dir]/bin/atkpython input.py 
 </code> </code>
 在并行提交时,''mpiexec''(或 ''mpirun'')后 -n 所带的参数即要启动的 MPI并行进程数。 在并行提交时,''mpiexec''(或 ''mpirun'')后 -n 所带的参数即要启动的 MPI并行进程数。
行 68: 行 72:
 此时需要占用 64 倍的内存。如果我们在不改变请求资源的前提下,减少''-n''后的数字为 32,则计算内存可以减少一半。 此时需要占用 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.1690596472.txt.gz · 最后更改: 2023/07/29 10:07 由 fermi

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