<!--#include virtual="header.txt"-->

<h1>Quality of Service (QOS)</h1>

<P>One can specify a Quality of Service (QOS) for each job submitted
to SLURM.  The quality of service associated with a job will affect
the job in three ways:

<ul>
<li> <a href=#priority>Job Scheduling Priority</a>
<li> <a href=#preemption>Job Preemption</a>
<li> <a href=#limits>Job Limits</a>
</ul>

<P> The QOS's are defined in the SLURM database using the <i>sacctmgr</i>
utility.

<P> Jobs request a QOS using the "--qos=" option to the
<i>sbatch</i>, <i>salloc</i>, and <i>srun</i> commands.</P>

<!-------------------------------------------------------------------------->
<a name=priority>
<h2>Job Scheduling Priority</h2></a>

<P> Job scheduling priority is made up of a number of factors as
described in the <a
href="priority_multifactor.html">priority/multifactor</a> plugin.  One
of the factors is the QOS priority.  Each QOS is defined in the SLURM
database and includes an associated priority.  Jobs that request and
are permitted a QOS will incorporate the priority associated with that
QOS in the job's <a
href="priority_multifactor.html#general">multi-factor priority
calculation.</a>

<P> To enable the QOS priority component of the multi-factor priority
calculation, the "PriorityWeightQOS" configuration parameter must be
defined in the slurm.conf file and assigned an integer value greater
than zero.

<P> A job's QOS only affects is scheduling priority when the
multi-factor plugin is loaded.</P>

<!-------------------------------------------------------------------------->
<a name=preemption>
<h2>Job Preemption</h2></a>

<P> SLURM offers two ways for a queued job to preempt a running job,
free-up the running job's resources and allocate them to the queued
job.  See the <a href="preempt.html"> Preemption description</a> for
details.

<P> The preemption method is determined by the "PreemptType"
configuration parameter defined in slurm.conf.  When the "PreemptType"
is set to "preempt/qos", a queued job's QOS will be used to determine
whether it can preempt a running job.

<P> The QOS can be assigned (using <i>sacctmgr</i>) a list of other
QOS's that it can preempt.  When there is a queued job with a QOS that
is allowed to preempt a running job of another QOS, the SLURM
scheduler will preempt the running job.</P>

<!-------------------------------------------------------------------------->
<a name=limits>
<h2>Job Limits</h2></a>

<P> Each QOS is assigned a set of limits which will be applied to the
job.  The limits mirror the limits imposed by the
user/account/cluster/partition association defined in the SLURM
database and described in the <a href="resource_limits.html"> Resource
Limits section</a>.  When limits for a QOS have been defined, they
will take precedence over the association's limits.

<P> Here are the limits that will be imposed on jobs running under a
QOS</P>

<UL>
<LI><b>GrpCPUMins</b> Maximum number of CPU*minutes all jobs with this QOS can run.
<LI><b>MaxCPUMinsPerJob</b> Maximum number of CPU*minutes any job with this QOS can run.
<LI><b>GrpCpus</b> Maximum number of CPU's all jobs with this QOS can be allocated.
<LI><b>MaxCpusPerJob</b> Maximum number of CPU's any job with this QOS can be allocated.
<LI><b>GrpJobs</b> Maximum number of jobs that can run with this QOS.
<LI><b>MaxJobsPerUser</b> Maximum number of jobs a user can run with this QOS.
<LI><b>GrpNodes</b> Maximum number of nodes that can be allocated to all jobs with this QOS.
<LI><b>MaxNodesPerJob</b> Maximum number of nodes that can be allocated to any job with this QOS.
<LI><b>GrpSubmitJobs</b> Maximum number of jobs with this QOS that can be in the system (no matter what state).
<LI><b>MaxSubmitJobsPerUser</b> Maximum number of jobs with this QOS that can be in the system.
<LI><b>GrpWall</b> Wall clock limit for all jobs running with this QOS.
<LI><b>MaxWallDurationPerJob</b> Wall clock limit for any jobs running with this QOS.
</UL>

<h2>Configuration</h2>

<P> To summarize the above, the QOS's and their associated limits are
defined in the SLURM database using the <i>sacctmgr</i> utility.  The
QOS will only influence job scheduling priority when the multi-factor
priority plugin is loaded and a non-zero "PriorityWeightQOS" has been
defined in the slurm.conf file.  The QOS will only determine job
preemption when the "PreemptType" is defined as "preempt/qos" in the
slurm.conf file.  Limits defined for a QOS (and described above) will
override the limits of the user/account/cluster/partition
association.</P>

<p style="text-align: center;">Last modified 9 October 2009</p>

</ul></body></html>
