【问题标题】:Requesting memory that is not already allocated in SGE with qsub使用 qsub 请求尚未在 SGE 中分配的内存
【发布时间】:2017-01-17 00:16:52
【问题描述】:

我在 AWS EC2 上使用 Starcluster 设置了一个 Sun Grid Engine 集群。每个节点有 4 个处理器和 16G RAM。我想提交一个任务数组,该数组一次分派 2 个作业,每个作业都用完一个完整节点(所有 4 个处理器和 16G RAM)。但是,我不想使用 -pe smp 4 之类的标志创建并行环境,因为根据经验,这会大大降低性能。 qsub 是否有一个标志,上面写着“将作业提交到具有 16G 内存但尚未分配给任何其他作业的节点”?我知道的标志是

-l mem_free=16g - 如果当前有 16g 空闲,则将作业提交给节点 -l h_vmem=16g - 如果内存使用量超过 16g,则终止作业

这些都不能解决我的问题。在 mem_free=16g 的情况下,由于作业最初使用内存很慢,qsub 将所有任务分配给 2 个节点,然后它们都同时耗尽内存。

【问题讨论】:

    标签: amazon-ec2 sungridengine


    【解决方案1】:

    我使用手动变量来做到这一点。这里是 StarCluster code to it

    所以基本上它创建了一个变量“da_mem_gb”。每台机器都有一个等于其 RAM 的初始值。然后作业使用该变量请求他们需要多少 RAM。如果他们需要一台机器的所有 RAM,则一次将一个作业分配给该机器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      相关资源
      最近更新 更多