Parallel Execution Manager Dynamic Thread and Task Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel processing techniques face challenges in efficiently managing thread counts and task sizes due to varying computational overheads, making it difficult to achieve optimal parallel computing benefits, especially in dynamic environments where tasks and resources change over time.

Innovation Solution

A system with a parallel execution manager that iteratively adjusts thread counts and task sizes based on real-time feedback from a response time monitor, using techniques like quadratic probing to optimize processing times, and includes a verifier to ensure ongoing optimality of these parameters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel processing is implemented to improve processing speed, then productivity increases, but computational overhead increases

Engineering Contradiction:
Improveprocessing speedVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the degree of parallelization and task granularity based on runtime conditions. The parallel execution manager monitors system state and modifies execution parameters on-the-fly, transitioning between different parallel processing configurations to optimize the balance between productivity and computational overhead.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes execution parameters such as thread count, task size, and parallelization degree adaptively. By adjusting these parameters based on feedback from the system environment, the system optimizes processing speed while minimizing computational overhead associated with task management and coordination.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If task granularity is reduced to improve load balancing, then productivity improves, but computational overhead increases

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidtask management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts task granularity based on runtime observations. When load balancing benefits are observed, the system increases parallelization by reducing task granularity. When overhead becomes excessive, it coarsens the granularity, creating an adaptive balance between load balancing efficiency and task management overhead.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If parallel execution plan is fixed beforehand, then device complexity is reduced, but adaptability to runtime changes deteriorates

Engineering Contradiction:
Improveexecution plan complexityVSAvoidruntime adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system employs dynamic parallel execution plans that are initially established but then adaptively modified during runtime. The parallel execution manager monitors system conditions and adjusts the execution plan when beneficial, providing both the simplicity of predefined plans and the flexibility of adaptive response to runtime changes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from runtime monitoring to adjust the parallel execution plan. The parallel execution manager observes system state and performance metrics, then modifies the execution plan accordingly, enabling the system to adapt to runtime changes while maintaining manageable complexity through structured feedback loops.

Inventive Principle:
Principle #23Feedback

4Productivity

If more processing threads are used to reduce execution time, then productivity increases, but computational overhead increases

Engineering Contradiction:
Improveexecution timeVSAvoidthread management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the number of processing threads based on runtime conditions and observed performance. Rather than using a fixed high thread count, the system scales thread utilization adaptively, increasing threads when they provide value and reducing them when overhead dominates, thus optimizing execution time while controlling thread management overhead.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8914802B2Feedback-driven tuning for efficient parallel execution
Publication Date: 2014.12.16 SAP SE
  • US8914802B2 patent drawing
  • US8914802B2 patent drawing
  • US8914802B2 patent drawing

AI summary

A parallel execution manager may determine a parallel execution platform configured to execute tasks in parallel using a plurality of available processing threads. The parallel execution manager may include a thread count manager configured to select, from the plurality of available processing threads and for a fixed task size, a selected thread count, and a task size manager configured to select, from a plurality of available task sizes and using the selected thread count, a selected task size. The parallel execution manager may further include an optimizer configured to execute an iterative loop in which the selected task size is used as an updated fixed task size to obtain an updated selected thread count, and the updated selected thread count is used to obtain an updated selected task size. Accordingly, a current thread count and current task size for executing the tasks in parallel may be determined.