The increasing complexity of electronic tasks (e.g. executable programs such as computational tasks, command execution, data collection, etc.) has increased the demand for resources used in accomplishing such tasks. Resources may include hardware that aids in completing electronic tasks, such as servers, clients, mainframe computers, networks, network storage, databases, memory, CPU time, and scientific instruments. Resources may also include software, available network services, and other non-hardware resources.
One response to the increased demand for resources has been the development of networked computing grid systems, which operate to integrate resources from otherwise independent grid participants. Computing grid systems generally include hardware and software infrastructure configured to form a virtual organization comprised of multiple resources in often geographically disperse locations.
Electronic tasks, often referred to as “jobs,” typically require certain amounts and/or types of resources for completion. Once a job is created, it is to be assigned, or scheduled, to sufficient and compatible resources within a computing grid system. However, jobs are often subject to specified goal requirements, which can complicate the scheduling of such jobs. For example, project planners may need to schedule jobs that should be completed by a predetermined deadline. In such instances, the fate of the project may depend on whether the job is appropriately scheduled.