Computer processing and outcome prediction systems and methods
View Patent ↗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.
1. 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.
2. The method of claim 1 , wherein the required cross-communication model is a degenerative case of an all-to-all cross-communication.
3. The method of claim 1 , wherein the number of loop iterations comprise a standard loop.
4. The method of claim 1 , wherein the number of loop iterations comprise recursion.
5. 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.
6. The method of claim 5 , wherein the one or more communication types comprise one or more single dimensional data exchanges.
7. The method of claim 6 , wherein the one or more single dimensional data exchanges comprise one or more left exchanges.
8. The method of claim 6 , wherein the one or more single dimensional data exchanges comprise one or more right exchanges.
9. The method of claim 6 , wherein the one or more single dimensional data exchanges comprise one or more left-right exchanges.
10. The method of claim 5 , wherein the one or more communication types comprise one or more multi-dimensional data exchanges.
11. The method of claim 10 , wherein the one or more multi-dimensional data exchanges comprise one or more checker-board exchanges.
12. The method of claim 10 , wherein the one or more multi-dimensional data exchanges comprise one or more next-n-neighbor exchanges.
13. The method of claim 10 , wherein the one or more multi-dimensional data exchanges comprise one or more transpose exchanges.
14. The method of claim 10 , wherein the one or more multi-dimensional data exchanges comprise one or more scatter or gather exchanges.
15. 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.
16. The system of claim 15 , wherein the given cross-communication model is a degenerative case of an all-to-all cross-communication.
17. The system of claim 15 , wherein the number of loop iterations comprise a standard loop or recursion.