Executing algorithms in parallel
First Claim
1. A machine-based method comprising:
- with respect to an application specification comprising one or more algorithms each not necessarily suitable for concurrent execution on multiple nodes in parallel;
grouping one or more different object classes into one or more groups each of the one or more groups representing the application specification and each of the one or more groups being based on a context, each of the groups being appropriate for executing the one or more algorithms of the application specification based on data that is available in instances of objects of the one or more different object classes of the group;
enabling a user to code an algorithm of the one or more algorithms for one of the one or more groups based on the context for execution in a single threaded environment without regard to concurrent execution of the algorithm on the multiple nodes in parallel;
distributing instances of the coded algorithm to corresponding nodes to be executed without needing additional coding;
causing each of the instances of the coded algorithm to be executed on the corresponding node as part of executing at least one instance of the group independently of and in parallel to executing other instances of the coded algorithm on other nodes also as part of executing the at least one instance of the group, each instance of the group comprising instances of objects of the object classes of the group, each of the instances of the objects having referential relationships only to other objects of the group; and
the coded algorithm being executed on a node using one process to access an instance of an object without contention from other processes used for concurrently executing other instances of the coded algorithm.
1 Assignment
0 Petitions
Accused Products
Abstract
Among other things, a machine-based method comprises receiving an application specification comprising one or more algorithms. Each algorithm is not necessarily suitable for concurrent execution on multiple nodes in parallel. One or more different object classes are grouped into one or more groups, each being appropriate for executing the one or more algorithms of the application specification. The executing involves data that is available in objects of the object classes. A user is enabled to code an algorithm of the one or more algorithms for one group in a single threaded environment without regard to concurrent execution of the algorithm on multiple nodes in parallel. An copy of the coded algorithm is distributed to each of the multiple nodes, without needing additional coding. The coded algorithm is caused to be executed on each node in association with at least one instance of a group independently of and in parallel to executing the other copies of the coded algorithm on the other nodes.
-
Citations
48 Claims
-
1. A machine-based method comprising:
with respect to an application specification comprising one or more algorithms each not necessarily suitable for concurrent execution on multiple nodes in parallel; grouping one or more different object classes into one or more groups each of the one or more groups representing the application specification and each of the one or more groups being based on a context, each of the groups being appropriate for executing the one or more algorithms of the application specification based on data that is available in instances of objects of the one or more different object classes of the group; enabling a user to code an algorithm of the one or more algorithms for one of the one or more groups based on the context for execution in a single threaded environment without regard to concurrent execution of the algorithm on the multiple nodes in parallel; distributing instances of the coded algorithm to corresponding nodes to be executed without needing additional coding; causing each of the instances of the coded algorithm to be executed on the corresponding node as part of executing at least one instance of the group independently of and in parallel to executing other instances of the coded algorithm on other nodes also as part of executing the at least one instance of the group, each instance of the group comprising instances of objects of the object classes of the group, each of the instances of the objects having referential relationships only to other objects of the group; and the coded algorithm being executed on a node using one process to access an instance of an object without contention from other processes used for concurrently executing other instances of the coded algorithm. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A computer program product residing on a non-transitory computer readable medium, the computer program product comprising instructions for causing a processor to:
with respect to an application specification comprising one or more algorithms each not necessarily suitable for concurrent execution on multiple nodes in parallel; group one or more different object classes into one or more groups each of the one or more groups representing the application specification and each of the one or more groups being based on a context, each of the groups being appropriate for executing the one or more algorithms of the application specification based on data that is available in instances of objects of the one or more different object classes of the group; enable a user to code an algorithm of the one or more algorithms for one of the one or more groups based on the context for execution in a single threaded environment without regard to concurrent execution of the algorithm on the multiple nodes in parallel; distribute instances of the coded algorithm to corresponding nodes to be executed without needing additional coding; causing each of the instances of the coded algorithm to be executed on the corresponding node as part of executing at least one instance of the group independently of and in parallel to executing other instances of the coded algorithm on other nodes also as part of executing the at least one instance of the group, each instance of the group comprising instances of objects of the object classes of the group, each of the instances of the objects having referential relationships only to other objects of the group; and the coded algorithm being executed on a node using one process to access an instance of an object without contention from other processes used for concurrently executing other instances of the coded algorithm. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
33. A computer system comprising:
-
a processor; a memory; and a storage device that stores a program for execution by the processor using the memory, the program comprising instructions configured to cause the processor to; with respect to an application specification comprising one or more algorithms each not necessarily suitable for concurrent execution on multiple nodes in parallel; group one or more different object classes into one or more groups each of the one or more groups representing the application specification and each of the one or more groups being based on a context, each of the groups being appropriate for executing the one or more algorithms of the application specification based on data that is available in instances of objects of the one or more different object classes of the group; enable a user to code an algorithm of the one or more algorithms for one of the one or more groups based on the context for execution in a single threaded environment without regard to concurrent execution of the algorithm on the multiple nodes in parallel; distribute instances of the coded algorithm to corresponding nodes to be executed without needing additional coding; cause each of the instances of the coded algorithm to be executed on the corresponding node as part of executing at least one instance of the group independently of and in parallel to executing other instances of the coded algorithm on other nodes also as part of executing the at least one instance of the group, each instance of the group comprising instances of objects of the object classes of the group, each of the instances of the objects having referential relationships only to other objects of the group; and the coded algorithm being executed on a node using one process to access an instance of an object without contention from other processes used for concurrently executing other instances of the coded algorithm. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
Specification