(Click to open topic with navigation)
This section explains how to set up simulation mode in Moab.
Configuring Moab Simulation
Once SIMULATION is set, the following parameters control the environment, behavior, and policies used within the simulation:
Parameter | Description |
---|---|
SIMINITIALQUEUEDEPTH | Specifies simulation backlog. |
SIMJOBSUBMISSIONPOLICY | Specifies how simulation backlog is managed. |
SIMPURGEBLOCKEDJOBS | Removes jobs that can never run. |
SIMWORKLOADTRACEFILE | Specifies source of job traces. |
Parameter | Description |
---|---|
SIMAUTOSHUTDOWN | Shuts down when all jobs have been scheduled. |
SIMSTARTTIME | Sets simulation clock to specified time. |
STOPITERATION | Pauses simulation on specified iteration. |
SIMWORKLOADTRACEFILE samples/workload.testcluster.txt STOPITERATION 0
CREDDISCOVERY TRUE SIMAUTOSHUTDOWN false SIMSTARTTIME 1196987696 USERCFG[DEFAULT] ENABLEPROFILING=true GROUPCFG[DEFAULT] ENABLEPROFILING=true ACCOUNTCFG[DEFAULT] ENABLEPROFILING=true CLASSCFG[DEFAULT] ENABLEPROFILING=true QOSCFG[DEFAULT] ENABLEPROFILING=true
The first two lines specify that the scheduler should run in simulation mode and use the referenced resource and workload trace files. In addition, leaving the STOPITERATION parameter at zero indicates that Moab should stop before the first scheduling iteration and wait for further instructions. If you want the simulation to run as soon as you start Moab, remove (or comment out) this line. To continue scheduling, run the mschedctl -r command.
The second set of parameters is helpful if you want to generate charts or reports from Moab Cluster Manager. Since events in the workload trace may reference credentials that are not listed in your moab.cfg file, set CREDDISCOVERY to true, which allows Moab to create simulated credentials for credentials that do not yet exist. Setting SIMAUTOSHUTDOWN to false prevents Moab from terminating after it has finished running all the jobs in the workload trace, and it allows you to generate charts after all the simulated jobs have finished. Ensure that SIMSTARTTIME is set to the epoch time (in seconds) of the first event in your workload trace file. This causes the internal clock in Moab to be set to the workload trace's first event, which prevents issues caused by the difference between the time the workload trace was created and the time reported by the CPU clock. Otherwise, Moab thinks the current time is the time that the CPU clock reports, yet simulated jobs that are reported by showq as currently running will really be running at the time the workload trace was created. To avoid confusion, set the SIMSTARTTIME. The lines that specify ENABLEPROFILING is true are necessary for Moab to keep track of the statistics generated by the simulated jobs. Not setting these lines will cause charts and reports to contain all zero values.