一些HPC服务器使用Sun Grid Engine(SGE)作为集群的任务管理系统。在使用这类服务器时,我们时常用到的任务管理命令如下:
提交任务:qsub JOB_SCRIPT
查看任务:qstat
删除任务:qdel JOB_ID
任务一般使用shell脚本语言来编写。
在脚本开头注明参数
#$ -cwd
#$ -j y
#$ -l h_rt=00:03:00
-cwd 表示计算任务以当前目录为准,计算结果输出均存放在当前目录,如果不指定,默认使用$HOME目录。
-j y 表示将标准错误输出添加到标准输出之中。
-l h_rt 表示运行时间的上限。
特别的,对于一些比较占内存的计算任务,需要指定内存的上限。
#$ -l h_vmem 8G
如果没有指定内存的上限,那么就会使用系统默认的大小,当程序占用的内容超过指定内存之后,计算任务会被终止,而且此时,有可能没有任何反馈。
这种情况下,可以使用qacct 命令查询已经完成的任务占用的资源。例如:
qacct -j JOB_ID
来查询是否达到系统默认的内存上限。如果输出结果显示,内存占用量达到上限,那么有可能计算任务被系统终止。此时,需要设定内存上限,或者调整内存设定的大小,之后重新计算结果。