首页 文章

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

提问于
浏览
2

我通过qsub提交时使用-N选项指定作业的名称 . 但是,qsub会在man页面中描述的man名称之后添加一些数字字符串:默认情况下,标准输出的文件名的格式为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

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

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

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

相关问题