代码之家  ›  专栏  ›  技术社区  ›  user5481267

仅用于一个作业的便携式批处理系统负载平衡器输出

  •  1
  • user5481267  · 技术社区  · 7 年前

    Portable Batch System(PBS)

    qsub script.sh
    

    通常情况下 script.sh

    #!/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 "${1}" ]; then
        echo "${1}"
        PBS_ARRAYID=${1}
    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

    我已考虑在上述提交脚本中插入一个条件,以便在不需要的情况下删除输出日志,但是,由于这些作业可能并行运行并且需要大约恒定的时间,因此它无法解决作业运行时的磁盘配额使用问题。

    1 回复  |  直到 7 年前
        1
  •  1
  •   John Zwinck    7 年前

    要丢弃除一个进程外的所有进程的日志,请执行以下操作:

    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。