Statement Shifting for Loop Parallelism via DDG
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing loop transformation techniques, such as loop shifting, do not fully exploit parallelism in multiprocessor systems, leading to suboptimal performance and resource utilization.
Innovation Solution
Statement shifting is implemented by solving basic and dependence equations groups derived from a data dependence graph, allowing for accurate transformation mappings of each statement in the loop, thereby exploring additional parallelism opportunities for other loop transformation techniques.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional loop transformation techniques are used, then loop execution time is reduced, but parallelism exploitation is insufficient leading to suboptimal multiprocessor performance
Solution Approach 1:
The patent segments the loop transformation process by introducing statement shifting as a distinct operation that can be applied to individual statements within loops. This allows each statement to be shifted independently to different iteration spaces, enabling fine-grained parallelism exploitation while maintaining the benefits of loop transformation for reducing execution time.
Solution Approach 2:
The patent transforms the single iteration space into a multi-dimensional iteration space by introducing statement-specific shift amounts. This dimensional transformation allows operations to be repositioned in the iteration space to maximize parallelism while maintaining data dependence constraints, thereby resolving the contradiction between execution speed and parallelism exploitation.
2Productivity
If loop operations are shifted to expose parallelism, then resource utilization improves, but transformation complexity increases
Solution Approach 1:
The patent changes the parameters of loop transformations by introducing statement-specific shift amounts as adjustable parameters. This allows the transformation complexity to be managed by optimizing these parameters systematically, while achieving improved resource utilization through better parallelism exposure in the transformed code.
3Productivity
If statement shifting is applied to increase parallelism, then performance on multiprocessors improves, but loop transformation accuracy requirements increase
Solution Approach 1:
The patent applies preliminary actions by performing data dependence analysis and determining optimal shift amounts for each statement before executing the loop transformation. This preliminary preparation ensures that the transformation mapping is accurate and maintains data dependence relationships, thereby achieving improved multiprocessor performance without sacrificing transformation precision.
Data Source
AI summary
A method for statement shifting to increase the parallelism of loops includes constructing a data dependence graph (DDG) to represent dependences between statements in a loop, constructing a basic equations group from the DDG, constructing a dependence equations group derived in part from the basic equations group, and determining a shifting vector for the loop from the dependence equations group, wherein the shifting vector to represent an offset to apply to each statement in the loop for statement shifting. Other embodiments are also disclosed.


