Robert Wood - Livermore CA,
Philip Eckert - Livermore CA,
Gregg Hommes - Pleasanton CA,
The Regents of the University of California
A method and system for job scheduling (including backfill scheduling) dedicated heterogeneous nodes in a multi-node computing environment. Heterogeneous nodes in the computing environment are first discovered and grouped into homogeneous node sub-pools. For each sub-pool, a free node schedule is created so that the number of free nodes in the sub-pool may be charted over time. For each job in order of priority, using the free node schedules of only those sub-pools having nodes which may be used by a particular job, to determine the earliest time range capable of running the job. Once the earliest time range is determined for a particular job, scheduling the job to run in that earliest time range. If the earliest time range determined for a lower priority job has a start time occurring earlier than a higher priority job, then the lower priority job is scheduled to run in that earliest time range if doing so would not disturb the anticipated start times of any higher priority job previously scheduled to run at a future time. In this manner, the overall efficient utilization and throughput of dedicated heterogeneous multi-node computers may be increased without degrading utilization or throughput of higher priority jobs by utilizing resources that would otherwise remain idle.