Automatic Parallelization of Recursive Procedures

被引:0
|
作者
Manish Gupta
Sayak Mukhopadhyay
Navin Sinha
机构
[1] IBM,T. J. Watson Research Center
[2] Mobius Management Systems,undefined
[3] IBM Global Services India,undefined
来源
International Journal of Parallel Programming | 2000年 / 28卷
关键词
automatic parallelization; recursive procedures; divide and conquer; symbolic analysis; array section analysis; speculative parallelization;
D O I
暂无
中图分类号
学科分类号
摘要
Parallelizing compilers have traditionally focussed mainly on parallelizing loops. This paper presents a new framework for automatically parallelizing recursive procedures that typically appear in divide-and-conquer algorithms. We present compile-time analysis, using powerful, symbolic array section 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 runtime 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 compile-time analysis we describe is not able to prove the independence of procedure calls, we propose novel techniques for speculative runtime 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.
引用
收藏
页码:537 / 562
页数:25
相关论文
共 50 条
  • [1] Automatic parallelization of recursive procedures
    Gupta, M
    Mukhopadhyay, S
    Sinha, N
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2000, 28 (06) : 537 - 562
  • [2] Automatic parallelization of recursive procedures
    Gupta, Manish
    Mukhopadhyay, Sayak
    Sinha, Navin
    Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT, 1999, : 139 - 148
  • [3] Automatic parallelization of recursive functions with rewriting rules
    Rocha, Rodrigo C. O.
    Goes, Luis F. W.
    Pereira, Fernando M. Q.
    SCIENCE OF COMPUTER PROGRAMMING, 2019, 173 : 128 - 152
  • [4] Automatic Parallelization of Recursive Functions Using Quantifier Elimination
    Morihata, Akimasa
    Matsuzaki, Kiminori
    FUNCTIONAL AND LOGIC PROGRAMMING, PROCEEDINGS, 2010, 6009 : 321 - +
  • [5] Automatic verification of recursive procedures with one integer parameter
    Bouajjani, A
    Habermehl, P
    Mayr, R
    MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE 2001, 2001, 2136 : 198 - 211
  • [6] Automatic verification of recursive procedures with one integer parameter
    Bouajjani, A
    Habermehl, P
    Mayr, R
    THEORETICAL COMPUTER SCIENCE, 2003, 295 (1-3) : 85 - 106
  • [7] Automatic Cyclic Termination Proofs for Recursive Procedures in Separation Logic
    Rowe, Reuben N. S.
    Brotherston, James
    PROCEEDINGS OF THE 6TH ACM SIGPLAN CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP'17, 2017, : 53 - 65
  • [8] A parallelization framework for recursive tree programs
    Feautrier, P
    EURO-PAR '98 PARALLEL PROCESSING, 1998, 1470 : 470 - 479
  • [9] PARALLELIZATION OF EXPERT SYSTEMS WITH RECURSIVE APPLICATIONS
    YAPRAK, E
    ANNEBERG, L
    MICROELECTRONICS AND RELIABILITY, 1990, 30 (03): : 519 - 523
  • [10] Analytical method for parallelization of recursive functions
    Ahn, Joonseon
    Han, Taisook
    Parallel Processing Letters, 2000, 10 (01): : 87 - 98