Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
First Claim
1. A parallel processing system for performing an application function by a plurality of processing units contained within a common network, the parallel processing system comprising:
- a plurality of slave units connected to the common network, each slave unit adapted to process a given amount of data specified by the application function at a particular processing power, each slave unit providing an indication of availability, present status, processing power, and resources available;
at least one master unit connected to said slave units and said common network, said master unit initiating an application function which is to be processed by said slave units, said master unit providing an indication of processing power and resources available;
pro-active polling means for polling said slave units and master unit to determine the processing power of each slave unit and the master unit, the resources available to each slave unit and said master unit, and the availability of each slave unit;
receiving means for receiving from each slave unit and master unit the processing power and resources available to each slave unit and the master unit;
selecting means for selecting one or more slave units to be engaged in processing said application function, said selection based upon the received processing power and resources available to each slave unit and the master unit and the availability of each slave unit;
dividing means for dividing said application function in a manner defined by the application function into a plurality of specified portions of data, each specified portion of data being assigned and communicated to a different specific slave unit for processing; and
calculating means for performing predetermined calculations defined by the application function on each said specified portion of data by each slave unit;
each slave unit including means for being accessible for performing local processing, the local processing having priority over and discontinuing the processing of the specified portion of data assigned to the slave unit, the master unit including means for having the option to select an alternate unit for processing the specified portion of data assigned to a slave unit performing local processing, the alternate unit being selected from the master unit and available slave units.
1 Assignment
0 Petitions
Accused Products
Abstract
A parallel processing system performs an application function by a plurality of processing unit contained within a single network. The parallel processing system includes at least one slave unit connected to a common network and capable of processing a specified amount of data at a particular processing speed. At least one master unit, which may include a local slave unit, is connected to the common network and initiates an application function to be processed by the slave units. The slave units are polled to determine the processing power of each slave unit, the resources available to each slave unit and the availability of each slave unit. One or more slave units are engaged in processing the application function. If a plurality of slave units are selected, the application function is divided into a plurality of portions of data and each portion is assigned and communicated to a specific slave unit for processing. Predetermined calculations are performed on each portion of data by each slave unit.
243 Citations
26 Claims
-
1. A parallel processing system for performing an application function by a plurality of processing units contained within a common network, the parallel processing system comprising:
-
a plurality of slave units connected to the common network, each slave unit adapted to process a given amount of data specified by the application function at a particular processing power, each slave unit providing an indication of availability, present status, processing power, and resources available; at least one master unit connected to said slave units and said common network, said master unit initiating an application function which is to be processed by said slave units, said master unit providing an indication of processing power and resources available; pro-active polling means for polling said slave units and master unit to determine the processing power of each slave unit and the master unit, the resources available to each slave unit and said master unit, and the availability of each slave unit; receiving means for receiving from each slave unit and master unit the processing power and resources available to each slave unit and the master unit; selecting means for selecting one or more slave units to be engaged in processing said application function, said selection based upon the received processing power and resources available to each slave unit and the master unit and the availability of each slave unit; dividing means for dividing said application function in a manner defined by the application function into a plurality of specified portions of data, each specified portion of data being assigned and communicated to a different specific slave unit for processing; and calculating means for performing predetermined calculations defined by the application function on each said specified portion of data by each slave unit; each slave unit including means for being accessible for performing local processing, the local processing having priority over and discontinuing the processing of the specified portion of data assigned to the slave unit, the master unit including means for having the option to select an alternate unit for processing the specified portion of data assigned to a slave unit performing local processing, the alternate unit being selected from the master unit and available slave units. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for performing parallel processing of an application function by a plurality of processing units contained within a single network, said processing units including a plurality of slave units, each slave unit adapted to process a specified amount of data defined by the application function at a particular processing power, and at least one master unit contained within the network, said master unit initiating the application function which is to be processed and including a local slave unit, each slave unit being accessible for performing local processing, the local processing having priority over and discontinuing the processing of the specified amount of data, said method comprising the steps of:
-
a) estimating at each slave unit the processing power of the slave unit; b) polling each slave unit pro-actively to determine the processing power and availability of each slave unit; c) receiving the processing power and availability of each slave unit; d) selecting a number of slave units to be engaged in processing said application function, said selection based upon the received processing power and availability of each slave unit; e) dividing said application function in a manner defined by the application function into specified portions of data; f) assigning each specified portion of data to a different specific selected slave unit; g) performing at each specific selected slave unit predetermined calculations defined by said application function on each said specified portion of data and producing calculated specified portions of data; and h) optionally selecting an alternate unit for processing the specified portion of data assigned to a slave unit performing local processing, the alternate unit being selected from the master unit and available slave units. - View Dependent Claims (14, 15, 16)
-
-
17. A parallel processing system for performing an application function by a plurality of processing units contained within a common network, the parallel processing means comprising:
-
a plurality of remote slave units, each remote slave unit being interconnected to other remote slave units by a common network and adapted to process a specified amount of data defined by the application function at a particular processing power, said remote slave units providing indications of availability, processing power, and resources available; a master unit connected to said remote slave units and said common network, said master unit initiating an application function which is to be processed by said remote slave units, said master unit providing an indication of processing power and resources available; pro-active retrieving means for retrieving from said slave units and said master unit the processing power of each remote slave unit and the master unit, the resources available to each remote slave unit and the master unit, and the availability of each remote slave unit; selecting means for selecting a number of remote slave units to be engaged in processing said application function, said selection based upon the processing power, the resources available, and the availability retrieved from each remote slave unit; and dividing means for dividing said application function in a manner defined by said application function into specified portions of data, each specified portion of data being assigned to a different specific remote slave unit for processing; each slave unit including means for being accessible for performing local processing, the local processing having priority over and discontinuing the processing of the specified portion of data assigned to the slave unit, the master unit including means for having the option to select an alternate unit for processing the specified portion of data assigned to a slave unit performing local processing, the alternate unit being selected from the master unit and available slave units. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification