默认情况下,提交作业到扭矩队列的输出将保存到名为 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/