Parallel Computing Task Priority Queue for Bottleneck Reduction
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If the main process waits for task results from parallel CPUs, then correctness is ensured, but productivity decreases due to CPU locking
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
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
3Productivity
If all possible tasks are executed in parallel, then resource utilization improves, but unnecessary tasks waste computing resources
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
Data Source
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.


