• DocumentCode
    3349605
  • Title

    Automatic parallelization of recursive procedures

  • Author

    Gupta, Manish ; Mikhopadhyay, S. ; Sinha, Navin

  • Author_Institution
    IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
  • fYear
    1999
  • fDate
    1999
  • Firstpage
    139
  • Lastpage
    148
  • Abstract
    Parallelizing compilers have traditionally focused mainly on parallelizing loops. We present a new framework for automatically parallelizing recursive procedures that typically appear in divide-and-conquer algorithms. We present compile-time analysis to detect the independence of multiple recursive calls in a procedure. This allows exploitation of a scalable form of nested parallelism, where each parallel task can further spawn off parallel work in subsequent recursive calls. We describe a run-time system which efficiently supports this kind of nested parallelism without unnecessarily blocking tasks. We have implemented this framework in a parallelizing compiler, which is able to automatically parallelize programs like quicksort and mergesort, written in C. For cases where even the advanced symbolic analysis and array section analysis we describe are not able to prove the independence of procedure calls, we propose novel techniques for speculative run-time parallelization, which are more efficient and powerful in this context than analogous techniques proposed previously for speculatively parallelizing loops. Our experimental results on an IBM G30 SMP machine show good speedups obtained by following our approach
  • Keywords
    IBM computers; divide and conquer methods; parallel programming; parallelising compilers; program control structures; C language; IBM G30 SMP machine; array section analysis; automatic parallelization; compile-time analysis; divide-and-conquer algorithms; experimental results; mergesort; multiple recursive calls; nested parallelism; parallelizing compiler; parallelizing compilers; parallelizing loops; procedure calls; quicksort; recursive procedures; run-time system; symbolic analysis; Identity-based encryption; Linear algebra; Parallel machines; Parallel processing; Partitioning algorithms; Program processors; Runtime; Writing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel Architectures and Compilation Techniques, 1999. Proceedings. 1999 International Conference on
  • Conference_Location
    Newport Beach, CA
  • ISSN
    1089-795X
  • Print_ISBN
    0-7695-0425-6
  • Type

    conf

  • DOI
    10.1109/PACT.1999.807504
  • Filename
    807504