US20030195938A1

Parallel processing systems and method

Claim Score by NHIP

Read claim 62, the broadest

Abstract

Methods and systems for parallel computation of an algorithm using a plurality of nodes configured as a Howard Cascade. A home node of a Howard Cascade receives a request from a host system to compute an algorithm identified in the request. The request is distributed to processing nodes of the Howard Cascade in a time sequence order in a manner to minimize the time to so expand the Howard Cascade. The participating nodes then perform the designated portion of the algorithm in parallel. Partial results from each node are agglomerated upstream to higher nodes of the structure and then returned to the host system. The nodes each include a library of stored algorithms accompanied by data template information defining partitioning of the data used in the algorithm among the number of participating nodes.

US20030195938A1, drawing sheet 1
Sheet 1 of 60

Term

Term ended

Projected expiry passed 23 May 2026, 0.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

104 claims: 15 independent, 89 dependent

  1. 1
    A parallel processing system, comprising:a plurality of processing nodes arranged in a Howard Cascade;a first home node, responsive to an algorithm processing request, for (a) broadcasting the algorithm processing request to the plurality of processing nodes in a time and sequence order within the Howard Cascade and for (b) broadcasting a dataset of an algorithm to at least top level processing nodes of the Howard Cascade simultaneously;contiguous processing nodes within the plurality of processing nodes being operable to process contiguous parts of the dataset and to agglomerate results contiguously to the first home node in reverse to the time and sequence order.
  2. 39
    A method for processing a context-based algorithm for enhanced parallel processing within a parallel processing architecture, comprising the steps of:A. determining whether work to be performed by the algorithm is intrinsic to the algorithm or to another algorithm;B. determining whether the algorithm requires data movement;and C. parallelizing the algorithm based upon whether the work is intrinsic to the algorithm and whether the algorithm requires data movement.
  3. 44
    A method for parallel processing an algorithm for use within a Howard Cascade, comprising the steps of:extract input and output data descriptions for the algorithm;acquire data for the algorithm;process the algorithm on nodes of the Howard Cascade;agglomerate node results through the Howard Cascade;and return results to a remote host requesting parallel processing of the algorithm.
  4. 45
    A method for parallel computation comprising:transmitting an algorithm computation request and associated data from a requesting host to a home node of a computing system wherein the request includes a requested number (N) of processing nodes to be applied to computation of the request;distributing the computation request from the home node to a plurality of processing nodes wherein the plurality of processing nodes includes N processing nodes coupled to the home node and wherein the distribution is in a hierarchical ordering;broadcasting the associated data from the home node to all of the plurality of processing nodes;agglomerating a final computation result from partial computation results received from the plurality of processing nodes wherein the agglomeration is performed in the reverse order of the hierarchical ordering;and returning the final computation result from the home node to the requesting host.
  5. 52
    A method of distributing an algorithm computation request comprising:receiving within a home node of a distributed parallel computing system a computation request and associated data from a requesting host system;determining a number of processing nodes (N) of the parallel computing system to be applied to performing the computation request;partitioning the associated data to identify a portion of the data associated with each processing node;and recursively communicating the computing request and information regarding the partitioned data from the home node to each of the N processing nodes over a plurality of communication channels during a sequence of discrete time intervals, wherein each communication channel is used for communication by at most one processing node or home node during any one time interval, and wherein the number of discrete time intervals to recursively communicate to all N processing nodes is minimized.
  6. 59
    A method for distributing an algorithm computation request for a complex algorithm in a parallel processing system comprising:receiving from a requesting host a computation request for a complex algorithm wherein the complex algorithm includes a plurality of computation sections;expanding the computation request to a plurality of nodes configured as a Howard Cascade;computing within the Howard Cascade a first computation section to generate a partial result;returning the partial result to a control device;receiving further direction from the control device;computing within the Howard Cascade a next computation section to generate a partial result in response to receipt of further direction to compute the next computation section;repeating the steps of returning, receiving and computing the next computation section in response to receipt of further direction to compute the next computation section;and returning the partial result to the requesting host as a final result in response to further direction to complete processing of the complex algorithm.
  7. 62
    Broadest claimClaim Score 85, broad(NHIP)A method for parallelizing an algorithm comprising:receiving a new algorithm description;automatically annotating the new algorithm description with template information relating to data used by the new algorithm and relating to data generated by the new algorithm;and storing the annotated new algorithm in each processing node of a Howard Cascade parallel processing system.
  8. 65
    A computer readable storage medium tangibly embodying program instructions for a method for parallel computation, the method comprising:transmitting an algorithm computation request and associated data from a requesting host to a home node of a computing system wherein the request includes a requested number (N) of processing nodes to be applied to computation of the request;distributing the computation request from the home node to a plurality of processing nodes wherein the plurality of processing nodes includes N processing nodes coupled to the home node and wherein the distribution is in a hierarchical ordering;broadcasting the associated data from the home node to all of the plurality of processing nodes;agglomerating a final computation result from partial computation results received from the plurality of processing nodes wherein the agglomeration is performed in the reverse order of the hierarchical ordering;and returning the final computation result from the home node to the requesting host.
  9. 72
    A computer readable storage medium tangibly embodying program instructions for a method of distributing an algorithm computation request, the method comprising:receiving within a home node of a distributed parallel computing system a computation request and associated data from a requesting host system;determining a number of processing nodes (N) of the parallel computing system to be applied to performing the computation request;partitioning the associated data to identify a portion of the data associated with each processing node;and recursively communicating the computing request and information regarding the partitioned data from the home node to each of the N processing nodes over a plurality of communication channels during a sequence of discrete time intervals, wherein each communication channel is used for communication by at most one processing node or home node during any one time interval, and wherein the number of discrete time intervals to recursively communicate to all N processing nodes is minimized.
  10. 79
    A computer readable storage medium tangibly embodying program instructions for a method for distributing an algorithm computation request for a complex algorithm in a parallel processing system, the method comprising:receiving from a requesting host a computation request for a complex algorithm wherein the complex algorithm includes a plurality of computation sections;expanding the computation request to a plurality of nodes configured as a Howard Cascade;computing within the Howard Cascade a first computation section to generate a partial result;returning the partial result to a control device;receiving further direction from the control device;computing within the Howard Cascade a next computation section to generate a partial result in response to receipt of further direction to compute the next computation section;repeating the method steps of returning, receiving and computing the next computation section in response to receipt of further direction to compute the next computation section;and returning the partial result to the requesting host as a final result in response to further direction to complete processing of the complex algorithm.
  11. 82
    A computer readable storage medium tangibly embodying program instructions for a method for parallelizing an algorithm, the method comprising:receiving a new algorithm description;automatically annotating the new algorithm description with template information relating to data used by the new algorithm and relating to data generated by the new algorithm;and storing the annotated new algorithm in each processing node of a Howard Cascade parallel processing system.
  12. 85
    A system for parallel computation comprising:means for transmitting an algorithm computation request and associated data from a requesting host to a home node of a computing system wherein the request includes a requested number (N) of processing nodes to be applied to computation of the request;means for distributing the computation request from the home node to a plurality of processing nodes wherein the plurality of processing nodes includes N processing nodes coupled to the home node and wherein the distribution is in a hierarchical ordering;means for broadcasting the associated data from the home node to all of the plurality of processing nodes;means for agglomerating a final computation result from partial computation results received from the plurality of processing nodes wherein the agglomeration is performed in the reverse order of the hierarchical ordering;and means for returning the final computation result from the home node to the requesting host.
  13. 92
    A system of distributing an algorithm computation request comprising:means for receiving within a home node of a distributed parallel computing system a computation request and associated data from a requesting host system;means for determining a number of processing nodes (N) of the parallel computing system to be applied to performing the computation request;means for partitioning the associated data to identify a portion of the data associated with each processing node;and means for recursively communicating the computing request and information regarding the partitioned data from the home node to each of the N processing nodes over a plurality of communication channels during a sequence of discrete time intervals, wherein each communication channel is used for communication by at most one processing node or home node during any one time interval, and wherein the number of discrete time intervals to recursively communicate to all N processing nodes is minimized.
  14. 99
    A system for distributing an algorithm computation request for a complex algorithm in a parallel processing system comprising:means for receiving from a requesting host a computation request for a complex algorithm wherein the complex algorithm includes a plurality of computation sections;means for expanding the computation request to a plurality of nodes configured as a Howard Cascade;means for computing within the Howard Cascade a first computation section to generate a partial result;means for returning the partial result to a control device;means for receiving further direction from the control device;means for computing within the Howard Cascade a next computation section to generate a partial result in response to receipt of further direction to compute the next computation section;means for repeating the steps of returning, receiving and computing the next computation section in response to receipt of further direction to compute the next computation section;and means for returning the partial result to the requesting host as a final result in response to further direction to complete processing of the complex algorithm.
  15. 102
    A system for parallelizing an algorithm comprising:means for receiving a new algorithm description;means for automatically annotating the new algorithm description with template information relating to data used by the new algorithm and relating to data generated by the new algorithm;and means for storing the annotated new algorithm in each processing node of a Howard Cascade parallel processing system.
Independent claims15