在我们的一个计算集群中,我们拥有具有独特硬件资源的系统,这些系统的访问由设备文件权限控制。每个节点都有其中的两个或四个,以及多个CPU核心。我们希望能够在同一个节点上调度不同用户的作业,并限制对正确分配的资源的访问。(有些队列甚至可能仅限于CPU,没有访问权限。)
有一段时间,我们的政策是“嘿,注意并表现得很好”,但这对每个人来说都是很难做到的,即使是出于最好的意图。因此,我们只是一次为给定的用户调度整个节点。对于单线程的单进程任务来说,这是浪费的。
有了扭矩,就可以在作业开始前运行作为根的序言脚本。这可以适当地设置设备权限。但我们正在运行(née Sun)网格引擎。这有每个队列的prolog脚本,但是它们作为作业所属的用户运行(比如Torque的prologue.user),这在这里是没有帮助的。
有什么明显的东西我错过了(我希望),或者一个替代的方式来解决这个问题?我意识到我有源代码,因此可以做任何事情,但我希望有一个标准的方式,我只是错过了。
谢谢!
发布于 2011-01-18 19:50:25
prolog脚本实际上可以作为任何用户运行。
来自man queue_conf:
prolog :在执行Grid引擎作业之前启动的shell脚本的可执行路径,其环境设置与以后将启动的Grid引擎作业相同。可选前缀" user @“指定要启动此过程的用户。
因此,设置prolog root@/path/to/prolog应该让它作为根用户执行。
https://serverfault.com/questions/212468
复制相似问题