扭矩 PBS:将标准输出文件名指定为作业 ID 号
Torque PBS: Specifying stdout file name to be the job id number
默认情况下,从提交的作业到 Torque 队列的输出将保存到名为 job_name.o658392
的文件中。使用该示例,我想要做的是将输出文件命名为 658392.job_name.log
。
我知道我可以通过在脚本顶部写 #PBS -e filename
行来指定输出文件的名称,甚至可以在文件名中使用 $PBS_JOBID
等变量.
问题是 $PBS_JOBID
不仅仅是数字——而是看起来像 658392.some.very.long.host.name
。
我试过使用 ${PBS_JOBID/.*}
,它应该只引用数字,但问题是我在执行此操作时遇到错误。上面写着:Failed to expand destination path in data staging: /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
而且我相信这会让你做到这一点。
默认情况下,从提交的作业到 Torque 队列的输出将保存到名为 job_name.o658392
的文件中。使用该示例,我想要做的是将输出文件命名为 658392.job_name.log
。
我知道我可以通过在脚本顶部写 #PBS -e filename
行来指定输出文件的名称,甚至可以在文件名中使用 $PBS_JOBID
等变量.
问题是 $PBS_JOBID
不仅仅是数字——而是看起来像 658392.some.very.long.host.name
。
我试过使用 ${PBS_JOBID/.*}
,它应该只引用数字,但问题是我在执行此操作时遇到错误。上面写着:Failed to expand destination path in data staging: /path/to/output/${PBS_JOBID/.*}.log
您知道如何以有效的方式指定输出文件名吗?
如果您是管理员,您可以通过设置
将其设为数字作业 IDqmgr -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
而且我相信这会让你做到这一点。