Grid non-deterministic job scheduling
First Claim
1. A method for scheduling a job on a grid wherein a scheduler does not have to keep track of a plurality of state dependent resource properties.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention is method for scheduling jobs in a grid computing environment without having to monitor the state of the resource on the gird comprising a Global Scheduling Program (GSP) and a Local Scheduling Program (LSP). The GSP receives jobs submitted to the grid and distributes the job to the closest resource. The resource then runs the LSP to determine if the resource can execute the job under the conditions specified in the job. The LSP either rejects or accepts the job based on the current state of the resource properties and informs the GSP of the acceptance or rejection. If the job is rejected, the GSP randomly selects another resource to send the job to using a resource table. The resource table contains the state-independent properties of every resource on the grid.
-
Citations
60 Claims
- 1. A method for scheduling a job on a grid wherein a scheduler does not have to keep track of a plurality of state dependent resource properties.
-
16. A method for scheduling a job on a grid wherein a resource determines whether to accept the job, the method comprising:
-
determining whether the resource can execute the job;
responsive to the determination that the resource can execute the job, indicating that the resource has accepted the job; and
executing the job at the resource. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A program product for scheduling a job on a grid wherein a scheduler does not have to keep track of a plurality of state dependent resource properties, the program product comprising:
-
a memory;
wherein the memory contains instructions for a processor to implement first steps comprising;
running a local scheduling program at a resource with the job;
determining whether the resource accepted the job;
responsive to the determination that the resource did not accept the job, the processor implements second steps comprising;
randomly selecting a second resource from a plurality of remaining resources; and
sending the job to the second resource and repeating the steps in claim 31. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 58, 59)
-
-
45. A program product for scheduling a job on a grid wherein a resource determines whether to accept the job, the program product comprising:
-
a memory;
wherein the memory contains instructions for a processor to implement steps comprising;
determining whether the resource can execute the job;
responsive to the determination that the resource can execute the job, indicating that the resource has accepted the job; and
executing the job at the resource. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
-
60. An apparatus for scheduling a job on a grid wherein a scheduler does not have to keep track of a plurality of state dependent resource properties, the apparatus comprising:
-
means for receiving notification that the job has been submitted to the grid;
means for determining whether a submitting computer is a resource;
responsive to the determination that the submitting computer is not the resource, means for sending the job to the closest resource to the submitting computer;
means for running a local scheduling program at the resource with the job;
means for determining whether the resource accepted the job;
responsive to the determination that the resource did not accept the job, means for performing second steps comprising;
adding the resource to an attempted resources list;
determining the remaining resources capable of executing the job using a resource table;
removing from consideration the resource on the attempted resources list;
determining if any remaining resources remain after removing from consideration the resource on the attempted resources list;
responsive to the determination that remaining resources remain, determining if a preset number of iterations have been reached;
responsive to the determination that the preset number of iterations have been reached, clearing the attempted resources list and waiting a specified amount of time;
responsive to the determination that the preset number of iterations have been reached, repeating the steps above;
responsive to the determination that the preset number of iterations have not been reached, notifying an originating computer that the job has failed;
responsive to the determination that remaining resources remain, performing the randomly selecting a second resource from a plurality of remaining resources step;
sending the job to the second resource and repeating the steps above;
wherein the resource table consists of a plurality of state independent resource properties. wherein the local scheduling program comprises;
means for determining whether the resource can execute the job;
responsive to the determination that the resource can execute the job, means for indicating that the resource has accepted the job;
means for executing the job at the resource;
responsive to the determination that the resource cannot execute the job, means for indicating that the resource has not accepted the job;
wherein the job is placed in an execution queue prior to being executed;
wherein the local scheduling program determines whether the resource can execute the job by examining the state dependent resource properties;
wherein any computer connected to the grid can accept the job; and
wherein any computer connected to the grid can schedule the job.
-
Specification