Maui Scheduler

Appendix D: Structure Limits

Maui is distributed in a configuration capable of supporting multiple architectures and systems ranging from a few processors to several thousand processors. However, in spite of its flexibility, it still contains a number of static structures defined in header files. These structures limit the default number of jobs, reservations, nodes, etc, which Maui can handle and are set to values which provide a reasonable compromise between capability and memory consumption for most sites. However, many sites desire to increase some of these settings to extend functionality, or decrease them to save consumed memory. The most common parameters are listed below and can be adjusted by simply modifying the appropriate #define and rebuilding Maui.

The documented limits have been well tested however caution is advised that changes to some limits may result in undesirable side-affects.

Parameter Location Limit Description
MMAX_ATTR moab.h 128 total number of distinct node attributes (PBS node attributes/LL node features) which can be tracked
MMAX_CLASS moab.h 12 total number of distinct job classes/queues available
MMAX_CLIENT moab.h 4 total number of simultaneous client connections allowed
MMAX_FSDEPTH moab.h 24 number of active fairshare windows
MMAX_JOB moab.h 4096 maximum total number of simultaneous idle/active jobs allowed. NOTE: on some releases of Maui, MAX_MJOB may also need to be set and synchronized with MMAX_JOB.
MMAX_NODE moab.h 5120 maximum number of compute nodes supported
MMAX_NODE_PER_JOB msched-common.h 1024 maximum number of compute nodes which can be allocated to a single job
MAX_MPAR moab.h 4 maximum number of partitions supported
MAX_MQOS moab.h 128 total number of distinct QOS objects available to jobs
MMAX_RES_DEPTH moab.h 256 total number of distinct reservations allowed per node
MMAX_SRES moab.h 128 total number of distinct standing reservations available
MMAX_TASK moab.h 1560 total number of tasks allowed per job

Maui currently possesses hooks to allow sites to create local algorithms for handling site specific needs in several areas. The 'contrib' directory contains a number of sample 'local' algorithms for various purposes. The 'Local.c' module incorporates the algorithm of interest into the main code. The following scheduling areas are currently handled via the 'Local.c' hooks.

Local Job Attributes
Local Node Allocation Policies
Local Job Priorities
Local Fairness Policies

Overview of Major Structures (Under Construction)

Nodes
mnode_t

Jobs
mjob_t

Reservations
mres_t

Partitions
mpar_t

QOS
mqos_t