enable NODEALLOCMAXPS (patch from Bas van der Vlies)
git-svn-id: svn://opensvn.adaptivecomputing.com/maui/trunk@71 3f5042e3-fb1d-0410-be18-d6ca2573e517
This commit is contained in:
parent
f07c10a297
commit
639302b96d
@ -765,7 +765,8 @@ enum {
|
||||
pOLDAFSWeight,
|
||||
pOLDDirectSpecWeight,
|
||||
pOLDBankServer,
|
||||
pOLDRMServer
|
||||
pOLDRMServer,
|
||||
pNAMaxPS
|
||||
};
|
||||
|
||||
#endif /* __M_COMMON_H__ */
|
||||
|
@ -2191,6 +2191,7 @@ typedef struct {
|
||||
char PartitionFeatureHeader[MAX_MNAME];
|
||||
int PartitionFeatureIsVisible; /* (boolean) */
|
||||
int InitialLoad;
|
||||
int NodeAllocMaxPS;
|
||||
|
||||
mgcred_t *DefaultU;
|
||||
mgcred_t *DefaultG;
|
||||
|
@ -1580,6 +1580,7 @@ int MCfgSetVal(
|
||||
case pProcSpeedFeatureHeader:
|
||||
case pNodeTypeFeatureHeader:
|
||||
case pPartitionFeatureHeader:
|
||||
case pNAMaxPS:
|
||||
case pNAPolicy:
|
||||
case pSchedMode:
|
||||
case pClientTimeout:
|
||||
|
@ -1432,6 +1432,7 @@ const mcfg_t MCfg[] = {
|
||||
{ "MINADMINSTIME", mcoAdminMinSTime, mdfString, mxoSched, NULL },
|
||||
{ "MINDISPATCHTIME", pMinDispatchTime, mdfString, mxoSched, NULL },
|
||||
{ "NODEACCESSPOLICY", pNAPolicy, mdfString, mxoSched, NULL },
|
||||
{ "NODEALLOCMAXPS", pNAMaxPS, mdfString, mxoSched, NULL },
|
||||
{ "NODEALLOCATIONPOLICY", pNodeAllocationPolicy, mdfString, mxoPar, NULL },
|
||||
{ "NODECAP", pRNodeCap, mdfInt, mxoPar, NULL },
|
||||
{ "NODECPUOVERCOMMITFACTOR", pNodeCPUOverCommitFactor, mdfDouble, mxoSched, NULL },
|
||||
|
@ -2682,7 +2682,16 @@ int MJobCheckLimits(
|
||||
JUsage[mptMaxProc] = MJobGetProcCount(J);
|
||||
JUsage[mptMaxNode] = J->Request.NC;
|
||||
JUsage[mptMaxWC] = J->WCLimit;
|
||||
JUsage[mptMaxPS] = JUsage[mptMaxProc] * JUsage[mptMaxWC];
|
||||
|
||||
if ((J->Req[0]->NAccessPolicy == mnacSingleJob) &&
|
||||
(MSched.NodeAllocMaxPS == TRUE))
|
||||
{
|
||||
JUsage[mptMaxPS] = J->NodesRequested * JUsage[mptMaxWC];
|
||||
}
|
||||
else
|
||||
{
|
||||
JUsage[mptMaxPS] = JUsage[mptMaxProc] * JUsage[mptMaxWC];
|
||||
}
|
||||
|
||||
MJobGetPE(J,&MPar[0],&PE);
|
||||
|
||||
|
@ -1538,7 +1538,16 @@ int MPolicyAdjustUsage(
|
||||
PConsumed[mptMaxJob] = 1;
|
||||
PConsumed[mptMaxProc] = MJobGetProcCount(J);
|
||||
PConsumed[mptMaxNode] = J->Request.NC;
|
||||
PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
|
||||
|
||||
if ((J->Req[0]->NAccessPolicy == mnacSingleJob) &&
|
||||
(MSched.NodeAllocMaxPS == TRUE))
|
||||
{
|
||||
PConsumed[mptMaxPS] = J->NodesRequested * PConsumed[mptMaxWC];
|
||||
}
|
||||
else
|
||||
{
|
||||
PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
|
||||
}
|
||||
|
||||
MJobGetPE(J,&MPar[0],&PE);
|
||||
|
||||
|
@ -5464,6 +5464,12 @@ int MSchedProcessOConfig(
|
||||
|
||||
break;
|
||||
|
||||
case pNAMaxPS:
|
||||
|
||||
S->NodeAllocMaxPS = MUBoolFromString(SVal,FALSE);
|
||||
|
||||
break;
|
||||
|
||||
case pSchedMode:
|
||||
|
||||
S->Mode = MUGetIndex(SVal,MSchedMode,FALSE,S->Mode);
|
||||
|
@ -898,7 +898,15 @@ int MStatUpdateActiveJobUsage(
|
||||
called from: MQueueAddAJob()
|
||||
*/
|
||||
|
||||
TotalProcs = MJobGetProcCount(J);
|
||||
if ((J->Req[0]->NAccessPolicy == mnacSingleJob) &&
|
||||
(MSched.NodeAllocMaxPS == TRUE))
|
||||
{
|
||||
TotalProcs = J->NodesRequested;
|
||||
}
|
||||
else
|
||||
{
|
||||
TotalProcs = MJobGetProcCount(J);
|
||||
}
|
||||
|
||||
if (TotalProcs == 0)
|
||||
{
|
||||
@ -914,7 +922,15 @@ int MStatUpdateActiveJobUsage(
|
||||
(double)MSched.Interval / 100.0,
|
||||
(double)MSched.Time - J->StartTime);
|
||||
|
||||
pesdedicated = PE * interval;
|
||||
if ((RQ->NAccessPolicy == mnacSingleJob) &&
|
||||
(MSched.NodeAllocMaxPS == TRUE))
|
||||
{
|
||||
pesdedicated = TotalProcs * interval;
|
||||
}
|
||||
else
|
||||
{
|
||||
pesdedicated = PE * interval;
|
||||
}
|
||||
|
||||
for (rqindex = 0;J->Req[rqindex] != NULL;rqindex++)
|
||||
{
|
||||
@ -935,7 +951,7 @@ int MStatUpdateActiveJobUsage(
|
||||
|
||||
if ((J->StartTime != MSched.Time) && (J->CTime != MSched.Time))
|
||||
{
|
||||
psdedicated = interval * MJobGetProcCount(J);
|
||||
psdedicated = interval * TotalProcs;
|
||||
|
||||
for (nindex = 0;nindex < MAX_MNODE_PER_JOB;nindex++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user