There is provided a method to schedule execution of a plurality of batch
jobs by a computer system. The method includes: reading one or more
constraints that constrain the execution of the plurality of batch jobs
by the computer system and a current load on the computer system;
grouping the plurality of batch jobs into at least one run frequency that
includes at least one batch job; setting the at least one run frequency
to a first run frequency; computing a load generated by each batch job in
the first run frequency on the computer system based on each batch job's
start time; and determining an optimized start time for each batch job in
the first run frequency that meets the one or more constraints and that
distributes each batch job's load on the computer system using each batch
job's computed load and the current load.