Automatic parallelization of recursive procedures

Citation
M. Gupta et al., Automatic parallelization of recursive procedures, INT J P PRO, 28(6), 2000, pp. 537-562
Citations number
32
Categorie Soggetti
Computer Science & Engineering
Journal title
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING
ISSN journal
08857458 → ACNP
Volume
28
Issue
6
Year of publication
2000
Pages
537 - 562
Database
ISI
SICI code
0885-7458(200012)28:6<537:APORP>2.0.ZU;2-N
Abstract
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 algorithm s. We present compile-time analysis, using powerful, symbolic array section analysis, to detect the independence of multiple recursive calls in a proc edure. This allows exploitation of a scalable form of nested parallelism, w here each parallel task can further spawn off parallel work in subsequent r ecursive calls. We describe a runtime system which efficiently supports thi s kind of nested parallelism without unnecessarily blocking tasks. We have implemented this framework in a parallelizing compiler, which is able to au tomatically parallelize programs like quicksort and mergesort, written in C . For cases where even the advanced compile-time analysis we describe is no t able to prove the independence of procedure calls, we propose novel techn iques 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.