IP Library › Granted Patent US 12,411,671
Granted Patent B1
US 12,411,671 · App. 19/171,172 · Granted Sep 9, 2025

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,411,671
App. No.
19/171,172
Granted
Sep 9, 2025
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 (44)

1. A method for optimization of software or one or more algorithms, comprising:

receiving the software or the one or more algorithms, and test data, 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 an A-OALP hardware controller to:

receive one or more input variable attribute values;

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 and certain value ranges;

select at least one A-OALP that corresponds to the pathway selection;

identify the selected at least one A-OALP for further execution;

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; and

determine a maximum number of parallel cores 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 cores of a server; and

limiting A-OALP cross-communication to multiple cores on the server and eliminating a need for A-OALP cross-communication between the multiple separate servers.

2. The method of claim 1 , further comprising determining a maximum number of parallel cores usable by the selected at least one A-OALP for a currently available number of cores or a user-indicated maximum number of cores.

3. The method of claim 1 , further comprising optimizing energy consumption or processing performance for executing the software or one or more algorithms using the selected at least one A-OALP.

4. The method of claim 3 , wherein at least one of cost, water use, and carbon footprint data is converted into either the energy consumption or the processing performance.

5. The method of claim 1 , further comprising generating a temporal profile for each of the one or more A-OALPs using the one or more input variable attribute values that vary processing time.

6. The method of claim 5 , further comprising generating an advanced time prediction curve fit for each A-OALP of the one or more A-OALPS using the temporal profile.

7. The method of claim 5 , further comprising generating an advanced speedup prediction curve fit for each A-OALP of the one or more A-OALPs using a scaled version of the temporal profile.

8. The method of claim 1 , further comprising generating a spatial profile for each of the one or more A-OALPs, using one or more variable attribute values that affect the memory allocation.

9. The method of claim 8 , further comprising generating an advanced space complexity curve fit for each A-OALP of the one or more A-OALPs using the spatial profile.

10. The method of claim 8 , further comprising generating an advanced freeup prediction curve fit for each A-OALP of the one or more A-OALPs using a scaled version of the spatial profile.

11. The method of claim 1 , further comprising automatically constructing and using one or more persistent thread pools with persistent A-OALPs to remove thread construction, thread destruction, thread pool construction, or thread pool destruction overhead.

12. The method of claim 11 , further comprising linking one or more particular physical processing cores to one or more particular processing threads.

13. The method of claim 1 , further comprising performing super-linear processing from A-OALP-based dynamic all-loop unrolling parallelization.

14. The method of claim 1 , further comprising performing dynamic loop unrolling on at least one of the one or more A-OALPs to determine multiple instances of the at least one of the one or more A-OALPs.

15. The method of claim 1 , further comprising increasing code performance by removing extraneous code for task-like parallelism.

16. The method of claim 1 , further comprising facilitating cross communication between multiple addressable hardware socket components.

17. The method of claim 16 , wherein each of the multiple addressable hardware socket components comprise multiple processing cores.

18. 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, and test data, 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 an A-OALP hardware controller to:

receive one or more input variable attribute values;

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 and certain value ranges;

select at least one A-OALP that corresponds to the pathway selection;

identify the selected at least one A-OALP for further execution;

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; and

determine a maximum number of parallel cores 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 cores of a server; and

limiting A-OALP cross-communication to multiple cores on the server and eliminating a need for A-OALP cross-communication between the multiple separate servers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2026
From: HOWARD, KEVIN D.
To: PATHWAY ANALYTICS, INC.
Reel/Frame 074230/0961 →
References Cited (47)
US 7133950B2 · Olukotun · 2006 [cited by applicant]
US 9851949B2 · Howard · 2017 [cited by applicant]
US 10496514B2 · Howard · 2019 [cited by applicant]
US 11194575B2 · Karve et al. · 2021 [cited by applicant]
US 11520560B2 · Howard · 2022 [cited by applicant]
US 11687328B2 · Smith et al. · 2023 [cited by applicant]
US 11789698B2 · Howard · 2023 [cited by applicant]
US 11861336B2 · Smith et al. · 2024 [cited by applicant]
US 12099446B2 · Howard · 2024 [cited by applicant]
US 12147781B2 · Howard · 2024 [cited by applicant]
US 20080082933A1 · Howard et al. · 2008 [cited by applicant]
US 20090055625A1 · Howard et al. · 2009 [cited by applicant]
US 20100049941A1 · Howard · 2010 [cited by applicant]
US 20100183028A1 · Howard et al. · 2010 [cited by applicant]
US 20100251259A1 · Howard · 2010 [cited by applicant]
US 20100325388A1 · Howard · 2010 [cited by applicant]
US 20120036399A1 · Howard · 2012 [cited by applicant]
US 20120066664A1 · Howard · 2012 [cited by applicant]
US 20120101929A1 · Howard · 2012 [cited by applicant]
US 20130254751A1 · Howard · 2013 [cited by applicant]
US 20130332903A1 · Howard · 2013 [cited by applicant]
US 20130332904A1 · Howard · 2013 [cited by applicant]
US 20130346807A1 · Howard · 2013 [cited by applicant]
US 20140125683A1 · Howard · 2014 [cited by applicant]
US 20140282412A1 · Howard et al. · 2014 [cited by applicant]
US 20140298286A1 · Howard · 2014 [cited by applicant]
US 20140304684A1 · Howard · 2014 [cited by applicant]
US 20140310684A1 · Howard · 2014 [cited by applicant]
US 20150025848A1 · Fukumoto · 2015 [cited by examiner]
US 20160085512A1 · Howard · 2016 [cited by applicant]
US 20160188299A1 · Howard · 2016 [cited by applicant]
US 20190114557A1 · Ashrafi · 2019 [cited by applicant]
US 20210019158A1 · Howard · 2021 [cited by applicant]
US 20210142143A1 · Howard · 2021 [cited by applicant]
US 20220400163A1 · Howard · 2022 [cited by applicant]
US 20230281543A1 · Howard · 2023 [cited by applicant]
US 20240119109A1 · Howard · 2024 [cited by applicant]
US 20240168758A1 · Howard et al. · 2024 [cited by applicant]
US 20250085940A1 · Smith et al. · 2025 [cited by applicant]
US 20250085941A1 · Smith et al. · 2025 [cited by applicant]
CN 103874998B · 2017 [cited by applicant]
WO 2003060748A2 · 2003 [cited by applicant]
WO 2005111843A2 · 2005 [cited by applicant]
WO 2012021523A2 · 2012 [cited by applicant]
WO 2012024435A2 · 2012 [cited by applicant]
WO 2013036824A2 · 2013 [cited by applicant]
WO 2013184952A1 · 2013 [cited by applicant]