US2017249194A1PendingUtilityA1

Executing algorithms in parallel

Assignee: MIOSOFT CORPPriority: Mar 15, 2013Filed: May 17, 2017Published: Aug 31, 2017
Est. expiryMar 15, 2033(~6.6 yrs left)· nominal 20-yr term from priority
G06F 9/44G06F 9/5066G06F 8/456
54
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
1 - 45 . (canceled) 
     
     
         46 . A machine-based method comprising:
 with respect to an application specification comprising one or more algorithms comprising a business function and 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 particular business context;   enabling a user to code an algorithm of the one or more algorithms for one of the one or more groups for execution in a single threaded environment without regard to concurrent execution of the algorithm on multiple nodes in parallel;   causing each of the instances of the coded algorithm to be executed on the corresponding node on a single instance of a group using a single process independently of and in parallel to executing other instances of the coded algorithm using single processes on respective other nodes, the single processes being independent of each other; 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, each node being associated with a single instance.   
     
     
         47 . The machine-based method of  claim 46 , wherein each of the multiple nodes comprises a physical node. 
     
     
         48 . The machine-based method of  claim 46 , comprising assigning a weight to each node, the weight being proportional to a number of instances associated with the node. 
     
     
         49 . The machine-based method of  claim 48 , wherein the weight is the same for all nodes to which copies of the coded algorithm are distributed. 
     
     
         50 . The machine-based method of  claim 46 , comprising distributing copies of the coded algorithm to additional nodes and causing the coded algorithm to be executed on each of those additional nodes without affecting the existing distribution of the coded algorithm and the existing execution of the coded algorithm. 
     
     
         51 . The machine-based method of  claim 50 , wherein each node is assigned with a unique identifier that identifies the corresponding single instance. 
     
     
         52 . The machine-based method of  claim 46 , wherein each instance is associated with a single copy of the coded algorithm and a single node. 
     
     
         53 . The machine-based method of  claim 46 , comprising identifying a root object class within each group and enabling retrieving an entire instance of a group based on an object of the root object class contained in the instance. 
     
     
         54 . The machine-based method of  claim 46 , comprising enabling a user to save meta data of the grouping into a single file. 
     
     
         55 . 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;   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; 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.   
     
     
         56 . The computer program product of  claim 55 , wherein each of the nodes comprises a physical node. 
     
     
         57 . The computer program product of  claim 55 , wherein each node comprises a single thread for executing the coded algorithm. 
     
     
         58 . The computer program product of  claim 55 , wherein each node comprises a single process for executing the coded algorithm. 
     
     
         59 . The computer program product of  claim 55 , wherein the one or more algorithms comprise a business function. 
     
     
         60 . The computer program product of  claim 55 , comprising instructions for causing the processor to cause the coded algorithm to be executed on each node on a single instance of a group using a single process, and wherein different processes are independent of each other. 
     
     
         61 . The computer program product of  claim 55 , comprising instructions for causing the processor to assign a weight to each node, the weight being proportional to a number of instances associated with the node. 
     
     
         62 . The computer program product of  claim 61 , wherein the weight is the same for all nodes to which copies of the coded algorithm are distributed. 
     
     
         63 . The computer program product of  claim 55 , comprising instructions for causing the processor to distribute copies of the coded algorithm to additional nodes and to cause the coded algorithm to be executed on each of those additional nodes without affecting the existing distribution of the coded algorithm and the existing execution of the coded algorithm. 
     
     
         64 . The computer program product of  claim 55 , wherein each node is associated with a single instance. 
     
     
         65 . The computer program product of  claim 55 , wherein each node is assigned with a unique identifier that identifies the corresponding single instance. 
     
     
         66 . The computer program product of  claim 55 , wherein each instance is associated with a single copy of the coded algorithm and a single node. 
     
     
         67 . The computer program product of  claim 55 , comprising instructions for causing the processor to identify a root object class within each group and enable retrieving an entire instance of a group based on an object of the root object class contained in the instance. 
     
     
         68 . The computer program product of  claim 55 , comprising instructions to cause the processor to enable a user to save meta data of the grouping into a single file.

Join the waitlist — get patent alerts

Track US2017249194A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.