Maui reservations
Creating recurring reservations with Maui is tricky. So far all attempts creating a standing reservation failed to reserve what we wanted. It did reserve "something else", though. Using another approach, based on the setres command shows better results.
The following was tested with Maui version 3.3.4.
The concrete challenge: create a reservation for 6 cores for jobs submitted to the short queue on working days (Mon-Fri) from 9:30 to 18:30.
Standing Reservation
Using a standing reservation in Maui, the following fragment should be added to the configuration file /var/spool/maui/maui.cfg, followed by a restart of the maui daemon.
SRCFG[short] STARTTIME=9:30:00 ENDTIME=18:30:00 SRCFG[short] PERIOD=DAY DEPTH=3 SRCFG[short] DAYS=Mon,Tue,Wed,Thu,Fri SRCFG[short] TASKCOUNT=6 RESOURCES=PROCS:1 SRCFG[short] CLASSLIST=short
Maui creates a reservation:
# showres Reservations ReservationID Type S Start End Duration N/P StartTime short.0.0 User - 00:00:00 7:01:46 7:01:46 2/8 Fri Jun 21 11:28:14 1 reservation located
The 'Start' is always 00:00:00. The numbers of reserved nodes and processors are 2 and 8, respectively (why? we asked for 6 processors, right?). Anyway, submitting enough jobs to fill the entire cluster via another queue (i.e., outside the reservation) results in N-2 running jobs. So apparently, Maui reserved only 2 cores for the short queue....
Reservation via setres
Another shot, this time using the setres command (e.g. from a cron job). Again, we try to reserve 6 slots as 2 slots per node on 3 explicitly named nodes:
# /usr/bin/setres -n short -r "PROCS=2" -s 09:30:00 -e 18:30:00 -c short 'tbn(08|09|17).nikhef.nl'
Maui has the following reservation:
# showres short.0 Reservations ReservationID Type S Start End Duration N/P StartTime short.0 User - -01:53:06 7:06:54 9:00:00 3/6 Fri Jun 21 09:30:00 1 reservation located
It is interesting to see that the start time is in the past and that the numbers of nodes and processors now match what we requested.
Again submitting enough jobs to fill the entire cluster to another queue, results in N-6 running jobs. That is exactly what was expected.