用户工具

站点工具


atk:使用job_manager向远程服务器上提交作业

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:使用job_manager向远程服务器上提交作业 [2016/03/16 14:01] fermiatk:使用job_manager向远程服务器上提交作业 [2021/12/16 11:17] (当前版本) – ↷ 链接因页面移动而自动修正 211.64.159.76
行 3: 行 3:
 ===== 概述 ===== ===== 概述 =====
  
-最新的VNL-ATK 2015中的Job Manager支持设置设置远程服务器提交任务,该方法的特点是:+2015版开始,Job Manager支持设置设置远程服务器提交任务,该方法的特点是:
  
   * 安全:仅使用SSH端口的加密通信;服务器端无需后台进程,无需单独开放其他端口,有效保障安全性,特别适合公共服务器上部署计算;   * 安全:仅使用SSH端口的加密通信;服务器端无需后台进程,无需单独开放其他端口,有效保障安全性,特别适合公共服务器上部署计算;
行 32: 行 32:
   * 用puttygen生成秘钥(见下图)   * 用puttygen生成秘钥(见下图)
 {{ :atk:puttygen1.png?400 |}}{{ :atk:puttygen2.png?400 |}} {{ :atk:puttygen1.png?400 |}}{{ :atk:puttygen2.png?400 |}}
-  * 拷贝public_key的字符串;+  * 拷贝public_key的字符串;登录到远程服务器,检查是否存在 ''~/.ssh/authorized_keys'',若不存在创建此文件,将上一步拷贝的public key粘贴并保存;如果文件存在,则将上一步拷贝的public key粘贴在文件尾并保存。
 {{ :atk:puttygen3.png?400 |}} {{ :atk:puttygen3.png?400 |}}
-  * 登录到远程服务器,检查是否存在 ''~/.ssh/authorized_keys'',若不存在创建此文件,将上一步拷贝的public key粘贴并保存;如果文件存在,则将上一步拷贝的public key粘贴在文件尾并保存。 
- 
   * 使用菜单中''conversions''将private key转换保存为文件名VNL_rsa到一固定的目录下(例如用户目录下的.vnl目录下,在下一步中需要填入这个目录);   * 使用菜单中''conversions''将private key转换保存为文件名VNL_rsa到一固定的目录下(例如用户目录下的.vnl目录下,在下一步中需要填入这个目录);
 {{ :atk:puttygen_4.png?400 |}} {{ :atk:puttygen_4.png?400 |}}
 +{{ :atk:vnl_vnl_rsa.png?500 |}}
 ==== 测试无密码登录 ==== ==== 测试无密码登录 ====
 +<WRAP center tip 100%>
 +VNL 2016版开始在Job Manager图形界面上直接提供测试诊断功能,方便易用。
 +
 +</WRAP>
 +
 +
 测试设置是否正确,可使用以下脚本尝试ssh登录是否正常(以下脚本中的key_dir、hostname、username要按实际情况修改): 测试设置是否正确,可使用以下脚本尝试ssh登录是否正常(以下脚本中的key_dir、hostname、username要按实际情况修改):
 <file python test_ssh.py> <file python test_ssh.py>
行 67: 行 72:
 </file> </file>
  
-将以上脚本保存,在editor中修改上面提到的三行,之后提交job manager在本地运行即可测试ssh无密码连接到服务器是否正常。+将以上脚本保存,在editor中修改上面提到的三行,打开Windows的cmd窗口输入命令: 
 +<code> 
 +atkpython test_ssh.py 
 +</code> 
 +ssh无密码连接设置成功则会显示: 
 +<code> 
 +Sucessfully found local dir with SSH keys. 
 +Connection succesful. 
 +</code>
  
-如果无密码登录设置正确,则输入用户名之后不需要输入密码即可登录服务器。 
  
 +===== 第二步:在QuantumATK中添加Job Manager中添加远程服务器 =====
  
-===== 第二步:在VNL-ATK中添加Job Manager中添加远程服务器 ===== +目前QuantumATK中支持Direct和PBS两种服务器提交方式:
- +
-目前ATK中支持Direct和PBS两种服务器提交方式:+
  
   * Direct:即服务器上没有PBS等队列系统,提交的计算直接在登录的主机上运行。这种方法常试用于单节点的服务器。   * Direct:即服务器上没有PBS等队列系统,提交的计算直接在登录的主机上运行。这种方法常试用于单节点的服务器。
-  * PBS:即VNL-ATK将通过PBS系统提交任务。+  * PBS:即QuantumATK将通过PBS系统提交任务。
  
 这里以比较复杂的PBS为例: 这里以比较复杂的PBS为例:
行 84: 行 95:
 {{ :atk:selection_002.png?300 |}} {{ :atk:selection_002.png?300 |}}
   * 在Settings里设置名称、IP地址(或主机名、域名)、端口(SSH默认为22),登录的用户名、存储ssh private key的目录、队列名称、PBS(或Torque)命令位置等。   * 在Settings里设置名称、IP地址(或主机名、域名)、端口(SSH默认为22),登录的用户名、存储ssh private key的目录、队列名称、PBS(或Torque)命令位置等。
 +
 {{ :atk:machine_settings_003.png?400 |}} {{ :atk:machine_settings_003.png?400 |}}
   * 在Environment中设置保存计算任务的文件夹、mpi执行命令、要source的脚本(根据服务器一般提交任务的脚本进行设置,建议将mpi PATH等环境变量放在这里)、要export的环境变量(变量前不用加export命令)、Modules to load等。   * 在Environment中设置保存计算任务的文件夹、mpi执行命令、要source的脚本(根据服务器一般提交任务的脚本进行设置,建议将mpi PATH等环境变量放在这里)、要export的环境变量(变量前不用加export命令)、Modules to load等。
行 89: 行 101:
   * 在Resources里设置任务使用的计算资源   * 在Resources里设置任务使用的计算资源
 {{ :atk:machine_settings_006.png?400 |}} {{ :atk:machine_settings_006.png?400 |}}
 +
 +<WRAP center round box 90%>
 +计算资源页面的几个设置都对应了PBS脚本中的一些资源请求和使用的参数,可以参考它自动创建的提交任务的pbs脚本中的内容:
 +例如:
 +**Number of nodes** 为 X,**Number of cores per nodes** 为 Y,对应于PBS脚本中
 +<code>
 +#PBS -l nodes=X:ppn=Y
 +</code>
 +
 +**Number of MPI processes** 为 x,**Number of MPI processes per nodes** 为 y,对应了PBS脚本中的
 +<code>
 +…/mpirun -np x -ppn y xxxxx/atkkpython *.py
 +</code>
 +
 +这个页面的设置按照硬件和计算体系大小的情况来进行设置:
 +
 +一般来说,**一个core对应一个MPI process**,所以应满足
 +  * X*Y=x
 +  * Y=y
 +  * 不勾选 Enable MKL_DYNAMIC
 +
 +但是对于特别大(具体和一个计算节点的可用内存有关)的体系,如果内存有问题,则可能需要设置一个CPU对应一个MPI process,加入一个节点有2个CPU,这时:
 +  * X*2=x
 +  * y=2
 +  * 勾选 Enable MKL_DYNAMIC (需测试此项的加速效果来决定是否勾选)
 +
 +更大的体系,甚至可以一个节点对应于一个MPI process,这时
 +  * x=X
 +  * Y=1
 +  * 勾选 Enable MKL_DYNAMIC(需测试此项的加速效果来决定是否勾选)
 +
 +跨节点并行的还要注意网络选择等问题,详细情况参见[[atk:quantumatk并行计算|QuantumATK并行计算]]。
 +
 +</WRAP>
 +
   * 设置好之后可以看到所有的设置:   * 设置好之后可以看到所有的设置:
 {{ :atk:job_manager_008.png?600 |}} {{ :atk:job_manager_008.png?600 |}}
  
-<WRAP center round tip 80%> +<WRAP center tip 80%> 
-**注意:**当有任务提交之后,可能无法编辑服务器设置,需要先将任务从该服务器下删除(不会删除服务器上的任务文件夹和已经下载的数据)。+==== 注意 ==== 
 +当有任务提交之后,可能无法编辑服务器设置,需要先将任务从该服务器下删除(不会删除服务器上的任务文件夹和已经下载的数据)。
 </WRAP> </WRAP>
- 
 ===== 提交任务 ===== ===== 提交任务 =====
  
-如果以上设置没有问题,可以尝试提交任务。提交任务遇到问题时,需要针对具体问题编辑设置。+如果以上设置没有问题,可以尝试提交任务。将作业脚本发送至job manager,选择相应的队列,点击开始按钮即可开始提交计算。 
 +计算一旦开始排队或运行,VNL即可关闭,并断开网络连接。下次连接时,VNL会自动检测作业进度并下载文件。 
 + 
 +==== 自定义任务的计算设置 ==== 
 + 
 +在提交任务时,用户仍有机会修改每个提交任务的计算设置,方法是: 
 + 
 +  * 向队列提交任务后不立即点击“开始运行按钮”,此时可以点击Job Setting按钮修改计算设置: 
 +{{ :atk:2016-12-06_2_.png?400 |}} 
 +  * 在Resource选项卡中可以临时修改此计算任务的计算资源(与上面队列设置类似): 
 +{{ :atk:job_setting_1.png?400 |}} 
 +  * 在IO选项中可以临时设定此计算任务的目录: 
 +{{ :atk:job_setting_2.png?400 |}} 
 + 
 +<WRAP center tip 80%> 
 +==== 提示 ==== 
 +由于为了防止重名覆盖,Job Manager会在设定的目录下自动为每个作业生成随机的文件夹名称,这为用户手动查找作业目录带来了一定的麻烦。为此,建议在提交任务时,为每个作业添加一个有意义的子目录(如上图中作业队列默认的目录为/home/ddong/atkjobs,提交任务时可以要求job manager创建子目录sic_bandstructures),这样便于管理计算作业的文件夹。 
 +</WRAP> 
 + 
 +==== 问题排除 ==== 
 + 
 + 
 +提交任务遇到问题时,需要针对具体问题编辑设置。 
 + 
 +提交任务的PBS脚本的详细设置请参考:[[atk:通过命令行方式手动提交ATK计算|通过命令行方式手动提交QuantumATK计算]]。 
 + 
atk/使用job_manager向远程服务器上提交作业.1458108063.txt.gz · 最后更改: 2016/03/16 14:01 由 fermi

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