1、后台提交作业qsub
语法: qsub [-a date_time] [-A account_string] [-e path] [-h] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-n Node_allocation_Method [-L v1,[v2,[v3,[v4]]]]] [-M user_list] [-N name] [-o path] [-p priority] [-q pool] [-r y|n] [-u user_list] [-v variable_list] [-V] [script]
参数: script参数被省略时,该命令可以从标准输入获得脚本文件名。
-a 间。格式为[[[[CC]YY]MM]DD]hhmm[.SS]。CC表示世纪,YY表示年(后两位数字),MM表示月(两位数字),DD表示天(两位数 字),hh表示小时(两位数字),mm表示分(两位数字),SS表示秒(两位数字)。如果DD指定的是未来日子,而未指定MM,则MM缺省值为当前月,否 则,MM的缺省值为下个月。如果hhmm指定的未来时间,而未指定DD,则DD的缺省值为当天,否则,DD的缺省值为明天。如果提交作业时使用该选项,当 指定时间还没到时,作业状态显示为”W”。
-e 指定错误输出文件名,格式为[hostname:]path_home。Hostname是返回错误输出文件的主机名,path_home是错误输出文件 的绝对路径,如果指定了相对路径,则相对用户的主目录。不使用该选项时,缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件
-o 指定输出文件名,格式为[hostname:]path_home。缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件
-h 指定在提交作业时,设置用户级’u’挂起。如果不指定,则设置挂起类型为’n’,即不挂起。
-I 指定作业以交互方式运行。
-j 指定合并错误输出和实际输出。如果指定’oe’,则合并到标准输出文件中;如果指定’eo’,则合并到标准错误输出文件中.
-k 指定执行主机是否保留错误输出和实际输出。如果指定‘o’,则仅保留标准输出;如果指定’e’,则仅保留标准错误输出;如果指定’oe’或‘eo’,则保留标准输出和标准错误输出;如果指定’n’,则不保留任何输出。
-l 指定作业所需要的资源,设定对可消耗资源的限制。如果不设置,则无限制。例如: resource_name[=[value]][,resource_name[=[value]],…]
LINUX系统可以设置的资源有cput, file, pcput, pmem, pvmem, vmem, walltime, arch, nodes, ncpus等;
Cput指作业的所有进程使用cpu最长时间;
File指作业可以建立单个文件大小的最大限制;
Pcput指作业的单个进程可以使用CPU的最长时间;
vmem指作业可以使用的物理内存的最大值;
Pmem指作业的单个进程可以使用的物理内存的最大值;
Pvmem指作业的单个进程可以使用的虚拟内存的最大值;
walltime指作业处于运行状态的最长时间;
arch 指定系统管理员所定义的系统结构类型;
host指定作业运行的主机名;
nodes指定作业独占使用的结点数目和属性,使用“+”可以连接多种结点的定义。
结点的属性和主机名或数目之间通过“:”分隔。如果不指定结点数,则缺省为1。结点的属性包括ppn(每个结点上的进程数,缺省为1)和系统管理员设置的属性(如batch、bigmem)
例如:请求12个结点,不管其属性
-l nodes=12
请求12个属性为batch的结点和14个属性为bigmem的结点
-l nodes=12:batch+14:bigmem
请求4个结点,每个结点上使用2个CPU
-l nodes=4:ppn=2
software 指作业要求的软件包
-m 定义何时给用户发送有关作业的邮件。可设定的选项有:
n 不发送邮件
a 当作业被批处理系统中断时,发送邮件
b 当作业开始执行时,发送邮件
e 当作业执行结束时,发送邮件
-M 指定发送有关作业信息的邮件用户列表。格式为user[@host][,user@[host],…]缺省值为提交作业的用户。
-N 指定作业的名字。缺省值为脚本的名字,如果没有指定脚本,则为STDIN。
-p 指定作业的优先级,优先级的范围是[-1024, +1023]。缺省值是没有优先级。
-q 指定作业的目的地(结点池),目的地可有三种格式:
pool
@server
pool@server
-r y|n 指定作业是否可重新运行。指定‘y’时,作业可以重新运行;指定’n’时,作业不能重新运行。缺省值为’n’。
-v 格式为variable1,variable2,…或variable1=value,variable2=value,…这些变量和其值可以传递到作业中。
-V 指定qsub命令的所有的环境变量都传递到批处理作业中。
作用: 以脚本文件的形式向批处理服务器提交作业。
举例:
运行MPI程序的脚本cpi.ljrs如下:
#!/bin/sh
### Job name
#LJRS -N test
### Declare job non-rerunable
#LJRS -r n
### Output files
#LJRS -e test.err
#LJRS -o test.log
### Mail to user
#LJRS -m ae
### pool name (small, medium, long, verylong)
#LJRS -q dque
### Number of nodes (node property ev67 wanted)
#LJRS -l nodes=8:batch
# This job’s working directory
echo Working directory is $LJRS_O_WORKDIR
cd $LJRS_O_WORKDIR
echo Running on host ‘hostname‘
echo Time is ‘date‘
echo Directory is ‘pwd‘
echo This jobs runs on the following processors:
echo ‘cat $LJRS_NODEFILE‘
# Define number of processors
NPROCS=‘wc -l < $LJRS_NODEFILE‘
echo This job has allocated $NPROCS nodes
# Run the parallel MPI executable “a.out”
mpirun -v -machinefile $LJRS_NODEFILE -np $NPROCS cpi
1、把脚本文件cpi.ljrs提交到结点池dque中运行。
$ qsub cpi.ljrs
35.console
$ qstat
Job id Name User TimeUse S Pool