Statement Shifting for Loop Parallelism via DDG

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveloop execution speedVSAvoidparallelism exploitation capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If loop operations are shifted to expose parallelism, then resource utilization improves, but transformation complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidtransformation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If statement shifting is applied to increase parallelism, then performance on multiprocessors improves, but loop transformation accuracy requirements increase

Engineering Contradiction:
Improvemultiprocessor performanceVSAvoidtransformation mapping accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7770162B2Statement shifting to increase parallelism of loops
Publication Date: 2010.08.03 INTEL CORP
  • US7770162B2 patent drawing
  • US7770162B2 patent drawing
  • US7770162B2 patent drawing

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.