Migration of Preemption from 2013.03 and Prior Versions
Starting in version 2013.09, Accelerator has a new implementation of the preemption functionality. Within this section, the terminology "older version" of preemption is used to indicate Accelerator versions 2013.03 and prior and "newer version" of preemption to indicate Accelerator versions 2013.09 or later.
Optional vovpreemptd Daemon
The Preemption section discussed some of the changes in preemption implementations as compared to prior versions of Accelerator. Specifically, the preemption functionality for older versions, a stand-alone daemon monitored the file-based preemption rules and that daemon also preformed the actual preemption. For newer version of preemption, the functionality is performed by the server directly and preemption rules are stored within the persistent representation of Accelerator so that this information is preserved across server restarts. There is an optional daemon that can be used to monitor preemption rules that are stored within the preemption config.tcl file.
For new users of preemption and for previous preemption users upgrading from older versions of Accelerator, the initial decision for preemption configuration is to decide if preemption rules will be file-based or entered via Accelerator. If the preemption rules are file-based and the administrator wishes for Accelerator to monitor the rules, then the optional vovpremeptd daemon will need to be started.
Server Configuration
As previously mentioned, Accelerator is now managing the
preemption of jobs internally. The administrator can configure the server to specify
the frequency of how often Accelerator is to attempt preemption
of jobs. This is via the preemptionPeriod
server configuration
variable as described in Server Configuration. The
default value is that Accelerator evaluates the preemption rules
every 3 seconds. Setting this configuration value to 0 will disable preemption in
the server and setting the value to a larger number will obviously cause preemption
to occur on a less frequent basis.
VovPreemptRule Command Changes
VovPreemptRule
has some new command options and some slightly
modified commands option beginning in 2013.09. The two modified command options are
-killage and -method.
The default of -killage was changed from a default of 1 minute to 0. Previously, by default, any preempted job younger than 1 minute was killed and resubmitted. Now, this is not the default and young jobs will only be killed and re-submitted if the -killage command option is specified.
The -method option previously supported RESERVE and FREE_TASKERS as preemption methods. A new concept called Preemption Rule Types factors RESERVE and FREE_TASKERS out as -method and are now valid values for -ruletype. Consequently, any preemption rules that use these values as preemption method need to instead specify the values as preemption type.