SLURM Runtime

Job Run Time

All jobs are required to have a hard run-time specification. Jobs that do not have this specification will have a default run-time of 1 hour and will be stopped at that point.

User's should ensure that they let the scheduler know the estimated run time of their jobs by including the following option in their submit scripts:

#SBATCH --time=XX:XX:XX

where XX:XX:XX is the hours, minutes and seconds the job is expected to run. This time can also be expressed as a single integer of seconds. The general rule of thumb is that the shorter your job runtime, the more quickly your job should be started.

Determining Job Run Time

Only benchmarking or profiling your code will provide a reasonable time estimate, but there are some rules you can go by when attempting to make an educated guess:

  • Embarrassingly Parallel or Course-Grained tasks tend to scale linearly or near-linearly. Generally, you can divide the time it takes to run on one processor by the number of processors you are planning to run on.
  • Fine-Grained computations generally follow some scaling curve where after some point, adding additional resources does not yield any appreciable speedup. Depending on the parameters passed to the program, there may be no established point of reference for a reasonable time table. The best thing to do in this case is benchmark the code given the same input parameters but perhaps with fewer repeated iterations, time steps, etc. Get an idea of how the application behaves with smaller, shorter-running jobs, then make a reasonable estimate of how the runtime will change as you increase your iterations, time-steps, etc.