IP Library › Granted Patent US 12,625,689
Granted Patent B1
US 12,625,689 · App. 19/301,590 · Granted May 12, 2026

Software systems and methods for advanced output-affecting linear pathways

Inventor: Kevin D. Howard (Mesa, AZ)
G06F8/443
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,625,689
App. No.
19/301,590
Granted
May 12, 2026
Kind
B1
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.

Claims (56)

1 . 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.

2 . The method of claim 1 , further comprising automatically determining ranges of the one or more input variable attribute values needed to satisfy existing non-loop control conditional statements.

3 . The method of claim 1 , further comprising automatically determining ranges of the one or more input variable attribute values needed to satisfy existing synthesized non-loop control conditional statements.

4 . The method of claim 1 , further comprising automatically synthesizing false non-loop control conditional statements.

5 . The method of claim 1 , further comprising automatically using one or more pass-by-reference address values as variables for the A-OALP selection table.

6 . The method of claim 1 , further comprising automatically converting one or more indirect variables to one or more associated input variables for use with the selection of the at least one A-OALP.

7 . The method of claim 1 , further comprising automatically combining task-like parallelization with dynamic loop unrolling parallelization.

8 . The method of claim 1 , further comprising performing automatic runtime integration of one or more operator optimization goals and a number of the multiple separate processing elements used by multiple parallel instances of an A-OALP.

9 . The method of claim 1 , further comprising pre-loading one or more A-OALPs onto multiple threads across the multiple separate processing elements and associating multiple instances of an A-OALP with individual processing elements, thereby allowing for parallel A-OALP instance selection in a persistent thread and code management model.

10 . The method of claim 1 , further comprising automatically selecting:

one or more un-pooled threads;

one or more non-persistent threads;

a non-persistent thread pool with the one or more non-persistent threads;

a persistent thread pool with the one or more non-persistent threads; and/or

the persistent thread pool with one or more persistent threads.

11 . The method of claim 1 , further comprising extending a persistent thread and code management model to include processor socket usage.

12 . 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.

13 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically determine ranges of the one or more input variable attribute values needed to satisfy existing non-loop control conditional statements.

14 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically determine ranges of the one or more input variable attribute values needed to satisfy existing synthesized non-loop control conditional statements.

15 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically synthesize false non-loop control conditional statements.

16 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically use one or more pass-by-reference address values as variables for the A-OALP selection table.

17 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically convert one or more indirect variables to one or more associated input variables for use with the selection of the at least one A-OALP.

18 . The system of claim 12 , wherein the processor is further configured to execute the program code to: automatically combine task-like parallelization with dynamic loop unrolling parallelization.

19 . The system of claim 12 , wherein the processor is further configured to execute the program code to: perform automatic runtime integration of one or more operator optimization goals and a number of the multiple separate processing elements used by multiple parallel instances of an A-OALP.

20 . The system of claim 12 , wherein the processor is further configured to execute the program code to: pre-load one or more A-OALPs onto multiple threads across the multiple separate processing elements and associate multiple instances of an A-OALP with individual processing elements, thereby allowing for parallel A-OALP instance selection in a persistent thread and code management model.

21 . The system of claim 12 , wherein the processor is further configured to execute the program code to select:

one or more un-pooled threads;

one or more non-persistent threads;

a non-persistent thread pool with the one or more non-persistent threads;

a persistent thread pool with the one or more non-persistent threads; and/or

the persistent thread pool with one or more persistent threads.

22 . The system of claim 12 , wherein the processor is further configured to execute the program code to: extend a persistent thread and code management model to include processor socket usage.

Continuity (1)
Continuation 19171172 · Apr 4, 2025
References Cited (3)
US 11520560B2 · Howard · 2022 [cited by examiner]
US 20230409303A1 · Smith · 2023 [cited by examiner]
US 20240119109A1 · Howard · 2024 [cited by examiner]