Graph Code Priority Modification for Parallel Execution Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Parallel computing systems face inefficiencies in memory and processor usage when executing graphs representing operations, as existing methods do not effectively optimize the scheduling of graph code portions, leading to suboptimal resource allocation and execution order.
Innovation Solution
A processor and graphics processor system that modifies the priority of graph code portions to be scheduled, using a computer-implemented method to generate and prioritize execution based on graph topology and dependencies, allowing for efficient scheduling and resource allocation by adjusting priority values within specific ranges.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If graph operations are executed using existing scheduling methods, then the operations can be performed, but memory and processor usage are inefficient and resource allocation is suboptimal
Solution Approach 1:
The system performs preliminary analysis of graph topology and dependencies before execution to determine optimal priority assignments. By pre-calculating the critical path and identifying bottleneck operations, the scheduler can assign priorities that optimize resource utilization before the graph execution begins, avoiding inefficient runtime adjustments and reducing overall memory and processor usage.
Solution Approach 2:
The scheduling system dynamically adjusts priorities of graph nodes based on real-time resource availability, current execution state, and predicted future workload. This dynamic priority adjustment allows the system to adapt to changing conditions, ensuring optimal memory and processor usage throughout the graph execution by shifting resources from less critical to more critical operations as needed.
2Productivity
If graph operations are executed using existing scheduling methods, then the operations can be performed, but resource allocation is suboptimal
Solution Approach 1:
The scheduling system incorporates feedback mechanisms that continuously monitor resource allocation effectiveness and execution progress. Based on this feedback, the system iteratively refines priority assignments to improve resource allocation efficiency. The feedback loop identifies bottlenecks and suboptimal allocations, allowing the scheduler to adjust priorities in subsequent executions to reduce total execution time while improving resource utilization.
Solution Approach 2:
The system changes scheduling parameters such as node priorities, thread allocations, and execution batches based on graph characteristics and resource conditions. By dynamically adjusting these parameters rather than using fixed scheduling rules, the system optimizes both resource allocation efficiency and execution time, adapting to different graph types and hardware configurations.
3Productivity
If priorities are modified for graph code portions, then execution order is optimized, but scheduling complexity increases
Solution Approach 1:
The scheduling system divides the graph into segments or batches based on dependency relationships and resource requirements. By processing segments independently with localized priority adjustments, the system achieves execution order optimization without requiring complex global scheduling. Each segment can be scheduled with simpler rules, reducing overall scheduling complexity while maintaining optimization benefits.
Solution Approach 2:
The system introduces an intermediary layer between graph definition and execution that handles priority modification. This intermediary translates high-level graph topology information into optimized priority assignments without requiring complex scheduling logic in the execution engine. The intermediary absorbs the complexity of priority calculation, allowing the core scheduling mechanism to remain relatively simple while still achieving optimized execution orders.
Data Source
AI summary
Apparatuses, systems, and techniques to modify graphs. In at least one embodiment, a processor comprises one or more circuits to modify an execution order of at least one graph portion.


