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 条
[21]   An Automatic Parallelization Framework for Algebraic Computation Systems [J].
Li, Yue ;
Dos Reis, Gabriel .
ISSAC 2011: PROCEEDINGS OF THE 36TH INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND ALGEBRAIC COMPUTATION, 2011, :233-240
[22]   Recurrence Analysis for Automatic Parallelization of Subscripted Subscripts [J].
Bhosale, Akshay ;
Eigenmann, Rudolf .
PROCEEDINGS OF THE 29TH ACM SIGPLAN ANNUAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING, PPOPP 2024, 2024, :80-93
[23]   Towards Automatic Parallelization of Stream Processing Applications [J].
Dolz, Manuel F. ;
Del Rio Astorga, David ;
Fernandez, Javier ;
Daniel Garcia, J. ;
Carretero, Jesus .
IEEE ACCESS, 2018, 6 :39944-39961
[24]   Automatic Parallelization of C Code Using OpenMP [J].
Singal, Gaurav ;
Gopalani, Dinesh ;
Kushwaha, Riti ;
Badal, Tapas .
EMERGING TECHNOLOGIES IN COMPUTER ENGINEERING: MICROSERVICES IN BIG DATA ANALYTICS, 2019, 985 :298-309
[25]   A Fuzzy Approach to Resource Aware Automatic Parallelization [J].
Trigo de la Vega, T. ;
Lopez-Garcia, P. ;
Munoz-Hernandez, S. .
COMPUTATIONAL INTELLIGENCE, 2012, 399 :229-+
[26]   Automatic coarse-grained parallelization techniques [J].
Cosnard, M ;
Jeannot, E .
ADVANCES IN HIGH PERFORMANCE COMPUTING, 1997, 30 :253-270
[27]   Optimal parallelization of a recursive algorithm for triangular matrix inversion on MIMD computers [J].
Nasri, W ;
Mahjoub, Z .
PARALLEL COMPUTING, 2001, 27 (13) :1767-1782
[28]   Automatic Parallelization: Executing Sequential Programs on a Task-Based Parallel Runtime [J].
Alcides Fonseca ;
Bruno Cabral ;
João Rafael ;
Ivo Correia .
International Journal of Parallel Programming, 2016, 44 :1337-1358
[29]   Completeness for recursive procedures in separation logic [J].
Al Ameen, Mahmudul Faisal ;
Tatsuta, Makoto .
THEORETICAL COMPUTER SCIENCE, 2016, 631 :73-96
[30]   Automatic Parallelization: Executing Sequential Programs on a Task-Based Parallel Runtime [J].
Fonseca, Alcides ;
Cabral, Bruno ;
Rafael, Joao ;
Correia, Ivo .
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2016, 44 (06) :1337-1358