如何在gridengine中以root身份运行序言脚本?

在我们的一个计算集群中,我们拥有具有独特硬件资源的系统,访问由设备文件权限控制。 每个节点有两个或四个这样的CPU和多个CPU核心。 我们希望能够在同一节点上安排不同用户的作业,并限制访问正确分配的资源。 (有些队列甚至可能只有CPU,无法访问。)

一段时间以来,我们一直以“嗨,注意力好,玩得好”的方针奔跑,但即使有着最好的意图,每个人都难以维持下去。 因此,我们只是一次为给定的用户安排整个节点。 这对于单线程,单进程任务来说是浪费的。

使用Torque,可以在作业开始之前以root身份运行序言脚本 。 这可以适当地设置设备权限。 但是我们正在运行( NEE SUN)Grid Engine。 它有每个队列的prolog脚本,但它们作为工作所属的用户运行(如Torque的prologue.user ),这在这里没有帮助。

有没有什么明显的我想念(我希望),或另一种方法来解决这个问题? 我意识到,我有源代码,因此可以做任何事情 ,但我希望有一个标准的方式,我只是想念。

谢谢!

prolog脚本实际上可以像任何用户一样运行。

man queue_conf

序言

在执行Grid Engine作业之前启动的shell脚本的可执行path,其环境设置与之后启动的Grid Engine作业相同。 一个可选的前缀“user @”指定了在哪个用户下启动这个过程。

所以设置prolog root@/path/to/prolog应该让它以root身份执行。