Parallel computing system, method and architecture
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.
Claims
exact text as granted — not AI-modified1 . A computer program on a computer readable medium for parallelizing an application, the computer program comprising:
a code segment for providing an adapter with a plurality of processing functions; a code segment for associating the adapter with a function within an application, wherein the association between the adapter and the associated function is based on correlation between the associated function and one of the plurality of processing functions; a code segment for 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; a code segment for creating multiple instances of each of the plurality of logical components; a code segment for 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, a code segment for monitoring and balancing the parallel execution.
2 . The computer program of claim 1 further comprising a code segment for identifying the function within the application to adapt such that the adapter will parallelize the execution of such function.
3 . The computer program of claim 1 wherein each code segment is executed on at least one processor during run-time.
4 . The computer program of claim 1 further comprising:
a code segment for using one of the multiple instances with respect to one of the plurality of logical components as a master and the remaining multiple instances as slaves; a code segment using the master to communicate with the slaves in order to retrieve execution information from the slaves, the execution information including information specific to application progress; and, a code segment for using the master to provide adaptive commands to the slaves based on the execution information in order to optimize execution performance of the slaves.
5 . The computer program of claim 1 wherein a software engine is included in at least one of the plurality of logical components to support the adapter, wherein the software engine is configured to cooperate with the associated adapter to control and supervise distributed processing functions and further wherein computational and execution environment information is included in at least one of the plurality of logical components.
6 . The computer program of claim 5 , wherein the distributed processing functions include at least one of data mapping, serialization, data and range distribution, and stall and error detection and correction.
7 . The computer program of claim 5 , wherein the distributed processing functions coordinate results of the parallel execution with respect to the distributed multiple instances corresponding to the plurality of logical components in real-time and return said results.
8 . A computer program for running an application, the computer program comprising:
a code segment for associating an adapter with a portion of an application which has been identified for parallelization, wherein the adapter is configured to provide a plurality of processing algorithm type functionalities; a code segment for creating a master including the adapter and remainder code portions of the application not identified for parallelization; a code segment for 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; and, a code segment for directing the master to distribute adaptive commands to the plurality of stateless slaves to adjust the parallel execution based on the progress of the parallel execution.
9 . The computer program of claim 8 further comprising a code segment for identifying a code portion of the application for parallelization.
10 . The computer program of claim 8 further comprising a code segment for reporting the progress of the parallel execution with respect to the plurality of stateless slaves to the master, the progress including progress information with respect to the clones.
11 . The computer program of claim 8 wherein the adaptive commands include data and range information.
12 . The computer program of claim 11 further comprising:
a code segment for monitoring the progress of the parallel execution with respect to the plurality of stateless slaves after the adaptive commands have been received by the plurality of stateless slaves; a code segment for adjusting and re-distributing the adaptive commands including the data and range information to the plurality of stateless slaves based on the monitored progress; and, a code segment for committing the adaptive commands to an optimal level for the parallel execution with respect to the plurality of stateless slaves once an optimal performance level has been reached.
13 . The computer program of claim 8 wherein each stateless slave further includes a software engine configured to cooperate with the clone of the adapter to control and supervise distributed processing functions; and
wherein each stateless slave further includes computational and execution environment information.
14 . The computer program of claim 8 further comprising:
a code segment for distributing the plurality of stateless slaves for parallel execution across a plurality of discreet systems or a plurality of processors in a single system.
15 . The computer program of claim 8 wherein each code segment is executed on at least one processor during run-time.
16 . A computer program on a computer readable medium for parallelizing an application, the computer program comprising:
a code segment for providing an adapter with a plurality of processing algorithm type functionalities; a code segment for identifying an algorithm within the application to adapt such that the adapter will parallelize the execution of such algorithm; a code segment for 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; a code segment for 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; a code segment for creating multiple instances of each of the plurality of logical components; a code segment for 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, a code segment for monitoring and balancing the parallel execution.
17 . The computer program of claim 16 further comprising a code segment for identifying a function within the application to adapt such that the adapter will parallelize the execution of such function.
18 . The computer program of claim 16 further comprising:
a code segment for using one of the multiple instances with respect to one of the plurality of logical components as a master and the remaining multiple instances as slaves; a code segment using the master to communicate with the slaves in order to retrieve execution information from the slaves, the execution information including information specific to application progress; and, a code segment for using the master to provide adaptive commands to the slaves based on the execution information in order to optimize execution performance of the slaves.
19 . The computer program of claim 16 wherein a software engine is included in at least one of the plurality of logical components to support the adapter, wherein the software engine is configured to cooperate with the associated adapter to control and supervise distributed processing functions and further wherein computational and execution environment information is included in at least one of the plurality of logical components.
20 . The computer program of claim 19 , wherein the distributed processing functions coordinate results of the parallel execution with respect to the distributed multiple instances corresponding to the plurality of logical components in real-time and return said results.Join the waitlist — get patent alerts
Track US2007271547A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.