Mechanism for managing parallel execution of processes in a distributed computing environment
First Claim
1. A computer implemented method for managing execution of work in a networked multi-processor computing environment in which work is distributed between multiple processors, the method comprising:
- receiving a first file that represents a work request, said first file specifying a first job and a second job for execution in a networked multi-processor computing environment in which work is distributed among multiple processors, said first job comprising a first task and said second job comprising a second task;
wherein said first task has a parent-child relationship with said first job such that said first task is a child of said first job, and wherein said second task has a parent-child relationship with said second job such that said second task is a child of said second job;
wherein said first and second jobs comprise respective aggregations of executable commands and wherein said first and second tasks each comprise at least one of said executable commands;
wherein dependencies among jobs are specified in a corresponding work request by hierarchically relating, in a file that represents the corresponding work request, interdependent jobs, and wherein dependencies among jobs specified in the corresponding work request contribute to a determination of an order in which commands are executed in the networked multi-processor computing environment;
interpreting said first file to automatically determine, based at least in part on whether said first and second jobs are hierarchically related in the first file, whether said first and second jobs have any dependencies that have not been satisfied;
in response to a determination that said first and second jobs have no dependencies that have not been satisfied, causing said first task of said first job and said second task of said second job to be executed in parallel based on a default work execution order which is to execute jobs in parallel unless otherwise specified in said file that represents said work request; and
wherein said work request does not explicitly specify that said first and second tasks be executed in parallel.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one aspect, a work request that specifies first and second jobs is received. The first job comprises a first task and the second job comprises a second task. The work request is processed to automatically determine whether the jobs have any dependencies that have not been satisfied. In response to a determination that the jobs have no dependencies that have not been satisfied, the jobs are caused to be executed in parallel. As a default manner of operation, the tasks included in each respective job are collectively executed in parallel, whereas tasks within a given job are not executed in parallel. In an embodiment, the tasks are executed on one or more servers of a group of networked servers.
118 Citations
19 Claims
-
1. A computer implemented method for managing execution of work in a networked multi-processor computing environment in which work is distributed between multiple processors, the method comprising:
-
receiving a first file that represents a work request, said first file specifying a first job and a second job for execution in a networked multi-processor computing environment in which work is distributed among multiple processors, said first job comprising a first task and said second job comprising a second task; wherein said first task has a parent-child relationship with said first job such that said first task is a child of said first job, and wherein said second task has a parent-child relationship with said second job such that said second task is a child of said second job; wherein said first and second jobs comprise respective aggregations of executable commands and wherein said first and second tasks each comprise at least one of said executable commands; wherein dependencies among jobs are specified in a corresponding work request by hierarchically relating, in a file that represents the corresponding work request, interdependent jobs, and wherein dependencies among jobs specified in the corresponding work request contribute to a determination of an order in which commands are executed in the networked multi-processor computing environment; interpreting said first file to automatically determine, based at least in part on whether said first and second jobs are hierarchically related in the first file, whether said first and second jobs have any dependencies that have not been satisfied; in response to a determination that said first and second jobs have no dependencies that have not been satisfied, causing said first task of said first job and said second task of said second job to be executed in parallel based on a default work execution order which is to execute jobs in parallel unless otherwise specified in said file that represents said work request; and wherein said work request does not explicitly specify that said first and second tasks be executed in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium carrying one or more sequences of instructions for managing execution of work in a networked multi-processor computing environment in which work is distributed between multiple processors, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform:
-
receiving a first file that represents a work request, said first file specifying a first job and a second job for execution in a networked multi-processor computing environment in which work is distributed among multiple processors, said first job comprising a first task and said second job comprising a second task; wherein said first task has a parent-child relationship with said first job such that said first task is a child of said first job, and wherein said second task has a parent-child relationship with said second job such that said second task is a child of said second job; wherein said first and second jobs comprise respective aggregations of executable commands and wherein said first and second tasks each comprise at least one of said executable commands; wherein dependencies among jobs are specified in a corresponding work request by hierarchically relating, in a file that represents the corresponding work request, interdependent jobs, and wherein dependencies among jobs specified in the corresponding work request contribute to a determination of an order in which commands are executed in the networked multi-processor computing environment; interpreting said first file to automatically determine, based at least in part on whether said first and second jobs are hierarchically related in the first file, whether said first and second jobs have any dependencies that have not been satisfied; in response to a determination that said first and second jobs have no dependencies that have not been satisfied, causing said first task of said first job and said second task of said second job to be executed in parallel based on a default work execution order which is to execute jobs in parallel unless otherwise specified in said file that represents said work request; and wherein said work request does not explicitly specify that said first and second tasks be executed in parallel. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A network device that can manage execution of work, the network device comprising:
-
a network interface; a processor coupled to the network interface and receiving network messages from the network through the network interface; a computer-readable storage medium comprising one or more stored sequences of instructions which, when executed by the processor, cause performance of; receiving a first file that represents a work request, said first file specifying a first job and a second job for execution in a networked multi-processor computing environment in which work is distributed among multiple processors, said first job comprising a first task and said second job comprising a second task; wherein said first task has a parent-child relationship with said first job such that said first task is a child of said first job, and wherein said second task has a parent-child relationship with said second job such that said second task is a child of said second job; wherein said first and second jobs comprise respective aggregations of executable commands and wherein said first and second tasks each comprise at least one of said executable commands; wherein dependencies among jobs are specified in a corresponding work request by hierarchically relating, in a file that represents the corresponding work request, interdependent jobs, and wherein dependencies among jobs specified in the corresponding work request contribute to a determination of an order in which commands are executed in the networked multi-processor computing environment; interpreting said first file to automatically determine, based at least in part on whether said first and second jobs are hierarchically related in the first file, whether said first and second jobs have any dependencies that have not been satisfied; in response to a determination that said first and second jobs have no dependencies that have not been satisfied, causing said first task of said first job and said second task of said second job to be executed in parallel based on a default work execution order which is to execute jobs in parallel unless otherwise specified in said file that represents said work request; and wherein said work request does not explicitly specify that said first and second tasks be executed in parallel.
-
Specification