仅针对一项作业的便携式批处理系统负载平衡器输出

Portable Batch System load balancer output for one job only

我在 Linux 上使用一个使用作业管理软件 Portable Batch System(PBS) 的集群,并按照以下

提交我的作业
qsub script.sh

我的 script.sh 通常采用以下形式,例如,当 运行 使用 R

工作时
#!/bin/bash

#PBS -N jobName
#PBS -o output-log
#PBS -e error-log
#PBS -t 1-10
#PBS -l walltime=12:00:00
#PBS -l nodes=1:ppn=16
#PBS -S /bin/bash


#Early out if non zero exit status.
set -e

if [ -n "" ]; then
    echo ""
    PBS_ARRAYID=
fi

i=${PBS_ARRAYID}

module add languages/R-3.3.1-ATLAS

R --no-save --args ${i} < ~/some_statistics.R

但是,尚不清楚如何使用

生成输出日志
#PBS -o output-log

仅针对作业的一个实例。例如,只输出第一个作业,当 i=1

看过我单位提供的手册,可惜还是不清楚。

我考虑过在上面的提交脚本中插入一个条件来删除不需要的输出日志,但是由于这些作业可能 运行 并行并且需要大约恒定的时间,所以它不会解决作业 运行ning.

时的磁盘配额使用问题

要丢弃除一个进程以外的所有进程的日志:

if [ $i -eq 1 ]; then
    R --no-save --args ${i} < ~/some_statistics.R
else
    R --no-save --args ${i} < ~/some_statistics.R >/dev/null
fi

基本上,当 $i 不是 1 时,将输出重定向到无处。