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 条
[41]   Automatic Parallelization of Probabilistic Models with Varying Load Imbalance [J].
Nemeth, Balazs ;
Haber, Tom ;
Liesenborgs, Jori ;
Lamotte, Wim .
2020 20TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND INTERNET COMPUTING (CCGRID 2020), 2020, :752-759
[42]   A thread concept for automatic task parallelization in image analysis [J].
Luckenhaus, M ;
Eckstein, W .
PARALLEL AND DISTRIBUTED METHODS FOR IMAGE PROCESSING II, 1998, 3452 :34-44
[43]   Automatic Parallelization of Programs via Software Stream Rewriting [J].
Tao, Tao ;
Plaisted, David .
2022 IEEE 36TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2022), 2022, :541-551
[44]   Automatic Evolution of Parallel Recursive Programs [J].
Chennupati, Gopinath ;
Azad, R. Muhammad Atif ;
Ryan, Conor .
GENETIC PROGRAMMING (EUROGP 2015), 2015, 9025 :167-178
[45]   Challenges in the automatic parallelization of large-scale computational applications [J].
Armstrong, B ;
Eigenmann, R .
COMMERCIAL APPLICATIONS FOR HIGH-PERFORMANCE COMPUTING, 2001, 4528 :50-60
[46]   Automatic parallelization of object oriented models executed with inline solvers [J].
Lundvall, Hakan ;
Fritzson, Peter .
RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 2007, 4757 :365-372
[47]   Locality-Aware Automatic Parallelization for GPGPU with OpenHMPP Directives [J].
José M. Andión ;
Manuel Arenaz ;
François Bodin ;
Gabriel Rodríguez ;
Juan Touriño .
International Journal of Parallel Programming, 2016, 44 :620-643
[48]   Automatic parallelization of XQuery programs on multi-core systems [J].
Rongxin Chen ;
Husheng Liao ;
Zongyue Wang ;
Hang Su .
The Journal of Supercomputing, 2016, 72 :1517-1548
[49]   Automatic Parallelization of a Gap Model using Java']Java and OpenCL [J].
Passerat-Palmbach, Jonathan ;
Forest, Arthur ;
Pal, Julien ;
Corbara, Bruno ;
Hill, D. R. C. .
EUROPEAN SIMULATION AND MODELLING CONFERENCE 2012, 2012, :24-+
[50]   Automatic parallelization of XQuery programs on multi-core systems [J].
Chen, Rongxin ;
Liao, Husheng ;
Wang, Zongyue ;
Su, Hang .
JOURNAL OF SUPERCOMPUTING, 2016, 72 (04) :1517-1548