2014-08-29 66 views
3

我有一个在Torque/Maui系统下运行的复杂fortran MPI应用程序。当我运行我的应用程序时,它会产生一个巨大的独特输出(〜20 GB)。为了避免这种情况发生,我制作了一个RunJob脚本,它分成5个部分,每个部分产生更小的输出,更容易处理。qsub在从节点提交作业时返回错误

目前,我的RunJob脚本在第一部分的末尾正确停止,并且还生成正确的输出。然而,当它试图重新启动我得到以下错误信息:

的qsub:作业执行MSG = ruserok坏UID失败从计算-0-0.local

我验证的用户名/用户名知道这个问题来自Torque/Maui系统默认情况下不允许节点提交作业的事实。

事实上,当我键入:

QMGR -c 'L S' | grep的allow_node_submit

我:

allow_node_submit =假

我没有管理员帐户只是用户的一个

我的问题是:

  1. 是否可以设置gmgr是用户的allow_node_submit = true?怎么样 ? ( - 我猜不是)
  2. 如果问题1 =错误,还有其他解决方法吗?怎么样 ?

一切顺利。

回答

2

不,非特权用户不能更改排队系统的设置。不允许从计算节点重新提交的常见原因是非常好的 - 保护集群及其所有用户不会意外(或以其他方式)提交脚本,该脚本快速失败并重新提交一次 - 或者更糟糕的是,不止一次 - 快速淹没调度程序和队列,生成相当于fork bomb的批队列。即使有这样的限制,我们也有人因为脚本错误而意外提交数以万计的作业。

通常的解决方法是ssh到其中一个队列提交节点并从那里提交脚本,例如,在提交脚本末尾:

ssh queue-head-node qsub /path/to/new/submission/script 

这就是我们建议我们的用户如何处理它的方法,例如, here。这显然只有在群集内启用密码/无密码ssh的情况下才有效,这是一种常见的(但不是普遍的)做法。

或者,如果这是为了自动提交一系列继续运行的作业的常见情况,您可以查看如何在您的站点处理作业依赖关系,并提交一个作业的车队,每个车队都依赖于最后的顺利完成,然后将依次运行。

+0

嗨@Jonathan ...它工作完美。非常感谢,真的。我必须提供完整的qsub路径 - 即使它在我的路上。最后的命令是:ssh username @ headnodename/opt/torque/bin/qsub path/to/my/application。再次感谢。我对你最后一句话感兴趣:“你可以看看你的网站是如何处理工作依赖的。”你能提供更多关于它的信息吗?在哪里寻找它? ... 祝一切顺利。 – Quim 2014-08-29 20:31:38

+0

这取决于你的扭矩版本和本地设置,所以最好问你的集群管理员,但有一些文档[这里](http://docs.adaptivecomputing.com/torque/4-1-4 /Content/topics/commands/qsub.htm#dependencies)。 – 2014-08-29 21:17:15