这是本文档旧的修订版!
最新版的 QuantumATK NanoLab 提供了功能灵活的Job Manager,可以配置实现:
本文介绍在本地计算机上提交计算。
在安装好QuantumATK时,软件自动创建本地计算队列(Local)。将作业提交到Local队列即在本地计算机上进行计算。本地作业也支持排队计算,即一个计算完成才开始下一个计算。要实现排队请进行如下设置:
同时关闭自动运行,即不要按下下图所示按钮:
将要进行计算的多个作业作业提交到Local队列(不要选择自动运行),手动开始运行第一个作业,则后续的作业即可自动顺序完成。
用户可以使用Machine Manager定义多个本地计算队列,例如一个设置为串行,一个设置为MPI并行。
在Job Manager中点击图标打开Machine Manager,点击New→Local,在弹出的窗口中设置计算队列的属性(下图设置一个默认为MPI并行的计算队列):
创建一个新的project,设置一个新的计算脚本。
将此脚本拖动到Job Manager
上,选择一个local 队列。
计算作业的状态是“pending”,点击Job Settings
图标,可以编辑作业的设置。
Job Settings
界面主要包括三个部分:
作业类型可选:Serial
(串行)、Threading(多线程)、MPI并行。
多线程是一种并行计算的方式。QuantumATK可以使用Intel MKL 中的 openMP 多线程。
新版的QuantumATK内置并行计算支持,可以直接使用。对于多数计算计算,我们推荐MPI并行,这可以大大提高了计算效率。
在Job Manager上执行silicon.py
脚本,选择MPI Parallel方式(即在Job Settings中选择Multiprocess parallel),输入合适的进程数:
点击OK
设定作业性质。
回到Job Manager
,右侧的Property-Value表中列出了所有计算执行的设置细节:
计算作业执行过程中 task state不断变化“Finished”。点击LOG图标可以查看作业日志。
在计算过程中查看系统负载和进程情况,可以看到一个atkpython进程运行,但同时有多个核被占用。这表明任务被分解成多个线程分发在不同的核上。
使用“Resubmit”按钮可以重新提交计算脚本。在此之前如果修改了计算脚本,则重新提交计算会应用这些更改。
默认的计算作业类型(Type)为“多线程”(Threaded),如果想选择“Serial”或“Multiprocess parallel”应在启动计算之前。
要停止正在进行的计算,可以在Job Manager里点击“stop execution of job”。然而,这可能并不会终止正在进行的后台计算。需要用户手动结束进程。