这是本文档旧的修订版!
最新的VNL-ATK 2015中的Job Manager支持设置设置远程服务器提交任务,该方法的特点是:
设置使用Job Manager远程提交并查看任务分为两步:
SSH无密码通信的基本原理是,针对本机客户端生成一个特定的加密密钥,将密钥的private key保存在本机上,将密钥的public key保存于服务器的用户的authroized_keys里;这样以后登录服务器就不必再每次验证用户密码,而是直接验证密钥即可登录。
ssh-keygen -t rsa -C “MyMachine”
(MyMachine可以改成便于标识本机客户端的字符,一直回车结束)cat ~/.ssh/id_rsa.pub
(显示public key,拷贝下)~/.ssh/authorized_keys
,若不存在创建此文件,将上一步拷贝的public key粘贴并保存;如果文件存在,则将上一步拷贝的public key粘贴在文件尾并保存。~/.ssh/authorized_keys
,若不存在创建此文件,将上一步拷贝的public key粘贴并保存;如果文件存在,则将上一步拷贝的public key粘贴在文件尾并保存。conversions
将private key转换保存为文件名VNL_rsa到一固定的目录下(例如用户目录下的.vnl目录下,在下一步中需要填入这个目录);测试设置是否正确,可使用以下脚本尝试ssh登录是否正常(以下脚本中的key_dir、hostname、username要按实际情况修改):
from NL.ComputerScienceUtilities.SSHConnection import SSHConnection import os # -------------------------------------- # # Edit only these 3 settings # -------------------------------------- # key_dir = 'path_to_SSH_keys' hostname = 'HOST.CLUSTER.EDU' username = 'my_user_name' # -------------------------------------- # port = 22 ok = os.path.isdir(key_dir) if ok: print "Sucessfully found local dir with SSH keys." con = SSHConnection(hostname, port, username, key_dir) con.connect() ok = con.isConnected() if ok: print "Connection succesful." else: print "Error: Could not find local dir with SSH keys." # -------------------------------------- #
将以上脚本保存,在editor中修改上面提到的三行,打开Windows的cmd窗口,输入命令:
atkpython test_ssh.py
ssh无密码连接设置成功则会显示:
Sucessfully found local dir with SSH keys. Connection succesful.
目前ATK中支持Direct和PBS两种服务器提交方式:
这里以比较复杂的PBS为例:
计算资源页面的几个设置都对应了PBS脚本中的一些资源请求和使用的参数,可以参考它自动创建的提交任务的pbs脚本中的内容: 例如: Number of nodes 为 X,Number of cores per nodes 为 Y,对应于PBS脚本中
#PBS -l nodes=X:ppn=Y
Number of MPI processes 为 x,Number of MPI processes per nodes 为 y,对应了PBS脚本中的
…/mpirun -np x -ppn y xxxxx/atkkpython *.py
这个页面的设置按照硬件和计算体系大小的情况来进行设置:
一般来说,一个core对应一个MPI process,所以应满足
但是对于特别大(具体和一个计算节点的可用内存有关)的体系,如果内存有问题,则可能需要设置一个CPU对应一个MPI process,加入一个节点有2个CPU,这时:
更大的体系,甚至可以一个节点对应于一个MPI process,这时
跨节点并行的还要注意网络选择等问题,详细情况参见ATK并行计算。
注意:当有任务提交之后,可能无法编辑服务器设置,需要先将任务从该服务器下删除(不会删除服务器上的任务文件夹和已经下载的数据)。
如果以上设置没有问题,可以尝试提交任务。提交任务遇到问题时,需要针对具体问题编辑设置。
提交任务的PBS脚本的详细设置请参考:通过命令行方式手动提交ATK计算。