Here is the new modified maxps pattch:
NODEALLOCMAXPS.patch
--
--
********************************************************************
* *
* Bas van der Vlies e-mail: [EMAIL PROTECTED] *
* SARA - Academic Computing Services phone: +31 20 592 8012 *
* Kruislaan 415 fax: +31 20 6683167 *
* 1098 SJ Amsterdam *
* *
********************************************************************
Index: include/msched-common.h
===================================================================
--- include/msched-common.h (revision 1)
+++ include/msched-common.h (working copy)
@@ -872,7 +872,8 @@
pOLDAFSWeight,
pOLDDirectSpecWeight,
pOLDBankServer,
- pOLDRMServer
+ pOLDRMServer,
+ pNAMaxps /* HvB */
};
#endif /* __M_COMMON_H__ */
Index: include/msched.h
===================================================================
--- include/msched.h (revision 1)
+++ include/msched.h (working copy)
@@ -2360,6 +2360,9 @@
mnode_t *ComputeN[MAX_MNODE];
int (*HTTPProcessF)(msocket_t *,char *);
+
+ /* HvB */
+ int NodeAllocMaxps; /* (config boolean) */
} msched_t;
Index: src/moab/MConst.c
===================================================================
--- src/moab/MConst.c (revision 1)
+++ src/moab/MConst.c (working copy)
@@ -1540,6 +1540,7 @@
{ "MINADMINSTIME", mcoAdminMinSTime, mdfString, mxoSched, NULL },
{ "MINDISPATCHTIME", pMinDispatchTime, mdfString, mxoSched, NULL },
{ "NODEACCESSPOLICY", pNAPolicy, mdfString, mxoSched, NULL },
+ { "NODEALLOCMAXPS", pNAMaxps, mdfString, mxoSched, NULL }, /* HvB */
{ "NODEALLOCATIONPOLICY", pNodeAllocationPolicy, mdfString, mxoPar, NULL },
{ "NODECAP", pRNodeCap, mdfInt, mxoPar, NULL },
{ "NODECPUOVERCOMMITFACTOR", pNodeCPUOverCommitFactor, mdfDouble, mxoSched, NULL },
Index: src/moab/MStats.c
===================================================================
--- src/moab/MStats.c (revision 1)
+++ src/moab/MStats.c (working copy)
@@ -1006,8 +1006,21 @@
called from: MQueueAddAJob()
*/
- TotalProcs = MJobGetProcCount(J);
+ /*
+ * HvB Calculation fix for SINGLEJOB nodes
+ RQ = J->Req[0];
+ if ( RQ->NAccessPolicy == mnacSingleJob )
+ */
+ if ( MSched.NodeAllocMaxps == TRUE )
+ {
+ TotalProcs = J->NodesRequested;
+ }
+ else
+ {
+ TotalProcs = MJobGetProcCount(J);
+ }
+
if (TotalProcs == 0)
{
DBG(3,fSTAT) DPrint("INFO: no tasks associated with job '%s' (no statistics available)\n",
@@ -1022,7 +1035,18 @@
(double)MSched.Interval / 100.0,
(double)MSched.Time - J->StartTime);
- pesdedicated = PE * interval;
+ /*
+ * HvB
+ if ( RQ->NAccessPolicy == mnacSingleJob )
+ */
+ if ( MSched.NodeAllocMaxps == TRUE )
+ {
+ pesdedicated = TotalProcs * interval;
+ }
+ else
+ {
+ pesdedicated = PE * interval;
+ }
for (rqindex = 0;J->Req[rqindex] != NULL;rqindex++)
{
@@ -1040,10 +1064,10 @@
psremaining = TotalProcs * (J->StartTime + J->WCLimit - MSched.Time);
else
psremaining = 0;
-
+
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++)
{
Index: src/moab/MSched.c
===================================================================
--- src/moab/MSched.c (revision 1)
+++ src/moab/MSched.c (working copy)
@@ -5969,6 +5969,16 @@
break;
+ /* HvB */
+ case pNAMaxps:
+ if (MUBoolFromString(SVal,TRUE) == TRUE)
+ S->NodeAllocMaxps = TRUE;
+ else
+ S->NodeAllocMaxps = FALSE;
+
+ break;
+
+
default:
/* not handled */
Index: src/moab/MPolicy.c
===================================================================
--- src/moab/MPolicy.c (revision 1)
+++ src/moab/MPolicy.c (working copy)
@@ -1611,6 +1611,11 @@
double PE;
+ /*
+ * HvB
+ */
+ mreq_t *RQ;
+
const char *FName = "MPolicyAdjustUsage";
DBG(4,fSCHED) DPrint("%s(%s,%s,%s,%s,%s,%s,%d,%s)\n",
@@ -1646,8 +1651,19 @@
PConsumed[mptMaxJob] = 1;
PConsumed[mptMaxProc] = MJobGetProcCount(J);
PConsumed[mptMaxNode] = J->Request.NC;
- PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
+ /*
+ * HvB Calculation fix for NODEACCESSPOLICY SINGLEJOB
+ RQ = J->Req[0];
+ if ( RQ->NAccessPolicy == mnacSingleJob )
+ */
+ if ( MSched.NodeAllocMaxps == TRUE )
+ {
+ PConsumed[mptMaxPS] = J->NodesRequested * PConsumed[mptMaxWC];
+ }
+ else
+ PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
+
MJobGetPE(J,&MPar[0],&PE);
PConsumed[mptMaxPE] = (int)PE;
@@ -1664,7 +1680,18 @@
PConsumed[mptMaxNode] = R->NodeCount;
PConsumed[mptMaxWC] = R->EndTime - R->StartTime;
PConsumed[mptMaxPE] = R->AllocPC;
- PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
+
+ /*
+ * HvB Calculation fix for NODEACCESSPOLICY SINGLEJOB
+ RQ = J->Req[0];
+ if ( RQ->NAccessPolicy == mnacSingleJob )
+ */
+ if ( MSched.NodeAllocMaxps == TRUE )
+ {
+ PConsumed[mptMaxPS] = J->NodesRequested * PConsumed[mptMaxWC];
+ }
+ else
+ PConsumed[mptMaxPS] = PConsumed[mptMaxProc] * PConsumed[mptMaxWC];
}
else
{
Index: src/moab/MConfig.c
===================================================================
--- src/moab/MConfig.c (revision 1)
+++ src/moab/MConfig.c (working copy)
@@ -1778,6 +1778,7 @@
case pPlotMaxNode:
case pPlotNodeScale:
case pNodeUntrackedProcFactor:
+ case pNAMaxps: /* HvB */
MSchedProcessOConfig(&MSched,PIndex,val,valf,valp,valpa,IndexName);
Index: src/moab/MJob.c
===================================================================
--- src/moab/MJob.c (revision 1)
+++ src/moab/MJob.c (working copy)
@@ -2759,6 +2759,11 @@
double PE;
+ /*
+ * HvB
+ */
+ mreq_t *RQ;
+
/* Modes: active, system, queue */
const char *FName = "MJobCheckLimits";
@@ -2790,8 +2795,21 @@
JUsage[mptMaxProc] = MJobGetProcCount(J);
JUsage[mptMaxNode] = J->Request.NC;
JUsage[mptMaxWC] = J->WCLimit;
- JUsage[mptMaxPS] = JUsage[mptMaxProc] * JUsage[mptMaxWC];
+ /*
+ * HvB Calculation fix for NODEACCESSPOLICY SINGLEJOB
+ RQ = J->Req[0];
+ if ( RQ->NAccessPolicy == mnacSingleJob )
+ */
+ if ( MSched.NodeAllocMaxps == TRUE )
+ {
+ JUsage[mptMaxPS] = J->NodesRequested * JUsage[mptMaxWC];
+ }
+ else
+ {
+ JUsage[mptMaxPS] = JUsage[mptMaxProc] * JUsage[mptMaxWC];
+ }
+
MJobGetPE(J,&MPar[0],&PE);
JUsage[mptMaxPE] = (int)PE;
_______________________________________________
mauiusers mailing list
[email protected]
http://www.supercluster.org/mailman/listinfo/mauiusers