将作业脚本提交给PBS排队系统时,会自动指定挂机时间,或者由用户指定挂机时间,例如通过
#PBS -l walltime=1:00:00
Run Code Online (Sandbox Code Playgroud)
问题是如果可以从作业脚本访问此时间.是否有环境变量或其他方式来获得此壁挂时间.
最后,作业脚本应该不时地决定是否还有足够的时间做更多的工作,这样作业就不会被排队系统杀死.
更新:
至少如果用户在资源列表中指定了walltime,我可以提出以下解决方法(为bash工作)
read _ _ PBS_WALLTIME <<< `qstat -f $PBS_JOBID | grep "Resource_List.walltime"`
Run Code Online (Sandbox Code Playgroud)
它从qstat输出解析walltime并将值放在PBS_WALLTIME变量中.因此,命令
echo $PBS_WALLTIME
Run Code Online (Sandbox Code Playgroud)
会产生类似的东西
1:00:00
Run Code Online (Sandbox Code Playgroud) pbs ×1