Automatic parallelization of a class of irregular loops for distributed memory systems
-
Published:2014-10-03
Issue:1
Volume:1
Page:1-37
-
ISSN:2329-4949
-
Container-title:ACM Transactions on Parallel Computing
-
language:en
-
Short-container-title:ACM Trans. Parallel Comput.
Author:
Ravishankar Mahesh1,
Eisenlohr John1,
Pouchet Louis-Noël2,
Ramanujam J.3,
Rountev Atanas1,
Sadayappan P.1
Affiliation:
1. Ohio State University
2. University of California, Los Angeles
3. Louisiana State University
Abstract
Many scientific applications spend significant time within loops that are parallel, except for dependences from associative reduction operations. However these loops often contain data-dependent control-flow and array-access patterns. Traditional optimizations that rely on purely static analysis fail to generate parallel code in such cases.
This article proposes an approach for automatic parallelization for distributed memory environments, using both static and runtime analysis. We formalize the computations that are targeted by this approach and develop algorithms to detect such computations. We also describe algorithms to generate a parallel inspector that performs a runtime analysis of control-flow and array-access patterns, and a parallel executor to take advantage of this information. The effectiveness of the approach is demonstrated on several benchmarks that were automatically transformed using a prototype compiler. For these, the inspector overheads and performance of the executor code were measured. The benefit on real-world applications was also demonstrated through similar manual transformations of an atmospheric modeling software.
Funder
National Science Foundation
U.S. Army
U.S. Department of Energy
Publisher
Association for Computing Machinery (ACM)
Subject
Computational Theory and Mathematics,Computer Science Applications,Hardware and Architecture,Modeling and Simulation,Software
Reference48 articles.
1. Interprocedural partial redundancy elimination and its application to distributed memory compilation
2. Runtime dependence computation and execution of loops on heterogeneous systems
3. Balay S. Brown J. Buschelman K. Gropp W. D. Kaushik D. Knepley M. G. Mcinnes L. C. Smith B. F. and Zhang H. 2012. PETSc http://www.mcs.anl.gov/petsc. Balay S. Brown J. Buschelman K. Gropp W. D. Kaushik D. Knepley M. G. Mcinnes L. C. Smith B. F. and Zhang H. 2012. PETSc http://www.mcs.anl.gov/petsc.
4. Large-scale simulation of elastic wave propagation in heterogeneous media on parallel computers
5. Baskaran M. M. Ramanujam J. and Sadayappan P. 2010. Automatic C-to-CUDA code generation for affine programs. In Compiler Construction 264--263. 10.1007/978-3-642-11970-5_14 Baskaran M. M. Ramanujam J. and Sadayappan P. 2010. Automatic C-to-CUDA code generation for affine programs. In Compiler Construction 264--263. 10.1007/978-3-642-11970-5_14
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Safe automated refactoring for intelligent parallelization of Java 8 streams;Science of Computer Programming;2020-09
2. A functional approach to accelerating Monte Carlo based american option pricing;Proceedings of the 31st Symposium on Implementation and Application of Functional Languages;2019-09-25
3. Incremental flattening for nested data parallelism;Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming;2019-02-16
4. Automatic annotation of tasks in structured code;Proceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques;2018-11