用户工具

站点工具

本页面的其他翻译:
  • zh

atk:使用job_manager向本地计算机上提交作业

这是本文档旧的修订版!


使用Job Manager向本地计算机上提交作业

最新版的 QuantumATK NanoLab 提供了功能灵活的Job Manager,可以配置实现:

  • 作业排队、运行、管理;
  • 管理本地计算机、远程的计算用服务器。

本文介绍在本地计算机上提交计算。

  • 本地串行运行;
  • 本地多线程并行;
  • 本地多MPI进程并行。

注意

  • 这里本地计算机的含义是“启动NanoLab图形界面的计算机”。
  • 如果需要了解在远程计算机(即 NanoLab 运行的计算机与运行QuantumATK的计算的服务器不同)上,请参考:

本地机计算队列

在安装好QuantumATK时,软件自动创建本地计算队列(Local)。将作业提交到Local队列即在本地计算机上进行计算。本地作业也支持排队计算,即一个计算完成才开始下一个计算。要实现排队请进行如下设置:

将要进行计算的多个作业作业提交到Local队列(不要选择自动运行),手动开始运行第一个作业,则后续的作业即可自动顺序完成。

串行计算

创建一个新的project,下载这个计算脚本实例(silicon.py),此脚本使用非常多k点运行ATK-DFT计算。

将此脚本拖动到Job Manager上,选择一个local 队列。 计算作业的状态是“pending”,点击Job Settings图标,可以编辑作业的设置。 Job Settings界面主要包括三个部分:

  • Job Type(作业类型)
  • Job properties(任务属性)
  • MPI settings(MPI并行设置)

作业类型可选:Serial(串行)、开启Threading(多线程)、开启MPI并行。(下图)

点击OK设定作业性质。

回到Job Manager,点击Run(运行)图标开始执行计算作业。作业状态从“Pending”到“Running”。

计算作业大约需要1分钟(2.5GHz CPU),结束时task state显示为“Finished”。点击LOG图标可以查看作业日志。

计算的输出结果会出现在VNL主界面的LabFloor里面。

在计算的过程中,可以查看系统的负载,从下图看到,可以看到串行计算尽使用一个CPU核: 尽管计算只使用了一个核,但是计算可能从一个硬件的一个核转移到另一个核。

回到Job Manager,右侧的Property-Value表中列出了所有计算执行的设置细节:

  • QuantumATK的可执行文件路径;
  • Python脚本和log文件的名字;
  • 作业模式(mode)为serial,核数(processors)为1,线程数为1,等等。

使用“Resubmit”按钮可以重新提交计算脚本。在此之前如果修改了计算脚本,则重新提交计算会应用这些更改。

默认的计算作业类型(Type)为“多线程”(Threaded),如果想选择“Serial”或“Multiprocess parallel”应在启动计算之前。

使用“Trash”按钮可以删除队列里的作业。

多线程(Threading)

多线程是一种并行计算的方式。QuantumATK可以使用Intel MKL 中的 openMP 多线程。多线程运行在进行ATK-Classical计算时通常效率比较高。对于ATK-DFT和ATK-SE计算,我们推荐MPI并行。

为测试多线程计算,请下载cnt.py脚本,该脚本使用ATK-Classical计算多壁碳纳米管的动态矩阵(声子性质)。

使用Job Manager执行脚本,选择作业类型(job type)为 “Threaded parallel (single process)”,计算很快结束。

在计算过程中查看系统负载和进程情况,可以看到一个atkpython进程运行,但同时有多个核被占用。这表明任务被分解成多个线程分发在不同的核上。

用这个脚本分别进行串行(serial)和多线程并行(threaded)计算,对比两者的运行时间可以看出多线程并行大大提高了计算的效率:

MPI并行计算

新版的QuantumATK内置并行计算支持,可以直接使用。

在Job Manager上执行silicon.py脚本,选择MPI Parallel方式(即在Job Settings中选择Multiprocess parallel),输入合适的进程数:

Machine Manager

用户可以使用Machine Manager定义多个本地计算队列,例如一个设置为串行,一个设置为MPI并行。

在Job Manager中点击图标打开Machine Manager,点击New→Local,在弹出的窗口中设置计算队列的属性(下图设置一个默认为MPI并行的计算队列):

停止正在进行的计算

要停止正在进行的计算,可以在Job Manager里点击“stop execution of job”。然而,这可能并不会终止正在进行的后台计算。需要用户手动结束进程。

atk/使用job_manager向本地计算机上提交作业.1555729636.txt.gz · 最后更改: 2019/04/20 11:07 由 dong.dong

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