Software systems and methods for advanced output-affecting linear pathways
OwnerKevin D. Howardinventor
Life of this patent
Estimating the term…
Abstract
Unlike conventional or otherwise known decomposition methods like standard functional decomposition, time-affecting linear pathway (TALP) decomposition, or output-affecting linear pathways (OALPs) from the decomposition of TALPs, advanced output-affecting linear pathway (A-OALP) decomposition from algorithms separate the output variables of each execution pathway such that there is only one output variable per A-OALP, converting an algorithm into a set of process groups. A-OALPs extend parallelization by combining task-like parallelism with dynamic loop parallelism. The lightweight nature of A-OALPs allows for persistent thread and code management.
Claims22
A method for optimization of software or one or more algorithms, comprising:
- receiving the software or the one or more algorithms, from an operator;
- decomposing the software or the one or more algorithms into one or more executable and analyzable advanced output-affecting linear pathways (A-OALPs), wherein each of the one or more A-OALPs includes runtime information generation for one or more instances;
- executing the one or more A-OALPs;
- receiving one or more input variable attribute values in a source values table;
- comparing the one or more input variable attribute values that correspond to a pathway selection entry in an A-OALP selection table, wherein the A-OALP selection table uses the one or more input variable attribute values;
- selecting at least one A-OALP that corresponds to the pathway selection;
- determining which of the one or more input variable attribute values vary a processing time of the selected at least one A-OALP;
- determining which of the one or more input variable attribute values vary memory allocation of the selected at least one A-OALP;
- determining a maximum number of processing elements usable by the selected at least one A-OALP for a current one or more input variable attribute values;
- executing in parallel multiple A-OALPs on multiple separate servers while concurrently executing in parallel multiple instances of each of the multiple A-OALPs on multiple separate processing elements of a server;
- and
- limiting A-OALP cross-communication to the multiple separate processing elements on the server and eliminating a need for the A-OALP cross-communication between the multiple separate servers.
A system for optimization of software or one or more algorithms, comprising:
- a memory;
- and
- a processor operatively coupled with the memory, wherein the processor is configured to execute a program code to:
- receive the software or the one or more algorithms, from an operator;
- decompose the software or the one or more algorithms into one or more executable and analyzable advanced output-affecting linear pathways (A-OALPs), wherein each of the one or more A-OALPs includes runtime information generation for one or more instances;
- execute the one or more A-OALPs;
- receive one or more input variable attribute values in a source values table;
- compare the one or more input variable attribute values that correspond to a pathway selection entry in an A-OALP selection table, wherein the A-OALP selection table uses the one or more input variable attribute values;
- select at least one A-OALP that corresponds to the pathway selection;
- determine which of the one or more input variable attribute values vary a processing time of the selected at least one A-OALP;
- determine which of the one or more input variable attribute values vary memory allocation of the selected at least one A-OALP;
- determine a maximum number of processing elements usable by the selected at least one A-OALP for a current one or more input variable attribute values;
- execute in parallel multiple A-OALPs on multiple separate servers while concurrently executing in parallel multiple instances of each of the multiple A-OALPs on multiple separate processing elements of a server;
- and
- limit A-OALP cross-communication to the multiple separate processing elements on the server and eliminating a need for the A-OALP cross-communication between the multiple separate servers.
Dependencies are inferred from the claim text.