From 7e1811130b616e4b52b9d3478f87766a68ef1c78 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Thu, 15 Sep 2011 17:23:37 -0700 Subject: [PATCH] Describe mechanism to reserve CPUs rather than whole nodes Update reservation web page to describe mechanism to reserve CPUs rather than whole nodes and provide an example. --- doc/html/reservations.shtml | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/doc/html/reservations.shtml b/doc/html/reservations.shtml index 2c80c74e7bd..f94179df5a9 100644 --- a/doc/html/reservations.shtml +++ b/doc/html/reservations.shtml @@ -106,7 +106,7 @@ ReservationName=root_5 StartTime=2009-02-04T16:22:57 Users=root Accounts=(null) </pre> -<p>Our final example is to reserve ten nodes in the default +<p>Our next example is to reserve ten nodes in the default SLURM partition starting at noon and with a duration of 60 minutes occurring daily. The reservation will be available only to users alan and brenda.</p> @@ -131,6 +131,28 @@ reservation. Note that the reservation creation request can also identify the partition from which to select the nodes or _one_ feature that every selected node must contain.</p> +<p>On a smaller system, one might want to reserve specific CPUs rather than +whole nodes. While the resolution of SLURM's resource reservation is that of +whole nodes, one might configure each CPU as a license to SLURM and reserve +those instead (we understand this is a kludge, but it does provide a way to +work around this shortcoming in SLURM's code). Proper enforcement then requires +that each job request one "cpu" license for each CPU to be allocated, which +can be accomplished by an appropriate job_submit plugin. In the example below, +we configure the system with one license named "cpu" for each CPU in the +system, 64 in this example, then create a reservation for 32 CPUs. The +user developed job_submit plugin would then explicitly set the job's +licenses field to require one "cpu" for each physical CPU required to satisfy +the request.</p> +<pre> +$ scontrol show configuration | grep Licenses +Licenses = cpu*64 + +$ scontrol create reservation starttime=2009-04-06T16:00:00 \ + duration=120 user=bob flags=maint,ignore_jobs \ + licenses=cpu*32 +Reservation created: bob_5 +</pre> + <h2>Reservation Use</h2> <p>The reservation create response includes the reservation's name. @@ -252,9 +274,11 @@ the highest level rather than the actual level of time-slicing when considering the initiation of jobs. This will prevent the initiation of some jobs which would complete execution before a reservation given fewer jobs to time-slice with.</li> +<li>Add support to reserve specific CPU counts rather than require whole +nodes be reserved (work around described above).</li> </ol> -<p style="text-align: center;">Last modified 16 March 2011</p> +<p style="text-align: center;">Last modified 15 September 2011</p> <!--#include virtual="footer.txt"--> -- GitLab