Transactional API Function Scheduler for Dependency-Based Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transactional API protocols face performance bottlenecks due to high latency and network resource usage caused by sequential execution of function calls over high-latency interconnects, where intermediate responses incur transport delays and bandwidth penalties for unnecessary output variable arguments.

Innovation Solution

Implementing a function scheduler that reorders and serializes function execution based on data dependencies, using a memory manager to manage argument data storage and infer concurrency rules, allowing functions with valid dependencies to execute concurrently and minimizing data returned to the application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If function calls are executed sequentially over high-latency interconnects, then data dependency correctness is maintained, but latency and network resource usage increase

Engineering Contradiction:
Improvedata dependency correctnessVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of function call dependencies before execution, identifying which functions can be executed concurrently. The scheduler pre-processes the function call sequence, determines execution ordering based on dependency graphs, and prepares concurrent execution plans ahead of time, allowing functions with no dependencies to be executed in parallel while maintaining correctness for dependent functions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The execution model transitions from static sequential execution to dynamic concurrent execution. The scheduler dynamically adjusts the execution order and timing of function calls based on runtime dependency analysis, allowing the system to adaptively optimize performance while maintaining data dependency correctness through runtime scheduling decisions.

Inventive Principle:
Principle #15Dynamics

2Reliability

If all function calls are executed in prescribed sequence, then data dependency correctness is ensured, but productivity decreases

Engineering Contradiction:
Improvedata dependency correctnessVSAvoidexecution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the function call execution into independent concurrent tasks by analyzing dependency relationships. Functions that do not depend on each other are segmented into separate execution threads or processes, allowing parallel execution. The dependency graph is segmented into independent execution units that can be processed concurrently, increasing overall throughput while maintaining correctness for dependent function pairs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The scheduler ensures continuous utilization of compute resources by continuously issuing ready-to-execute functions to available executors. Instead of idle waiting periods between sequential function executions, the system maintains continuous useful action by overlapping the execution of multiple independent functions, keeping processors busy and maximizing productivity.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of information

If intermediate responses are returned for each function call, then application visibility is improved, but network bandwidth is consumed unnecessarily

Engineering Contradiction:
Improveapplication visibilityVSAvoidnetwork bandwidth
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The system extracts only the essential final results from concurrent function executions and returns them to the application, rather than returning intermediate responses for every function call. The scheduler identifies which function results are actually needed by the application and extracts only those for transmission, eliminating unnecessary network traffic while maintaining application visibility into required outcomes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary dependency analysis to determine which function results are actually needed by the application before executing functions. By analyzing the dependency graph and application requirements in advance, the system identifies minimal result sets that maintain application visibility, avoiding unnecessary network transmissions of intermediate values that the application does not require.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20230214284A1Scheduling function calls of a transactional application programming interface (API) protocol based on argument dependencies
Publication Date: 2023.07.06 INTEL CORP
  • US20230214284A1 patent drawing
  • US20230214284A1 patent drawing
  • US20230214284A1 patent drawing

AI summary

Embodiments described herein are generally directed to improving performance of a transactional API protocol by scheduling function calls based on data dependencies. In an example, a function associated with the transactional API is received that is to be carried out by an executer on behalf of an application. It is determined whether the function has a dependency on a value that is invalid. If so, execution of the function is delayed by causing a function ID of the function to be queued for a global memory reference associated with the value. After the value becomes valid, the function is caused to be executed by the executer. When the first function is determined to have no such dependency, the function may be immediately scheduled for execution by the executer without delay.