# # Expressions used to control starting and stopping of foreign jobs # StateTimer = (CurrentTime - EnteredCurrentState) ActivityTimer = (CurrentTime - EnteredCurrentActivity) NonCondorLoadAvg = (LoadAvg - CondorLoadAvg) BackgroundLoad = 0.3 HighLoad = 0.6 StartIdleTime = 15 * $(MINUTE) ContinueIdleTime = 5 * $(MINUTE) MaxSuspendTime = 10 * $(MINUTE) MaxVacateTime = 10 * $(MINUTE) KeyboardBusy = (KeyboardIdle < $(POLLING_INTERVAL)) CPU_Idle = ($(NonCondorLoadAvg) <= $(BackgroundLoad)) CPU_Busy = ($(NonCondorLoadAvg) >= $(HighLoad)) BigJob = (False) MediumJob = (ImageSize >= (15 * 1024)) SmallJob = (ImageSize < (15 * 1024)) JustCpu = ($(CPU_Busy) && ($(KeyboardBusy) == False)) MachineBusy = ($(CPU_Busy) || $(KeyboardBusy)) WANT_SUSPEND : (Owner != "jbasney") && \ ($(SmallJob) || $(JustCpu)) WANT_VACATE : $(MediumJob) || $(SmallJob) WANT_SUSPEND_VANILLA : True WANT_VACATE_VANILLA : True CS_START = $(CPU_Idle) && KeyboardIdle > $(StartIdleTime) CS_SUSPEND = $(MachineBusy) CS_CONTINUE = (KeyboardIdle > $(ContinueIdleTime)) && $(CPU_Idle) CS_VACATE = ((WANT_SUSPEND == False) && $(MachineBusy)) || \ (WANT_SUSPEND && ($(ActivityTimer) > $(MaxSuspendTime))) CS_KILL = ((WANT_SUSPEND == False) && (WANT_VACATE == False) && \ $(MachineBusy)) || \ ((WANT_SUSPEND == True) && (WANT_VACATE == False) && \ ($(ActivityTimer) > $(MaxSuspendTime))) || \ (WANT_VACATE && $(ActivityTimer) > $(MaxVacateTime)) START : $(CS_START) SUSPEND : $(CS_SUSPEND) CONTINUE : $(CS_CONTINUE) VACATE : $(CS_VACATE) KILL : $(CS_KILL) SUSPEND_VANILLA : $(MachineBusy) CONTINUE_VANILLA : $(CPU_Idle) && KeyboardIdle > $(ContinueIdleTime) VACATE_VANILLA : $(ActivityTimer) > $(MaxSuspendTime) KILL_VANILLA : $(ActivityTimer) > $(MaxVacateTime) # # Periodic Checkpointing (uncomment to enable) LastCkpt = (CurrentTime - LastPeriodicCheckpoint) PERIODIC_CHECKPOINT : $(LastCkpt) > (3 * $(HOUR))