Parallel computing system, method and architecture
First Claim
1. A method for parallelizing an application, comprising the steps of:
- providing an adapter with a plurality of processing algorithm type functionalities;
identifying an algorithm within the application to adapt such that the adapter will parallelize the execution of such algorithm;
associating the adapter with the algorithm within the application, wherein the association between the adapter and the algorithm is based on correlation between the algorithm and one of the plurality of processing algorithm type functionalities;
adapting the application to conform to a plurality of logical components, at least one of the plurality of logical components being encapsulated by the adapter and at least one of the plurality of logical components including non-parallelized or non-adapted code;
creating multiple instances of each of the plurality of logical components;
distributing the multiple instances of each of the plurality of logical components for parallel execution across a plurality of discreet systems or a plurality of processors in a single system; and
monitoring and balancing the parallel execution;
wherein the above steps are executed at run-time.
7 Assignments
0 Petitions
Accused Products
Abstract
A parallel or computing system and method make use of a plurality of adapters each affording a specific type of processing algorithm. At each point in an application, an adapter is identified, to parallelize that portion of the application. The process involves associating an appropriate adapter with the application portion, parsing the application portion to define tasks that may be distributed over the available computers. Combined with the parallelized program is a software server that is designed to cooperate with the adapters to control and supervise distributed processing functions. Such functions include mapping, load balancing, and error detection and correction. Also included are functions that cause the results of the computing to be coordinated in real-time and returned appropriately, according to the application. In addition to the parallelized program and server, an application created by the present invention is provided with the functionality of virtual middleware, which interfaces with and controls existing forms of middleware.
-
Citations
10 Claims
-
1. A method for parallelizing an application, comprising the steps of:
-
providing an adapter with a plurality of processing algorithm type functionalities; identifying an algorithm within the application to adapt such that the adapter will parallelize the execution of such algorithm; associating the adapter with the algorithm within the application, wherein the association between the adapter and the algorithm is based on correlation between the algorithm and one of the plurality of processing algorithm type functionalities; adapting the application to conform to a plurality of logical components, at least one of the plurality of logical components being encapsulated by the adapter and at least one of the plurality of logical components including non-parallelized or non-adapted code; creating multiple instances of each of the plurality of logical components; distributing the multiple instances of each of the plurality of logical components for parallel execution across a plurality of discreet systems or a plurality of processors in a single system; and monitoring and balancing the parallel execution; wherein the above steps are executed at run-time. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for running an application, comprising the steps of:
-
identifying a portion of the application for parallelization; associating an adapter with the identified portion, wherein the adapter is configured to provide a plurality of processing algorithm type functionalities; creating a master including the adapter and remainder portions of the application not identified for parallelization; using the master that operates in a master mode to instantiate a plurality of stateless slaves for parallel execution, each stateless slave including a clone of the master; reporting to the master progress of the parallel execution with respect to the plurality of stateless slaves, the progress including application progress information with respect to the clones; and directing the master to distribute adaptive commands to the plurality of stateless slaves to adjust the parallel execution based on the reported progress; wherein the above steps are executed at run-time. - View Dependent Claims (7, 8, 9, 10)
-
Specification