Method and apparatus for processing executable program modules having multiple dependencies
First Claim
1. A computer-readable storage medium storing computer-executable instructions for implementing method steps for controlling the processing order of executable program modules in a computer system having multiple interdependent executable program modules, said method steps comprising:
- creating for each executable program module, a list of parent modules for said executable program module, and a status file for representing whether said executable program module is awaiting execution or has completed execution;
arranging said modules as nodes in an execution sequence defined by a directed acyclic graph;
traversing the directed acyclic graph to begin execution of all executable program modules without parent modules;
periodically checking the parent list of each node to determine whether all parent modules have completed execution;
updating the associated status file when a module has completed execution; and
beginning the execution of modules whose parent modules have completed execution, and updating the associated status file to indicate the module is currently executing.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer readable storage medium for executing a simulation process representing a collection of semiconductor devices and tests for the devices. The simulation process constitutes a batch job of a plurality of execution modules representing nodes of a directed acyclic graph. Each of the nodes contains a directory identifying any parent modules which have to be executed prior to executing the module, and identifying any child execution modules which are to be executed subsequent to executing the module. The directory also includes a status file indicating the state of execution of the module containing the directory. A supervisory processor performs a job farming operation on each of the execution modules in a distributed processing system. The execution modules are processed in an order defined by the identity of any parent and child modules referenced in the directories. At the completion of execution of a module, the status file of the directory is changed to indicate that the module has been executed.
45 Citations
11 Claims
-
1. A computer-readable storage medium storing computer-executable instructions for implementing method steps for controlling the processing order of executable program modules in a computer system having multiple interdependent executable program modules, said method steps comprising:
-
creating for each executable program module, a list of parent modules for said executable program module, and a status file for representing whether said executable program module is awaiting execution or has completed execution;
arranging said modules as nodes in an execution sequence defined by a directed acyclic graph;
traversing the directed acyclic graph to begin execution of all executable program modules without parent modules;
periodically checking the parent list of each node to determine whether all parent modules have completed execution;
updating the associated status file when a module has completed execution; and
beginning the execution of modules whose parent modules have completed execution, and updating the associated status file to indicate the module is currently executing. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for executing a simulation process representing a collection of semiconductor devices and tests of said devices defined by a batch job of a plurality of execution modules representing nodes of an acyclic graph to be executed, comprising:
-
creating a directory of pointers for each module identifying any parent modules which have to be executed prior to executing the module containing said directory, said directory also including a file which identifies the execution status of the module containing said directory;
job farming each of said execution modules for execution in a distributed processing system in an order defined by the identity of any parent; and
changing the status file of a directory of a module when said execution of said module is completed. - View Dependent Claims (7, 8, 9, 10, 11)
-
Specification