这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:使用job_manager向本地计算机上提交作业 [2019/04/20 11:07] – [串行计算] dong.dong | atk:使用job_manager向本地计算机上提交作业 [2023/07/27 12:09] (当前版本) – [终止正在进行的计算] fermi | ||
---|---|---|---|
行 4: | 行 4: | ||
* 管理本地计算机、远程的计算用服务器。 | * 管理本地计算机、远程的计算用服务器。 | ||
本文介绍在本地计算机上提交计算。 | 本文介绍在本地计算机上提交计算。 | ||
- | * 本地串行运行; | ||
- | * 本地多线程并行; | ||
- | * 本地多MPI进程并行。 | ||
- | <WRAP center tip 80%> | + | <WRAP center tip 100%> |
==== 注意 ==== | ==== 注意 ==== | ||
行 18: | 行 15: | ||
===== 本地机计算队列 ===== | ===== 本地机计算队列 ===== | ||
- | 在安装好QuantumATK时,软件自动创建本地计算队列(Local)。将作业提交到Local队列即在本地计算机上进行计算。本地作业也支持排队计算,即一个计算完成才开始下一个计算。要实现排队请进行如下设置: | + | 在安装好QuantumATK时,软件自动创建本地计算队列(Local)。将作业提交到 Local 队列即在本地计算机上进行计算。在Local队列进行计算时,可以手动开始计算: |
- | {{ :atk:localqueueenabling.png?direct& | + | {{ :atk:capture_20230725154240114.jpg?800 |}} |
- | 将要进行计算的多个作业作业提交到Local队列(不要选择自动运行),手动开始运行第一个作业,则后续的作业即可自动顺序完成。 | + | 也可以选择自动开始计算,并设置根据硬件资源情况选择同时可以运行的作业个数: |
- | ===== 串行计算 ===== | + | |
- | 创建一个新的project,下载这个计算脚本实例([[http:// | + | |
- | 将此脚本拖动到'' | + | {{ :atk:capture_20230725154838119.jpg?800 |}} |
- | {{ :atk:jm_1.png?500 |}} | + | |
- | 计算作业的状态是“pending”,点击'' | + | |
- | {{ : | + | |
- | '' | + | |
- | * Job Type(作业类型) | + | |
- | * Job properties(任务属性) | + | |
- | * MPI settings(MPI并行设置) | + | |
+ | 提交作业数超出时自动排队计算。 | ||
- | 作业类型可选:'' | + | ===== 设置并提交计算作业 |
+ | 打开一个 project 或者创建一个新的 project,设置一个新的计算脚本。 | ||
- | {{ : | + | 将此脚本拖动到'' |
- | 点击'' | + | {{ : |
- | 回到'' | ||
- | {{ : | ||
- | 计算作业大约需要1分钟(2.5GHz CPU),结束时task state显示为“Finished”。点击LOG图标可以查看作业日志。 | + | === 作业类型 === |
- | {{ : | + | |
- | {{ : | + | |
- | 计算的输出结果会出现在VNL主界面的LabFloor里面。 | + | * '' |
- | {{ :atk:jm_7.png? | + | * Threading(多线程):QuantumATK可以使用 Intel [[https:// |
+ | * MPI并行:**对于多数计算计算,我们推荐 MPI 并行,这可以大大提高了计算效率。** 新版的QuantumATK内置并行计算支持,可以直接使用。 | ||
- | <WRAP center round info 90%> | ||
- | 在计算的过程中,可以查看系统的负载,从下图看到,可以看到串行计算尽使用一个CPU核: | ||
- | {{ : | ||
- | 尽管计算只使用了一个核,但是计算可能从一个硬件的一个核转移到另一个核。 | ||
- | {{ : | ||
- | </ | ||
- | 回到'' | ||
- | * QuantumATK的可执行文件路径; | ||
- | * Python脚本和log文件的名字; | ||
- | * 作业模式(mode)为serial,核数(processors)为1,线程数为1,等等。 | ||
- | {{ : | + | 点击 '' |
- | 使用“Resubmit”按钮可以重新提交计算脚本。在此之前如果修改了计算脚本,则重新提交计算会应用这些更改。 | + | {{ :atk:capture_20230725160032705.jpg?800 |}} |
- | {{ :atk:jm_11.png?500 |}} | + | |
- | <WRAP center round info 90%> | + | |
- | 默认的计算作业类型(Type)为“多线程”(Threaded),如果想选择“Serial”或“Multiprocess parallel”应在启动计算之前。 | + | |
- | </ | + | |
- | 使用“Trash”按钮可以删除队列里的作业。 | + | 设置完成后,点击上方按钮栏的开始'' |
- | {{ : | + | |
- | ===== 多线程(Threading) ===== | ||
- | 多线程是一种并行计算的方式。QuantumATK可以使用Intel [[https:// | ||
- | 为测试多线程计算,请下载[[http:// | + | 回到'' |
- | 使用Job Manager执行脚本,选择作业类型(job type)为 “Threaded parallel (single process)”,计算很快结束。 | + | {{ : |
- | {{ : | + | 要终止计算,点击中间栏下方的 '' |
- | <WRAP center info 80%> | + | ===== 监控计算作业 ===== |
- | 在计算过程中查看系统负载和进程情况,可以看到一个atkpython进程运行,但同时有多个核被占用。这表明任务被分解成多个线程分发在不同的核上。 | + | |
- | {{ : | + | |
- | {{ :atk:jm_15.png?450 |}} | + | Job Manager右侧栏会显示计算过程日志,便于我们监控计算流程是否正常运行。 |
- | </ | + | |
+ | ==== 查看系统负载 ==== | ||
+ | |||
+ | |||
+ | 在计算过程中,使用 Windows 下的任务管理器或 Linux 终端的'' | ||
+ | |||
+ | {{ :atk:capture_20230727101451911.jpg?800 |}} | ||
- | 用这个脚本分别进行串行(serial)和多线程并行(threaded)计算,对比两者的运行时间可以看出多线程并行大大提高了计算的效率: | ||
- | {{ : | ||
- | ===== MPI并行计算 ===== | ||
- | 新版的QuantumATK内置并行计算支持,可以直接使用。 | ||
- | 在Job Manager上执行'' | + | ===== 终止正在进行的计算 ===== |
- | {{ : | + | 要停止正在进行的计算,可以在Job Manager里点击“stop execution of job”,显示完成后,可以再次查看任务管理器或top命令结果。 |
- | ===== Machine Manager | + | ===== 删除队列中的计算作业 |
- | 用户可以使用Machine Manager定义多个本地计算队列,例如一个设置为串行,一个设置为MPI并行。 | + | |
- | 在Job Manager中点击图标打开Machine Manager,点击New-> | + | 使用上方'' |
- | {{ : | + | |
- | {{ : | + | |
- | ===== 停止正在进行的计算 ===== | ||
- | 要停止正在进行的计算,可以在Job Manager里点击“stop execution of job”。然而,这可能并不会终止正在进行的后台计算。需要用户手动结束进程。 |