pbs - 扭矩 PBS : Specifying stdout file name to be the job id number

标签 pbs qsub torque

默认情况下,提交作业到扭矩队列的输出将保存到名为 job_name.o658392 的文件中。使用该示例,我想要做的是将输出文件命名为 658392.job_name.log

我知道我可以通过在脚本顶部写入 #PBS -e filename 行来指定输出文件的名称,甚至可以使用诸如 之类的变量文件名中的 $PBS_JOBID。 问题是 $PBS_JOBID 不仅仅是数字 - 相反,它看起来像 658392.some.very.long.host.name

我尝试使用 ${PBS_JOBID/.*},它应该仅引用数字,但问题是我这样做时出错。它显示:无法扩展数据暂存中的目标路径:/path/to/output/${PBS_JOBID/.*}.log

您知道如何以有效的方式指定输出文件名吗?

最佳答案

如果您是管理员,您可以通过设置将其设置为数字作业 ID

qmgr -c 'set server display_job_server_suffix = false'

当然,如果您更改此设置,您希望在没有排队作业时执行此操作。

如果您是普通用户 - 我还没有对此进行测试 - 但我相信,如果您将变量添加到作业环境中,您可以在作业的输出文件中使用该变量。如果您愿意,可以创建一个名为 numeric_jobid 的变量并将其添加到作业的环境中,然后可以在作业的输出文件中使用它。我相信您可以在 job_script 中添加以下几行:

#PBS -j oe 
#PBS -o $numeric_jobid

然后

jobid=`qsub job_script`
numeric_id=`get just the numeric id from $jobid`
qalter $jobid -v numeric_id=$numeric_id

编辑:您可以使用以下命令保存步骤:

qalter -o $numeric_id.log $jobid

我相信这会让你做到这一点。

关于pbs - 扭矩 PBS : Specifying stdout file name to be the job id number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672591/

相关文章:

linux - CNN 训练超过了 PBS 中给定核心的数量

cluster-computing - 从 sge 中的 qsub 命令中排除特定节点

sungridengine - sunGrid集群: qsub error "Unable to run job: hostnames may not be empty string"

linux - 重新启动 Linux 工作站时与日志文件相关的 pbs_mom 问题

pbs - PBS_NODEFILE在pbs中是如何工作的?

logging - PBS 脚本 -o 文件到多个位置

c++ - 共享内存、MPI 和排队系统

fortran - 带扭矩运行程序

Hadoop on Batch System 作为用户进程

通过 qsub 运行 R 脚本