[Mauiusers] detecting and scheduling vmem

Brian Christiansen bchristiansen at clusterresources.com
Mon Mar 16 16:07:14 MDT 2009


Roy,

Looking in MPBSI.c, it appears that nodememovercommitfactor is already 
implemented to work with swap, except that in in _MPBSIGetSSSStatus the 
setting of N->CRes.Swap is after the overcommitting work is done. How 
does the following patch work for you?

Thanks,
Brian

--- src/moab/MPBSI.c   
+++ src/moab/MPBSI.c   
@@ -6263,6 +6263,11 @@
       }  /* END else if (!strcmp(Name,"message")) */
     }    /* END while (ptr != NULL) */
 
+  /* NOTE:  PBS totmem = swap + RAM */
+
+  if (TotMem > 0)
+    N->CRes.Swap = TotMem;
+
   if (MSched.NodeMemOverCommitFactor > 0.0)
     {
     /* NOTE:  both real memory and swap overcommitted */
@@ -6276,11 +6281,6 @@
     /* memory factor not applied to node load */
     }
 
-  /* NOTE:  PBS totmem = swap + RAM */
-
-  if (TotMem > 0)
-    N->CRes.Swap = TotMem;
-
   return(SUCCESS);
   }  /* END __MPBSIGetSSSStatus() */


Gareth.Williams at csiro.au wrote:
> I passed your email on to CR in my open moab ticket.  This seems like a straightforward and good idea to me.
>
> thanks,
>
> Gareth
> ________________________________________
> From: Roy Dragseth [roy.dragseth at cc.uit.no]
> Sent: Tuesday, 24 February 2009 9:37 PM
> To: mauiusers at supercluster.org
> Subject: Re: [Mauiusers] detecting and scheduling vmem
>
> On Friday 20 February 2009 07:08:42 Gareth.Williams at csiro.au wrote:
>   
>> Hi All,
>>
>> I have been working with CR to get a patch in maui and moab to improve
>> treatment of vmem.  The patch is in maui-3.2.6p21-snap.1234905291 and will
>> be in upcoming moab releases.  Many thanks to Brian Christiansen at CR.
>>
>> With the patch, maui/moab correctly detects a node's available vmem as
>> being the total physical memory plus swap space.  This can then be
>> scheduled/allocated by requesting vmem and job's virtual memory allocation
>> can be limited on a per process basis and periodically measured (and action
>> taken or overuse) on a per job basis.
>>
>> I think this makes scheduling on vmem a good option.  It's a more
>> predictable quantity than mem/pmem.
>>     
>
> This is great, but is it possible to get
>
>     TotMem = (int)(TotMem * MSched.NodeMemOverCommitFactor);
>
> at line 6384?  This will make the NODEMEMOVERCOMMITFACTOR work both for mem
> and swap as earlier.
>
> We want to use a slight overcommit to allow a user to specify -lpvmem=2gb
> instead of -lpvmem=2000mb on a machine with 2GB RAM per core.  Some of the ram
> isn't available to userspace, so using 2gb will underutilize the cores on a
> node and users aren't really good at guessing the memory consumption anyway.
>
> r.
>
>
>
>
> _______________________________________________
> mauiusers mailing list
> mauiusers at supercluster.org
> http://www.supercluster.org/mailman/listinfo/mauiusers
>   



More information about the mauiusers mailing list