如何为qsub提交的作业指定固定作业名称

时间:2014-09-05 23:52:06

标签: qsub

我使用-N选项在通过qsub提交时指定作业的名称。但是,qsub会在man页面中描述的job名称之后添加一些数字字符串:           默认情况下,标准输出的文件名具有           表单job_name.ojob_id和job_name.ojob_id.task_id表示           数组作业任务(参见下面的-t选项)。

因此,每当我提交具有相同作业名称的新作业时,会在作业名称中添加新后缀.ojob_id,并创建新的输出文件。

我想要实现的是每次通过qsub提交作业时都有相同的输出文件。我怎样才能做到这一点?我必须多次运行一个作业,我希望运行的输出覆盖上一次运行中生成的输出文件。我怎样才能做到这一点? 请参阅以下示例:

第一次命令运行脚本hello_world以在log_hello_world中输出:

qsub -cwd  -N log_hello_world    hello_world.sh

它会创建两个输出文件:

log_hello_world.e7584345
log_hello_world.o7584345

第二次给出相同的命令:它再创建两个输出文件

log_hello_world.e7584366
log_hello_world.o7584366

如何才能将输出只显示在一个文件log_hello_world中。

2 个答案:

答案 0 :(得分:3)

我能够通过使用选项-o和-e分别保存日志和错误文件来解决此问题。使用这些选项,每次从此命令将日志和作业中的错误写入同一文件。

qsub -cwd  -N job_hello_world  -o log.hello_world -e error.hello_world  hello_world.sh

答案 1 :(得分:0)

您应该附加一个具有固定名称的文件。这是在您运行的代码中完成的。您在目录中创建一个文件,然后在每次运行代码时将其附加新结果。因此,在您的代码中(不在qsub行中),显式添加一行代码,要求将结果写入目录中的文件中,在Mathematica中,这将是

str = OpenAppend["/home/my_name/Scratch/results.dat"];
Write[str,results];
Close[str];

其中 results 是变量,其中包含您的计算结果。然后只需使用qsub -N log_hello_world hello_world.sh运行作业即可。每次运行作业时,这会将结果写入同一文件,而无需更改文件名。 (如果您要同时将-o和-e文件写入同一文件,则可以在为错误文件指定文件路径后将-j y添加到qsub中)

相关问题