在服务器pbs提交R程序的步骤:
在当前.R目录下生成一个.sh文件,如命名为sub.sh,内容如下:
#PBS -N jobname
#PBS -l nodes=cnode2:ppn=1
cd $PBS_O_WORKDIR
R CMD BATCH --no-save Rscript.R
(以上jobname为自定义的任务名称,第二行代码指定把任务提交到node2,占用其中1个节点。还有其他PBS参数指定如walltime,后面的案例中都会有所说明。)
说明:服务器上装了两套R,一套使用gcc编译器,另一套使用icc编译器,默认的为icc,调用gcc的方法为:/public/software/R-3.3.3/gcc/bin/R
或者通过qsub -l提交
qsub -l nodes=cnode2:ppn=1
qstat
是查看所有任务的排队以及运行情况,通常在需要删除或者看自己的程序是否进行运行的时候,会使用这个命令进行查看。
pestat
则是可以在提交代码之前,查看哪些节点有空闲,或者占用率比较小,这样提交的时候就可以选择负荷比较小的节点进行提交。
首先使用qstat
查看你的提交的任务的编号,然后使用del 四位数编号
,即可进行删除。
如果要删除一个用户所有的作业,可以使用qselect
结合xargs
命令,进行作业编号的提取和对指定编号作业的删除
qselect -u user_id | xargs qdel
其中,xargs
命令的作用是对读入标准输入的内容分行,并对其中每一行的内容都执行相同的命令,在这里xargs
读入了前面管道中qselect
命令得到的某用户的所有作业编号,对于每个编号执行了qdel
命令,起到了删除该用户名下所有作业的效果
利用qselect
命令,我们可以增加参数进一步缩减选择的作业范围,详细信息可以参考man qselect
中的说明
参数 | 说明 |
---|---|
-N | 指定作业名字 |
-s | 指定状态 |
-u | 指定用户列表 |
例如,删除某用户所有正在排队的任务我们可以使用如下命令:
qselect -u user_name -s Q | xargs qdel
下面用两个实际的提交方式来进行说明讲解。
#!/bin/sh -x
#PBS -l nodes=cnode2:ppn=10
#PBS -N mytask1
#PBS -l walltime=30000:00:00
#PBS -o stdout_file
#PBS -e stderr_file
#PBS -m abe
#PBS -M mymail@qq.com
cd $PBS_O_WORKDIR
date
hostname
/public/home/name/python36/Python-3.6.5/python36 /public/home/name/code.py
date
上述代码表示:
#!/bin/sh -x
#PBS -l nodes=1:ppn=30
#PBS -N mytask2
#PBS -l walltime=30000:00:00
#PBS -o stdout_file
#PBS -e stderr_file
#PBS -m abe
#PBS -M mymail@qq.com
cd $PBS_O_WORKDIR
date
hostname
/public/home/name/R-3.2.5/bin/R CMD BATCH /public/home/name/code.R /public/home/name/code.Rout
date
这个与上述不同的主要是:
联系客服