我想使用qsub提交一堆作业 - 这些工作都非常相似。我有一个循环的脚本,并在每个实例中重写文件tmpjob.sh然后执行qsub tmpjob.sh。在作业有机会运行之前,tmpjob.sh可能已被下一个循环实例覆盖。在作业等待运行时是否存储了另一个tmpjob.sh副本?或者在工作开始之前我是否需要注意不要更改tmpjob.sh?
答案 0 :(得分:4)
假设你在谈论扭矩,那么是;扭矩在提交时读取脚本。事实上,提交脚本根本不需要作为文件存在;如documentation for torque中的示例所示,您可以将命令传递给qsub(来自文档:cat pbs.cmd | qsub
。)
但其他几个批处理系统(SGE / OGE,PBS PRO)使用qsub作为队列提交命令,因此您必须告诉我们您正在使用的排队系统。
答案 1 :(得分:0)
是。您甚至可以使用HERE Documents创建作业和子作业。下面是我使用cron作业启动的脚本进行测试的示例:
#!/bin/env bash
printenv
qsub -N testCron -l nodes=1:vortex:compute -l walltime=1:00:00 <<QSUB
cd \$PBS_O_WORKDIR
printenv
qsub -N testsubCron -l nodes=1:vortex:compute -l walltime=1:00:00 <<QSUBNEST
cd \$PBS_O_WORKDIR
pwd
date -Isec
QSUBNEST
QSUB