Hi Abhi!<br><br><div class="gmail_quote">On Wed, Dec 15, 2010 at 7:21 PM, Abhishek Gupta <span dir="ltr">&lt;<a href="mailto:abhig@princeton.edu">abhig@princeton.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi,<br>
<br>
I am trying to figure out the way so that memory usage does not exceed<br>
the available memory on a node. I was thinking that this parameter (<br>
NODEAVAILABILITYPOLICY COMBINED:MEM ) should check the availability of<br>
node on the bases of memory available, but it does not.<br>
Is there anything else I need to add to make it work?<br>
NODEAVAILABILITYPOLICY COMBINED:MEM<br>
<br>
Thanks,<br>
Abhi.<br></blockquote><div><br>
Iīve never used NODEAVAILABILITYPOLICY, but I have a similar problem, which is: the jobs we run at my site start out
 with a small memory footprint, and end with large amounts of data in 
memory (in virtualization lingo, they &quot;balloon&quot;). Maybe this is also your case, and this is why setting this variable doesn`t work?<br>
<br>
To avoid swapping, I have set a MAXJOBPERUSER variable for each compute 
node, because all of our jobs that have an increasing memory footprint
 come from a single user (actually, a grid account).<br>
<br>
Tweaking the MAXJOBPERUSER variable, I have found a value for each node (we have an heterogeneous cluster) that runs the jobs without swapping.<br>
<br>
However, this is not ideal because this setting is applied to all jobs that run on a given node, and some local users have jobs that are 
small in memory, but large in number of cores, and the limits which I 
set for the grid jobs are too restrictive for them. Whereas a grid job can only run 4 jobs on a 8 core, 8GB RAM node, local userīs jobs could merrily run on all 8 cores simultaneously.<br>
<br>
Trying to find a better solution, I found that one can set on torque (supposing you use torque):<br>
<br>
qmgr -c &quot;set queue XXX resources_min.mem=2000kb&quot;<br>
<br>
And this would (theoretically) only attribute nodes that have at least 
2GB of free memory to waiting jobs on XXX queue. I say &quot;theoretically&quot; because I have not had luck 
with this setting. As I said, our grid jobs balloon, and so our nodes get one job per slot, since initially (for the first few hours) the jobs are only downloading data, and so there is always 2GB free. But when the memories ballon, we start swapping 
heavily.<br>
<br>
I guess that you might have more luck with that if your jobsī memory 
footprint is more constant, or if some guru could teach us how to &quot;reserve&quot;
 some memory amount per job, I know that would suit me perfectly.<br><br>
Cheers,<br>
Renato.<br> </div>-- <br></div>Renato Callado Borges<br>Lab Specialist - DFN/IF/USP<br>Email: <a href="mailto:rborges@dfn.ifusp.br" target="_blank">rborges@dfn.ifusp.br</a><br>Phone: +55 11 3091 7105<br>