ACM Home Page
Please provide us with feedback. Feedback
Automatic parallelization of divide and conquer algorithms
Full text PdfPdf (1.61 MB)
Source Principles and Practice of Parallel Programming archive
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming table of contents
Atlanta, Georgia, United States
Pages: 72 - 83  
Year of Publication: 1999
ISBN:1-58113-100-3
Also published in ...
Authors
Radu Rugina  Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Martin Rinard  Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 46,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/301104.301111
What is a DOI?

ABSTRACT

Divide and conquer algorithms are a good match for modern parallel machines: they tend to have large amounts of inherent parallelism and they work well with caches and deep memory hierarchies. But these algorithms pose challenging problems for parallelizing compilers. They are usually coded as recursive procedures and often use pointers into dynamically allocated memory blocks and pointer arithmetic. All of these features are incompatible with the analysis algorithms in traditional parallelizing compilers.This paper presents the design and implementation of a compiler that is designed to parallelize divide and conquer algorithms whose subproblems access disjoint regions of dynamically allocated arrays. The foundation of the compiler is a flow-sensitive, context-sensitive, and interprocedural pointer analysis algorithm. A range of symbolic analysis algorithms build on the pointer analysis information to extract symbolic bounds for the memory regions accessed by (potentially recursive) procedures that use pointers and pointer arithmetic. The symbolic bounds information allows the compiler to find procedure calls that can execute in parallel without violating the data dependences. The compiler generates code that executes these calls in parallel. We have used the compiler to parallelize several programs that use divide and conquer algorithms. Our results show that the programs perform well and exhibit good speedup.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
S. Amarasinghe, J. Anderson, M. Lain, and C. Tseng. The SUIF compiler for scalable parallel machines. In Proceedings of the Eighth SIAM Conference on Parallel Processing for Scientific Computing, February 1995.
 
2
3
4
 
5
6
7
8
 
9
V. Guarna. A technique for analyzing pointer and structure references in parallel restructuring compilers. Proceedings of the 1988 international Conference on Parallel Processing, August 1988.
 
10
11
 
12
 
13
14
15
16
17
18
19
20
21

CITED BY  13

Collaborative Colleagues:
Radu Rugina: colleagues
Martin Rinard: colleagues