
Automatic Parallelization
An Overview of Fundamental Compiler Techniques
Samuel P. Midkiff(Author)
Morgan & Claypool Publishers
Published on 30. January 2012
Book
Paperback/Softback
169 pages
978-1-60845-841-7 (ISBN)
Description
Compiling for parallelism is a longstanding topic of compiler research. This book describes the fundamental principles of compiling ""regular"" numerical programs for parallelism. We begin with an explanation of analyses that allow a compiler to understand the interaction of data reads and writes in different statements and loop iterations during program execution. These analyses include dependence analysis, use-def analysis and pointer analysis. Next, we describe how the results of these analyses are used to enable transformations that make loops more amenable to parallelization, and discuss transformations that expose parallelism to target shared memory multicore and vector processors. We then discuss some problems that arise when parallelizing programs for execution on distributed memory machines. Finally, we conclude with an overview of solving Diophantine equations and suggestions for further readings in the topics of this book to enable the interested reader to delve deeper into the field.
More details
Series
Language
English
Place of publication
San Rafael
United States
Dimensions
Height: 235 mm
Width: 187 mm
Weight
333 gr
ISBN-13
978-1-60845-841-7 (9781608458417)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Content
- Introduction and overview
- Dependence analysis, dependence graphs and alias analysis
- Program parallelization
- Transformations to modify and eliminate dependences
- Transformation of iterative and recursive constructs
- Compiling for distributed memory machines
- Solving Diophantine equations
- A guide to further reading
- Dependence analysis, dependence graphs and alias analysis
- Program parallelization
- Transformations to modify and eliminate dependences
- Transformation of iterative and recursive constructs
- Compiling for distributed memory machines
- Solving Diophantine equations
- A guide to further reading