Parallel Computing Task Priority Queue for Bottleneck Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel computing systems, bottlenecks often occur when CPUs need to wait for results from other CPUs, leading to inefficiencies and reduced speed gains due to communication delays and software design inefficiencies, particularly in simulations where tasks are inter-dependent and require synchronization.

Innovation Solution

A parallel computing method that employs a task priority queue to rank tasks based on their probability of being needed and time limits, allowing tasks to be executed on idle CPUs or preempting lower-priority tasks on busy CPUs, with completed results stored in a cache for retrieval by the main process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If tasks are executed in parallel on multiple CPUs, then execution speed is improved, but bottlenecks occur when the main process must wait for task results

Engineering Contradiction:
Improveexecution speedVSAvoidwaiting time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system executes tasks in advance of when their results are actually needed by the main process. A task scheduler identifies potential tasks that may be required and executes them proactively on worker CPUs before the main process reaches the decision node that would require them, thereby eliminating waiting time while maintaining parallel execution speed

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The computation is divided into independent tasks that can be executed separately on different CPUs. The task scheduler segments the overall computation into discrete units that can be planned, executed, and cached independently, allowing the main process to continue without blocking while worker CPUs execute task results

Inventive Principle:
Principle #1Segmentation

2Reliability

If the main process waits for task results from parallel CPUs, then correctness is ensured, but productivity decreases due to CPU locking

Engineering Contradiction:
ImprovecorrectnessVSAvoidproductivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Tasks are executed in advance and their results are cached before the main process needs them. This preliminary execution ensures that when the main process reaches a decision node, the required task results are already available in the cache, maintaining correctness while eliminating the need for the main process to lock and wait

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A task scheduler and result cache act as intermediaries between the main process and worker CPUs. The scheduler manages task execution and the cache stores results, allowing the main process to retrieve results without direct synchronization or locking with worker CPUs, thereby maintaining correctness while improving productivity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If all possible tasks are executed in parallel, then resource utilization improves, but unnecessary tasks waste computing resources

Engineering Contradiction:
Improveresource utilizationVSAvoidwasted computing resources
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system dynamically changes the parameters of task execution by adjusting which tasks are executed based on probabilistic predictions. The task scheduler uses probability estimates of task necessity and time-criticality to selectively execute only those tasks that are likely to be needed, avoiding waste of computing resources on unnecessary tasks while maintaining high resource utilization for important work

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9400680B2Transportation network micro-simulation with pre-emptive decomposition
Publication Date: 2016.07.26 CONDUENT BUSINESS SERVICES LLC
  • US9400680B2 patent drawing
  • US9400680B2 patent drawing
  • US9400680B2 patent drawing

AI summary

In a parallel computing method performed by a parallel computing system comprising a plurality of central processing units (CPUs), a main process executes. Tasks are executed in parallel with the main process on CPUs not used in executing the main process. Results of completed tasks are stored in a cache, from which the main process retrieves completed task results when needed. The initiation of task execution is controlled by a priority ranking of tasks based on at least probabilities that task results will be needed by the main process and time limits for executing the tasks. The priority ranking of tasks is from the vantage point of a current execution point in the main process and is updated as the main process executes. An executing task may be pre-empted by a task having higher priority if no idle CPU is available.