Computer processing and outcome prediction systems and methods
OwnerKevin D. Howardinventor
Life of this patent
Estimating the term…
Abstract
Computer processing and outcome prediction systems and methods used to generate algorithm time prediction polynomials, inverse algorithm time prediction polynomials, determine race conditions, determine when a non-linear algorithm can be treated as if it were linear, as well as automatically generate parallel and quantum solutions from classical software or from the relationship between monotonic attribute values.
Claims17
A method of determining non-linear speedup with overhead of one or more Time-Affecting Linear Pathways (TALPs) executing on multiple processing elements (PEs), comprising:
- calculating a scaled processing time of the one or more TALPs given associated individual input variable attributes that affect a number of loop iterations of at least one looping structure of an associated TALP and evenly dividing input variable attribute values that affect loop iterations by a number of PEs, n;
- converting the scaled processing time of the one or more TALPs into one or more scaled time complexity functions, which is equivalent to speedup;
- separating out a static processing time generated at least by executing and timing one or more static loops;
- defining a maximum number of possible PEs n for a given input dataset as scaled input variable attribute values that affect the number of loop iterations for the associated TALP;
- finding a maximum speedup of n using a minimum detected processing time that corresponds to the maximum number of possible PEs n and a minimum number of possible loop iterations for a TALP;
- defining a cross-communication overhead as an un-scaled time complexity function for a cross-communication time given a required cross-communication model and a number of PEs n used;
- defining a non-cross-communication overhead as a time cost required to set up parallel software instances without regard for cross-communication overhead;
- and
- summing together a plurality of scaled overhead processing functions and subtracting scaled summed overhead processing time functions from a same TALP associated speedup function.
A method of determining communication between processing elements (PEs) of Time-Affecting Linear Pathways (TALPs) sharing data, comprising:
- decomposing input datasets such that only one or more required portions of the input datasets are received by one or more target PEs;
- scattering input dataset values to the one or more target PEs by sending one or more TALPs;
- gathering output dataset values by receiving the one or more TALPs;
- separating out a static processing time generated at least by executing and timing one or more static loops;
- determining a cross-communication pattern to use by tracing data movements and tracing memory cell access in arrays and matrices such that the traced data movements and patterns of the traced memory cell access is discernable per the one or more TALPs;
- storing the traced data movements and the patterns of the traced memory cell access for future one or more TALPs such that the traced data movements need not occur more than once;
- and
- determining one or more communication types from the traced data movements and the patterns of the traced memory cell access.
A system of determining non-linear speedup with overhead of one or more Time-Affecting Linear Pathways (TALPs) executing on multiple processing elements (PEs), comprising:
- a memory;
- and
- a processor operatively coupled with the memory, wherein the processor is configured to execute program code to:
- calculate a scaled processing time of the one or more TALPs given associated individual input variable attributes that affect a number of loop iterations of at least one looping structure of an associated TALP and evenly dividing input variable attribute values that affect loop iterations by a number of PEs, n;
- convert the scaled processing time of the one or more TALPs into one or more scaled time complexity functions, which is equivalent to speedup;
- separate out a static processing time generated at least by executing and timing one or more static loops;
- define a maximum number of possible PEs n for a given input dataset as scaled input variable attribute values that affect the number of loop iterations for the associated TALP;
- find a maximum speedup of n using a minimum detected processing time that corresponds to the maximum number of possible PEs n and a minimum number of possible loop iterations for a TALP;
- define a cross-communication overhead as an un-scaled time complexity function for a cross-communication time given a required cross-communication model and a number of PEs n used;
- define a non-cross-communication overhead as a time cost required to set up parallel software instances without regard for cross-communication overhead;
- and
- sum together a plurality of scaled overhead processing functions and subtracting scaled summed overhead processing time functions from a same TALP associated speedup function.
Dependencies are inferred from the claim text.