Loop displacement: an approach for transforming and scheduling loops for parallel execution

  • Authors:
  • Rajiv Gupta

  • Affiliations:
  • Dept. of Computer Science, University of Pittsburgh, Pittsburgh, PA and Philips Loboratories, North America Philips Corporation, 345 Scarborough Road, Briarcliff Manor, NY

  • Venue:
  • Proceedings of the 1990 ACM/IEEE conference on Supercomputing
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes loop displacement a mapping that can be used to transform loops and schedule loops for parallel execution. Loop displacement can be applied to hybrid multiply nested loops to achieve the following:Transform sequential loops into parallel loops.Transform and schedule loops to reduce synchronization overhead.Generate schedules that distribute the load evenly among the processors.Generate schedules that reduce idling of processors.Integrate loop transformation and loop scheduling.Loop displacement can be used in place of loop alignment, loop coalescing, and loop skewing. It generalizes loop spreading, a scheduling technique for achieving good load balancing, to multiply nested loops and generates schedules with better load distribution and sometimes less processor idling than those generated by OPTAL a static loop partitioning algorithm. Furthermore, it integrates loop transformation and loop scheduling which provides better results. Achieving the goals of a variety of loop transformation and scheduling strategies through loop displacement can simplify the compiler and allow intelligent techniques that integrate the application of transformations to be developed.