Resource Reservation
Resource reservation ensure that specific groups always has access to licenses, regardless of the number of jobs.
For example, if you have 10 licenses of spice but you want to make sure that the 'Production' group has always access to 2 of those licenses, you can use resource reservation.
A resource map can be reserved in whole or in part for a group, a user, or a specific job. When a resource is reserved for a group, jobs in other groups cannot use that resource. Similarly, the same happens for user reservation.
With resource reservation, you are willing to take a hit in the overall utilization of the resources in order to provide instant access to a specific group or user. The reserved resources remain idle even if there is demand for those resources by other groups or users. If you care about overall utilization, consider the other mechanisms of FairShare and preemption.
- ResourceName
- The name of the resource you want to reserve.
- TypeOfReservation
- One of the following strings "USER" "GROUP" "JOBID" "JOBCLASS" "JOBPROJ"
- NameOfUserOrGroupOrJob
- Depending on the value of the previous argument, this is the name of the user or the name of a group or the ID of the job for which the resource map is to be reserved. The reservation for a specific job is used by the preemption daemon.
- HowMany
- The quantity of resources to be reserved. If this is greater or equal than the total available quantity, then the whole resource map is reserved.
- Duration
- The duration of the reservation. After the expiration of the reservation, the resources become available to all.
- Explanation
- A message to document why this reservation has been placed.
Examples of vtk_resourcemap_reserve
# Reserve 1 License:abc to user John for the next 3 days.
vtk_resourcemap_reserve License:abc USER john 1 3d "decided by the boss"
# Reserve 3 licenses for a group
vtk_resourcemap_reserve License:abc GROUP /app/alpha 3 8h "agreed by the board"
# Reserve 3 licenses for a jobclass
vtk_resourcemap_reserve License:abc JOBCLASS hsim 3 8h "as discussed in meeting"
Cancel a Resource Reservation
# Cancel all reservations on a resource.
vtk_resourcemap_clear_reservations License:abc
# Cancel a reservation for user john.
vtk_resourcemap_reserve License:abc USER john 1 2s "cancel"
# Cancel a reservation for a group
vtk_resourcemap_reserve License:abc GROUP /app/alpha 3 2s "cancel"
# Cancel a reservation for a jobclass
vtk_resourcemap_reserve License:abc JOBCLASS hsim 3 3s "cancel"