<div dir="ltr">We do the same thing, cat-ing directly to /dev/cpuset via the prologue scripts.<div><br></div><div> - Matt</div><div><br><div><br></div><div><br></div></div></div><div class="gmail_extra"><br clear="all"><div>
<div dir="ltr"><div style="font-family:arial;font-size:small"><font face="arial, sans-serif">--------------------------------------------</font></div><div style="font-family:arial;font-size:small"><font face="arial, sans-serif">Matthew Britt</font></div>
<div style="font-family:arial;font-size:small"><font face="arial, sans-serif">CAEN HPC Group - College of Engineering</font></div><div style="font-family:arial;font-size:small"><font face="arial, sans-serif"><a href="mailto:msbritt@umich.edu" target="_blank">msbritt@umich.edu</a></font></div>
<div style="font-family:arial;font-size:small"> </div></div></div>
<br><br><div class="gmail_quote">On Wed, Aug 28, 2013 at 3:22 AM, François P-L <span dir="ltr">&lt;<a href="mailto:francois.prudhomme@hotmail.fr" target="_blank">francois.prudhomme@hotmail.fr</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div><div dir="ltr">Many thanks for your answers :)<div><br></div><div>I&#39;m running a 4.1.6.h2 version patched for a problem seen in <a href="https://github.com/adaptivecomputing/torque/issues/168" target="_blank">https://github.com/adaptivecomputing/torque/issues/168</a>.</div>
<div>The solution to grant access to all mems in the prologue script is a good temporary fix. Do you make it with hwloc commands or directly in /dev/cpuset/ ?</div><div><br></div><div>I will wait for 4.2.6, and hope it will resolve this type of problem.</div>
<div><br></div><div>Totaly off topic : is there a way to avoid the use of &quot;-n&quot; option ? It can be a big problem if my users use it... some of them make very wrong estimation of required cpus... i put the cpuset in the cluster because of them...</div>
<div><br></div><div>Thanks again<br><br><div><hr>Date: Tue, 27 Aug 2013 16:41:15 -0600<div class="im"><br>Subject: Re: [torqueusers] How allow a job to use all memory on a node with cpuset enabled ?<br></div>From: <a href="mailto:dbeer@adaptivecomputing.com" target="_blank">dbeer@adaptivecomputing.com</a><br>
To: <a href="mailto:torqueusers@supercluster.org" target="_blank">torqueusers@supercluster.org</a><br>CC: <a href="mailto:francois.prudhomme@hotmail.fr" target="_blank">francois.prudhomme@hotmail.fr</a><div><div class="h5">
<br><br><div dir="ltr">The long term fix for this problem is to make the mom more intelligent about assigning these things. Moms will begin to hold a better picture of the node&#39;s internal layout and will assign memory more intelligently to the jobs. This fix is already most of the way done, but since we have already code frozen for 4.2.5, it will be in 4.2.6 instead. <div>

<br></div><div>David</div></div><div><br><br><div>On Tue, Aug 27, 2013 at 2:24 PM, Derek Gottlieb <span dir="ltr">&lt;<a href="mailto:dgottlieb@exchange.asc.edu" target="_blank">dgottlieb@exchange.asc.edu</a>&gt;</span> wrote:<br>

<blockquote style="border-left:1px #ccc solid;padding-left:1ex">What version of torque are you running?  I know I reported this issue to them and they partially fixed it in 4.2.4, but there are still some pretty major shortcomings with their handling of memory in cpusets.  I&#39;ve documented some sample scenarios that are problematic and they&#39;re supposed to be thinking how to address them.<br>


<br>
As a short term fix, we rewrite the cpuset in the job prologue script to grant access to all mems in a node for every job when it starts.  I suspect the Linux kernel will do a better job of handling memory allocation intelligently than torque is allocating mems to cpusets.<br>


<br>
Derek Gottlieb<br>
HPC Systems Analyst, CSC<br>
Alabama Supercomputer Center<br>
<br>
686 Discovery Dr., Huntsville, AL 35806<br>
High Performance Computing | <a href="mailto:dgottlieb@asc.edu" target="_blank">dgottlieb@asc.edu</a> | <a href="http://www.asc.edu" target="_blank">www.asc.edu</a><br>
<div><div><br>
On Aug 27, 2013, at 8:22 AM, François P-L wrote:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; We are encountering some problems with jobs asking too many memory.<br>
&gt;<br>
&gt; For example, a job is asking 4 cpu and 126Gb.<br>
&gt; pbs_mom: LOG_INFO::create_job_cpuset, creating cpuset for job 235376[2]: 4 cpus (0-3), 1 mems (0)<br>
&gt;<br>
&gt; For my test i use &quot;stress&quot; with the following command :<br>
&gt; stress -c 2 -t 600 --vm 2 --vm-bytes 61G<br>
&gt;<br>
&gt; My node is with this topology :<br>
&gt; Machine (128GB)<br>
&gt;   NUMANode L#0 (P#0 64GB) + Socket L#0 + L3 L#0 (20MB)<br>
&gt;     L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)<br>
&gt;     L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)<br>
&gt;     L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)<br>
&gt;     L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)<br>
&gt;     L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 + PU L#4 (P#4)<br>
&gt;     L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 + PU L#5 (P#5)<br>
&gt;     L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 + PU L#6 (P#6)<br>
&gt;     L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 + PU L#7 (P#7)<br>
&gt;   NUMANode L#1 (P#1 64GB) + Socket L#1 + L3 L#1 (20MB)<br>
&gt;     L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 + PU L#8 (P#8)<br>
&gt;     L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 + PU L#9 (P#9)<br>
&gt;     L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 + PU L#10 (P#10)<br>
&gt;     L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 + PU L#11 (P#11)<br>
&gt;     L2 L#12 (256KB) + L1d L#12 (32KB) + L1i L#12 (32KB) + Core L#12 + PU L#12 (P#12)<br>
&gt;     L2 L#13 (256KB) + L1d L#13 (32KB) + L1i L#13 (32KB) + Core L#13 + PU L#13 (P#13)<br>
&gt;     L2 L#14 (256KB) + L1d L#14 (32KB) + L1i L#14 (32KB) + Core L#14 + PU L#14 (P#14)<br>
&gt;     L2 L#15 (256KB) + L1d L#15 (32KB) + L1i L#15 (32KB) + Core L#15 + PU L#15 (P#15)<br>
&gt;<br>
&gt; After a few seconds :<br>
&gt; kernel: [517453.738199] stress invoked oom-killer: gfp_mask=0x280da, order=0, oom_adj=0, oom_score_adj=0<br>
&gt; (...)<br>
&gt; kernel: [517453.738204] stress cpuset=235376[2] mems_allowed=0<br>
&gt; (...)<br>
&gt;<br>
&gt; After reading qsub options, &quot;-n&quot; option can &quot;solve&quot; the problem... but it&#39;s a big waste of cpu in this case (all the node is dedicated for this job).<br>
&gt;<br>
&gt; Is there a way to allow a job to use all memory of a node without using all cpu ?<br>
&gt;<br>
&gt; Many thanks in advance.<br>
&gt;<br>
</div></div>&gt; --<br>
&gt; This message has been scanned for viruses and<br>
&gt; dangerous content by MailScanner, and is<br>
&gt; believed to be clean. _______________________________________________<br>
&gt; torqueusers mailing list<br>
&gt; <a href="mailto:torqueusers@supercluster.org" target="_blank">torqueusers@supercluster.org</a><br>
&gt; <a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br>
<br>
_______________________________________________<br>
torqueusers mailing list<br>
<a href="mailto:torqueusers@supercluster.org" target="_blank">torqueusers@supercluster.org</a><br>
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div>David Beer | Senior Software Engineer</div><div>Adaptive Computing</div>
</div></div></div></div></div>                                               </div></div>
<br>_______________________________________________<br>
torqueusers mailing list<br>
<a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a><br>
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a><br>
<br></blockquote></div><br></div>