Sun Grid Engine 设置每个作业的内存要求

Sun Grid Engine 设置每个作业的内存要求

我希望能够为每个作业设置内存要求。

例如:要运行 5 个作业,我知道每个作业都需要 4 GB 内存。我在 Ubuntu 服务器上有 16 GB RAM 和 16 GB 交换空间。我想避免使用交换空间。我可以这样做吗:

qsub -l mem_required_for_my_job=4G job1
qsub -l mem_required_for_my_job=4G job2
qsub -l mem_required_for_my_job=4G job3
qsub -l mem_required_for_my_job=4G job4
qsub -l mem_required_for_my_job=4G job5

? 这些作业在某些时刻会需要 4 GB,但不是在开始时。

如何告诉 SGE 我的要求是什么?当只有 16 GB 可用时,如何避免调度 5 x 4 GB?

我阅读了用户指南并尝试了s_vmem, h_vmem, mem_free, mem_used。它们都不是我所想要的。我不希望我的作业在处理过程中被终止。我希望它们不会被安排,除非有所需的最大资源可用。

我可以这样做吗?

谢谢你们!

答案1

在我们的集群上,我们用h_vmem它来强制执行作业内存分配。

您似乎忽略了将可用量设置为可消耗资源。在qconf -mc或在qmon复合体对话框中,您需要将资源设置为可请求和可消耗。

然后,您需要在每个主机上qconf -me设置可用内存量complex_values

例如,我们有如下主机定义:

hostname              node004
load_scaling          NONE
complex_values        h_vmem=30.9G,exclusive=1,version=3.3.0

答案2

我认为你正在寻找的是virtual_free

“如果对 virtual_free 的作业请求超出了可用量,则不会将该作业分派到该主机上的队列。” 来自https://web.archive.org/web/20100801220839/http://wikis.sun.com/display/GridEngine/Configuring+Complex+Resource+Attributes

也可以看看 http://markmail.org/message/2iw4esthqvs5rc2a

相关内容