我正在尝试将作业提交到集群[运行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)。
有没有办法估计我的操作需要多少内存?我想弄清楚应该是什么上限。
提前谢谢。
答案 0 :(得分:0)
这取决于工作本身的性质。如果您对正在运行的程序(即您编写的程序)了解任何信息,您应该能够估计它将需要多少内存。如果没有,你唯一的办法是在没有限制的情况下运行它,看看它实际使用了多少。
我运行了一堆FPGA构建和模拟作业。在每个作业之后,我会跟踪实际使用的内存量。我可以使用这些历史信息来估计将来可能会使用多少(如果源中有一些奇怪的变化,我将填充10%)。不过,每当供应商提供新版本的工具时,我仍然需要重做计算,因为内存占用的变化很大。