[Mauiusers] detecting and scheduling vmem

Brian Christiansen bchristiansen at clusterresources.com
Wed Mar 18 17:28:30 MDT 2009


Roy,

Thanks for pointing out the right side of the statement. I made the 
changes and they will be available in the next snapshot.

Thanks,
Brian

Roy Dragseth wrote:
> On Monday 16 March 2009 23:07:14 Brian Christiansen wrote:
>   
>> 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() */
>>
>>     
>
> This should work equally well, but then we need to change a few more lines in 
> the if-clause from
>
>     N->CRes.Swap = (int)(N->CRes.Mem * MSched.NodeMemOverCommitFactor);
>     N->ARes.Swap = (int)(N->ARes.Mem * MSched.NodeMemOverCommitFactor);
>
> to
>
>     N->CRes.Swap = (int)(N->CRes.Swap * MSched.NodeMemOverCommitFactor);
>     N->ARes.Swap = (int)(N->ARes.Swap * MSched.NodeMemOverCommitFactor);
>
> (the current code doesn't look correct anyway)
>
> I ran a quick test with your changes and mine and it seems to be functionally 
> equivalent with my old proposal.
>
> r.
>   



More information about the mauiusers mailing list