如何估计向运行SGE的集群提交作业的内存要求?

时间:2013-08-24 22:40:57

标签: memory cluster-computing sungridengine

我正在尝试将作业提交到集群[运行Sun Grid Engine(SGE)]。通过以下报告终止了这项工作:

Job 780603 (temp_new) Aborted
 Exit Status      = 137
 Signal           = KILL
 User             = heaswara
 Queue            = std.q@comp-0-8.local
 Host             = comp-0-8.local
 Start Time       = 08/24/2013 13:49:05
 End Time         = 08/24/2013 16:26:38
 CPU              = 02:46:38
 Max vmem         = 12.055G
failed assumedly after job because:
job 780603.1 died through signal KILL (9)

我设定的资源要求是:

#$ -l mem_free=10G
#$ -l h_vmem=12G

mem_free是我的工作所需的内存量,h_vmem是允许作业使用的内存量的上限。我不知道我的工作是否被终止,因为它需要超过该阈值(12G)。 有没有办法估计我的操作需要多少内存?我想弄清楚应该是什么上限。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这取决于工作本身的性质。如果您对正在运行的程序(即您编写的程序)了解任何信息,您应该能够估计它将需要多少内存。如果没有,你唯一的办法是在没有限制的情况下运行它,看看它实际使用了多少。

我运行了一堆FPGA构建和模拟作业。在每个作业之后,我会跟踪实际使用的内存量。我可以使用这些历史信息来估计将来可能会使用多少(如果源中有一些奇怪的变化,我将填充10%)。不过,每当供应商提供新版本的工具时,我仍然需要重做计算,因为内存占用的变化很大。