Compiler directed parallelization of loops in scale for shared-memory multiprocessors

  • Authors:
  • Gregory S. Johnson;Simha Sethumadhavan

  • Affiliations:
  • Department of Computer Sciences & Texas Advanced Computing Center, The University of Texas at Austin, Austin, TX;Department of Computer Sciences, The University of Texas at Austin, Austin, TX

  • Venue:
  • ICCS'03 Proceedings of the 2003 international conference on Computational science: PartIII
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Effective utilization of symmetric shared-memory multiprocessors (SMPs) is predicated on the development of efficient parallel code. Unfortunately, efficient parallelism is not always easy for the programmer to identify. Worse, exploiting such parallelism may directly conflict with optimizations affecting per-processor utilization (i.e. loop reordering to improve data locality). Here, we present our experience with a loop-level parallel compiler optimization for SMPs proposed by McKinley [6]. The algorithm uses dependence analysis and a simple model of the target machine, to transform nested loops. The goal of the approach is to promote efficient execution of parallel loops by exposing sources of large-grain parallel work while maintaining per-processor locality.We implement the optimization within the Scale compiler framework, and analyze the performance of multiprocessor code produced for three microbenchmarks.