【问题标题】:How to specify a fixed job name for jobs submitted by qsub如何为qsub提交的作业指定一个固定的作业名
【发布时间】:2014-09-05 23:52:05
【问题描述】:

通过 qsub 提交时,我使用 -N 选项指定作业的名称。然而,qsub 会在作业名称之后添加一些数字字符串,如手册页中所述: 默认情况下,标准输出的文件名具有 形成 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

【问题讨论】:

    标签: qsub


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您应该附加一个具有固定名称的文件。这是在您运行的代码中完成的。您在目录中创建一个文件,然后在每次运行代码时将新结果附加到该文件中。因此,在您的代码中(不是在 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)

      【讨论】:

        猜你喜欢
        • 2019-08-10
        • 1970-01-01
        • 1970-01-01
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-15
        • 1970-01-01
        相关资源
        最近更新 更多