这是本文档旧的修订版!
使用Job Manager向服务器上提交作业
概述
Job Manager支持设置设置远程服务器提交任务,该方法的特点是:
安全:仅使用SSH端口的加密通信;服务器端无需后台进程,无需单独开放其他端口,有效保障安全性,特别适合公共服务器上部署计算;
简单:支持自动创建任务文件夹和提交脚本,不需要终端登录服务器进行任务提交;
强壮:任务成功提交之后,即可断开与服务器的连接;不必担心网络问题造成的计算中断;无后台进程、数据库等复杂配置,更强壮;
便捷:随时可以联机查看即可查看任务、下载计算结果。
从2017版开始,设置使用Job Manager向服务器提交作业变得格外方便。
在QuantumATK中添加Job Manager中添加计算服务器
QuantumATK中支持两种在远程服务器上运行的方式:
添加Direct模式服务器
之后可以使用diagnostics诊断设置是否正确,当所有项目显示对号时即完成了配置。
添加PBS、LSF、SLURM队列服务器
这里以PBS为例。
在Settings里设置:
Machine Name:可以自定义一个服务器的名称;
Hostname:通常为服务器的IP地址(或主机名、域名)
Port:默认端口为22
Username:登录服务器的用户名
Queue Name:PBS队列名称,可以输入多个,使用逗号分隔;
Path to PBS binaries: PBS(或Torque)命令位置(不含命令本身),可在终端中使用which qsub
命令查看。
在Environment中设置:
Working directory:保存计算任务的文件夹
ATK executable path: atkpython命令的位置
mpiexec executable: mpi命令的位置;
Script to source:要source的脚本(根据服务器一般提交任务的脚本进行设置,建议将mpi PATH等环境变量放在这里)
Export statements:要export的环境变量(变量前不用加export命令);
Modules to load:某些大型服务器要加载的模块;
Raw submission text:自定义的PBS脚本命令,直接写入PBS脚本。
在Resources里设置任务使用的计算资源
number of nodes:提交计算要请求的节点数
numer of cores per node: 每个节点的核心数
Enable MKL_DYNAMIC:是否使用MKL的动态线程(实际并行效果需根据系统情况测试)
提交任务
如果以上设置没有问题,可以尝试提交任务。将作业脚本发送至job manager,选择相应的队列,点击开始按钮即可开始提交计算。
计算一旦开始排队或运行,VNL即可关闭,并断开网络连接。下次连接时,VNL会自动检测作业进度并下载文件。
自定义任务的计算设置
在提交任务时,用户仍有机会修改每个提交任务的计算设置,方法是:
提示
由于为了防止重名覆盖,Job Manager 会在设定的目录下自动为每个作业生成随机的文件夹名称(格式为提交日期和随机字母组合),这为用户手动查找作业目录带来了一定的麻烦。为此,建议在提交任务时,为每个作业添加一个有意义的子目录(如上图中作业队列默认的目录为/home/ddong/atkjobs,提交任务时可以要求job manager 创建子目录 sic_bandstructures),这样便于管理计算作业的文件夹。
作业成功开始排队或计算后,图形界面端即可关闭、断开。下次打开图形界面时,软件自动连接服务器检查作业状态,如果自动检查或下载数据失败,可以在 Job Manager 中使用 Recover Data 来强制下载结果。必要时终端登录服务器检查作业状态。
问题排除