• DocumentCode
    1411301
  • Title

    A compiler optimization algorithm for shared-memory multiprocessors

  • Author

    McKinley, Kathryn S.

  • Author_Institution
    Dept. of Comput. Sci., Massachusetts Univ., Amherst, MA, USA
  • Volume
    9
  • Issue
    8
  • fYear
    1998
  • fDate
    8/1/1998 12:00:00 AM
  • Firstpage
    769
  • Lastpage
    787
  • Abstract
    This paper presents a new compiler optimization algorithm that parallelizes applications for symmetric, shared-memory multiprocessors. The algorithm considers data locality, parallelism, and the granularity of parallelism. It uses dependence analysis and a simple cache model to drive its optimizations. It also optimizes across procedures by using interprocedural analysis and transformations. We validate the algorithm by hand-applying it to sequential versions of parallel, Fortran programs operating over dense matrices. The programs initially were hand-coded to target a variety of parallel machines using loop parallelism. We ignore the user´s parallel loop directives, and use known and implemented dependence and interprocedural analysis to find parallelism. We then apply our new optimization algorithm to the resulting program. We compare the original parallel program to the hand-optimized program, and show that our algorithm improves three programs, matches four programs, and degrades one program in our test suite on a shared-memory, bus-based parallel machine with local caches. This experiment suggests existing dependence and interprocedural array analysis can automatically detect user parallelism, and demonstrates that user parallelized codes often benefit from our compiler optimizations, providing evidence that we need both parallel algorithms and compiler optimizations to effectively utilize parallel machines
  • Keywords
    optimising compilers; parallel algorithms; parallel machines; shared memory systems; cache model; compiler optimization; data locality; dependence analysis; granularity; parallel algorithms; parallel program; parallelism; shared-memory multiprocessors; user parallelism; Algorithm design and analysis; Costs; Degradation; Hardware; Optimizing compilers; Parallel algorithms; Parallel machines; Parallel processing; Parallel programming; Program processors;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/71.706049
  • Filename
    706049