作业定义和管理#

用户通过作业定义来向系统请求资源,用户也可用命令查看系统信息,作业及任务的状态等。

系统命令#

SkyForm AIP的命令接口是aip。

../_images/aip_cmd.png

普通用户能够使用aip cluster, aip host, 和aip queue来查询系统中的资源,用aip job来运行和管理自身的作业。

系统管理员除了可以运行以上命令外,还可以运行aip admin来重启远程的AIP服务和让AIP服务重读修改过的系统配置。

aip的例子:

../_images/aip_c_i.png ../_images/aip_h_i.png

运行作业#

作业需要一个JSON格式的作业定义。

直接运行命令aip job run会启动默认的文本编辑器让用户编辑JSON作业定义。最基本必填的作业定义参数是作业命令行Command。如下例子:

aip job run
../_images/aip_j_r.png

写入文件退出后,作业开始运行并显示作业命令的输出:

高性能计算作业命令#

SkyForm AIP提供了一组高性能计算作业管理命令。具体使用请参考在线man page。

  • csub:作业提交。例子:

    csub sleep 1h
    
    ../_images/csub.png
  • cjobs:查询作业状态。例子:

    cjobs -l 427
    

    备注

    cjobs和LSF兼容命令bjobs得到相同的结果。

    ../_images/cjobs.png
  • ckill:杀掉作业

  • cstop:暂停作业

  • cresume:回复暂停的作业

  • ctop:把自己的作业放到最前面作为第一个被调度的作业。这只是调整自身作业的调度顺序,不影响其他用户作业的优先级。

  • cbot:把自己的作业放到最前面作为最后被调度的作业。这只是调整自身作业的调度顺序,不影响其他用户作业的优先级。

  • cswitch:作业切换队列。

查看作业#

运行作业后,可以执行以下命令aip job info查看作业:

../_images/aip_j_i.png

命令aip job info -l输出作业JSON格式的详细信息。

命令aip job log看作业的输出。如:

aip j log 5902

另一组作业查看命令是cjobs和bjobs。具体命令使用请参考cjobs的man page(用命令man cjobs)。

例子1:作业434处于暂停状态:

../_images/cjobs434.png

例子2:作业437正在运行,是有远程任务的MPI作业。

../_images/cjobs437.png

作业控制#

  • 杀掉作业:aip job kill jobid

  • 重运行作业,即杀掉目前正在运行的作业,让其重新排队:aip job rerun {jobid}

  • 暂停和恢复后台运行作业:aip job stop jobid; aip job resume jobid

    SkyForm AIP的作业状态和说明见下表:

状态

说明

WAIT或PEND

作业在队列中等待。等待原因可用命令aip j i -l或cjobs -lp查看

RUN

作业在运行

FINISH或DONE

作业运行结束,exit码为0

WSTOP或PSUSP

作业在队列等待时被暂停调度。恢复可用aip j rs

EXIT

作业被杀掉,或以非0的exit码结束

USRSTOP或USUSP

运行作业被用户或系统管理员暂停

SYSSTOP或SSUSP

运行作业被调度器按调度策略暂停

作业状态间的关系见下图。

../_images/jobstatus.png

作业状态间的关系#

查看系统资源#

集群例子的资源情况可以用命令aip来查看。

查看集群配置#

命令:

aip cluster info
aip cluster res

例子:

../_images/aip_c.png

查看系统配置的资源,包括通过从个主机上RESS得到的定制资源:cinfo

../_images/cinfo.png

查看各主机负载和资源使用#

命令:

aip host info
aip host res

例子:

../_images/aip_h_i2.png

查看主机详细信息:

chosts -l
../_images/chosts.png

查看队列情况#

命令:

aip queue info

例子:

../_images/aip_q_i2.png

队列详细信息:

cqueues -l
../_images/cqueues.png

LSF兼容命令#

SkyForm AIP提供与LSF兼容的命令。具体使用可参考LSF的使用说明:

  • bsub :提交作业

  • bjobs:查看作业状态

  • bkill:杀掉作业

  • bqueues:查看队列状态

  • bpost/bread:发布与作业有关的消息,读取与作业有关的消息

  • bpeek:查看实时作业输出

  • lsid:产品和集群信息

  • blaunch:MPI的远程任务执行工具

SLURM兼容命令#

  • sbatch: 作业提交

  • salloc: 交互作业提交

  • srun: 作业中执行的远程任务管理(常用于MPI)

  • sinfo: 集群概况

  • squeue: 队列信息

  • scontrol: 主机、作业信息详情和控制

  • scancel: 杀作业

  • sacct: 作业计量和历史

PBS兼容命令#

  • qsub: 作业提交

  • qstat:作业、队列状态

  • qdel: 杀作业

  • pbsnodes: 主机详情

作业提交资源需求#

参考 csub 里-R参数的说明。