Follow the PBS Pro Design Document Guidelines.

Links

Overview

Right now the only way pbs_ralter can change the shape of a reservation is via the start/end/duration.  The resources requested by the reservation can not be altered.  The RFE will allow the select resource request to be modified.  It will be done in a limited way to start, but it can be enhanced further in the future.


Interface: pbs_ralter -l select=<select spec>


Examples

% pbs_rsub -l select=2:ncpus=2:color=red+2:ncpus=2:color=yellow

R1 CONFIRMED

% pbs_ralter -l select=1:ncpus=2:color=red+2:ncpus=2:color=yellow

% pbs_ralter -l select=1:ncpus=2:color=red+1:ncpus=2:color=yellow

% pbs_ralter -l select=2:ncpus=2:color=yellow

% pbs_ralter -lselect=4:ncpus=2:color=red+2:ncpus=2:color=yellow

% pbs_ralter -lselect=2:ncpus=2:color=green+2:ncpus=2:color=yellow

OR

% pbs_ralter -lselect=2:ncpus=1:color=red+2:ncpus=2:color=yellow

% pbs_ralter -lselect=2:ncpus=2:color=red+2:ncpus=2:color=yellow+2:ncpus=2:color=green

% pbs_ralter -l select=1:ncpus=2:color=red+1:ncpus=2:color=red+1:ncpus=2:color=yellow+1:ncpus=2:color=yellow

Technical Details

We will extend the existing functionality if altering a reservation.

The following is how a reservation alter works:

  1. We store all the attributes we are changing on the reservation structure itself.
  2. We change the reservation attributes to the new values
  3. We contact the scheduler and tell it to confirm the altered reservation
  4. If the reservation is confirmed, yay.
  5. If the reservation fails to confirm, we set the reservation attributes back to their existing values.


In the scheduler, altering a reservation is very similar to reconfirming a degraded reservation.

  1. disable reservation events in the calendar, so to not have the reservation conflict with itself
  2. if the reservation is not running, ignore the existing nodes and confirm it as it was unconfirmed
  3. If the reservation is running, create an internal select based on the exec_vnode to force the reservation back on the same nodes
  4. call pbs_confirmresv() with success or failure


In the server we will save both the original select and schedselect.


If the reservation is not running yet, #2 remains the same, except that we might be searching for different resources.

If the reservation has started running, #3 needs to be modified in the following ways:


The detection of whether the number of chunks are correct (fewer) will be done in the server and an immediate response will be given to the user.





OSS Site Map

Project Documentation Main Page

Developer Guide Pages