2

我有一个我希望是一个非常简单的问题,但我对 Sun Grid 不是很熟悉,所以我一直很难找到答案。我目前正在使用 bash 提交脚本将作业提交到网格,该脚本生成命令然后执行它。我在网上读到,如果太阳网格作业以 99 的代码退出,它会重新提交到网格。我已经成功编写了我的 bash 脚本来执行此操作:

[code to generate command, stores in $command]
$command
STATUS=$?
if [[ $STATUS -ne 0 ]]; then
    exit 99
fi
exit 0

当我使用我知道具有非零退出状态的命令将该作业提交到网格时,该作业确实似乎被重新提交,但是调度程序从未将其发送到另一台主机,而是它仍然停留在队列中状态“Rq”:

job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
2150015 0.55500 GridJob.sh my_user      Rq    04/08/2013 17:49:00                                    1

我觉得这在队列的配置选项中很简单,但我无法在谷歌上找到任何东西。我已经尝试使用该选项提交这份工作qsub -r y,但这似乎并没有改变任何东西。

谢谢!

4

1 回答 1

1

重新计划的作业只会在其rerun属性(默认为 FALSE)设置为 TRUE 的队列中运行,因此请检查您的队列配置 ( qconf -mq myqueue)。没有这个,你的工作将无限期地处于重新安排的待定状态,因为它无处可去。

IIRC,提交作业qsub -r yes仅使它们有资格在 exec 节点崩溃的情况下自动重新安排,并且以状态 99 退出无论如何都应该触发重新安排。

于 2013-05-30T16:40:28.507 回答