Sequence Partitioning for Multi-Core Schedule Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge lies in optimizing the execution time of programs on multi-core chips where not all computational resources are utilized due to data dependencies between instructions, leading to inefficiencies in parallel processing.
Innovation Solution
The approach involves partitioning the sequence of instructions and buffers into smaller partitions, optimizing each partition individually, and then merging them to create a more efficient schedule that maximizes resource utilization and reduces overall execution time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If instructions are assigned to be executed on spare units to increase utilization, then resource utilization is improved, but execution time is increased due to data dependencies
Solution Approach 1:
The sequence of instructions is divided into multiple partitions, where each partition can be independently optimized and executed on different computational units. This segmentation allows parallel execution of independent partitions while maintaining data dependency constraints within each partition, thereby improving resource utilization without significantly increasing overall execution time.
2Reliability
If the entire sequence is optimized as a whole, then global optimality is achieved, but computational resources and time for optimization are excessive
Solution Approach 1:
The optimization process is segmented into multiple iterations, where each iteration optimizes a specific partition of the instruction sequence. This divide-and-conquer approach reduces the computational complexity of each optimization iteration while achieving near-global optimality through cumulative improvements across all partitions.
Solution Approach 2:
The sequence is pre-partitioned into multiple segments before optimization begins. This preliminary action allows subsequent optimization iterations to work on smaller, more manageable partitions, reducing the computational resources required while maintaining effective optimization quality.
3Productivity
If more computational resources are packed into chips, then computational power cost is reduced, but resource utilization is not maximized for every task
Solution Approach 1:
By partitioning the instruction sequence and assigning different partitions to different computational units, the system effectively utilizes multiple computational resources simultaneously. This segmentation strategy enables better utilization of the computational power packed into chips, reducing the need for additional hardware resources.
Solution Approach 2:
The system dynamically assigns different partitions of the instruction sequence to different computational units based on availability and dependency constraints. This dynamic resource allocation maximizes the utilization of packed computational resources while adapting to changing execution conditions.
Data Source
AI summary
Sequence partition based schedule optimization is performed by generating a sequence and a schedule based on the sequence, dividing the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers, performing, for each sequence partition, a plurality of partition optimizing iterations, and merging the plurality of sequence partitions to produce a merged schedule.


