Issue: How is Moab calculating my jobs priority in checkjob?
Symptom: In this example I am using jobs 1111111111 from your support-diag output.
The job received the -54.5 from mdiag -f. There is a 2.0- ceiling. Because they, the user, used 56.52 we subtract 2.0. The user sits at -54.5 over their allocation.
============================ Depth: 8 intervals Interval Length: 12:00:00 Decay Rate: 1.00 FS Policy: DEDICATEDPES FSInterval % Target 0 1 2 3 4 5 6 7 USER |
============================ job 1111111111 (RM job '1111111111.emory-sched.pace.gatech.edu') AName: job_name1 State: Running Creds: user:some_user group:some_group class:a_class WallTime: 8:46:17 of 12:00:00 SubmitTime: Sat Nov 21 08:46:29 (Time Queued Total: 1:23:00:19 Eligible: 1:23:00:19) ------------------------------------------------------------------------- Priority Analysis: Job PRIORITY* Cred(Class) FS( User) Serv(QTime) Weights -------- 1( 1) 1( 1000) 1( 1) 1111111111 -15704 38.6(36000) 58.4(-54.5) 3.0(2820.) PE: 17.00 Reservation '1111111111' (-8:46:43 -> 3:13:17 Duration: 12:00:00) |
Solution:
The formula for the job priority is "component_weight * subcomponent_weight * subcomponent_value" + "component_weight.....".
So the formula in this case is:
CREDWEIGHT*CLASSWEIGHT*CLASS_PRIORITY+FSWEIGHT*FSUSERWEIGHT*FSUSERVALUE+SERVWEIGHT+QTIMEWEIGHT+QTIME |
or
1*1*36000 + 1*1000*(-54.5) + 1*1*2820 = -15680 |
The values displayed in mdiag -p are rounded from floating point values. Internally the floating point values are used. This leads to minor differences when I calculate them by hand. In this case -15704 verses -15680.