【问题标题】:Redirect output to different directories for sun grid engine array jobs将输出重定向到 Sun Grid Engine 阵列作业的不同目录
【发布时间】:2010-09-14 10:44:13
【问题描述】:

我正在使用 Sun Grid Engine 运行大量作业。由于这些是作业(~100000),我想使用数组作业,这在队列中似乎更容易。

另一个问题是每个作业都会产生一个 stdout 和 stderr 文件,我需要跟踪错误。如果我在qsub -t 1-100000 -o outputdir -e errordir 中定义它们,我最终将拥有包含 100000 个文件的目录,这太多了。

有没有办法让每个作业将输出文件写入一个目录(例如,一个由作业 ID 的前 2 个字符组成的目录,它是随机的十六进制字母;或作业编号模 1000,或其他那种)。

谢谢

【问题讨论】:

    标签: sungridengine


    【解决方案1】:

    我想不出使用 qsub 的好方法,因为 -o 和 -e 选项没有编程接口。但是,有一种方法可以实现您想要的。

    使用-o 和-e 指向/dev/null 运行您的qsub。使您运行的命令成为某种类型的包装器,在它执行真正的工作之前以您想要的任何方式(即您的分解目录结构)将它自己的 stdout 和 stderr 重定向到文件。

    【讨论】:

    • 您甚至不需要包装器。假设您通过作业脚本执行此操作,只需附加命令以使用&>> logs/xyz.log 运行您的程序。您甚至可以使用 JOB_IDSGE_TASK_ID 等环境变量来构建文件名,并且 Bash 支持模数的基本算法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多