High Performance Compilers for Parallel Computing / Edition 1by Michael Wolfe
Pub. Date: 06/06/1995
High Performance Compilers for Parallel Computing provides a clear understanding of the analysis and optimization methods used in modern commercial research compilers for parallel systems. By the author of the classic 1989 monograph Optimizing Supercompilers for Supercomputers, this book covers the knowledge and skills necessary to build a/b>/b>… See more details below
High Performance Compilers for Parallel Computing provides a clear understanding of the analysis and optimization methods used in modern commercial research compilers for parallel systems. By the author of the classic 1989 monograph Optimizing Supercompilers for Supercomputers, this book covers the knowledge and skills necessary to build a competitive, advanced compiler for parallel or high-performance computers. Starting with a review of basic terms and algorithms used - such as graphs, trees, and matrix algebra - Wolfe shares the lessons of his 20 years experience developing compiler products. He provides a complete catalog of program restructuring methods that have proven useful in the discovery of parallelism or performance optimization and discusses compiling details for each type of parallel system described, from simple code generation, through basic and aggressive optimizations. A wide variety of parallel systems are presented, from bus-based cache-coherent shared memory multiprocessors and vector computers, to message-passing multicomputers and large-scale shared memory systems.
- Publication date:
- Edition description:
- New Edition
- Product dimensions:
- 6.90(w) x 9.00(h) x 1.20(d)
Table of Contents
1. High Performance Systems.
An Example Program: Matrix Multiplication.
Structure of a Compiler.
2. Programming Language Features.
Languages for High Performance.
Sequential and Parallel Loops.
3. Basic Graph Concepts.
Sets, Tuples, Logic.
4. Review of Linear Algebra.
Real Vectors and Matrices.
Integer Matrices and Lattices.
Linear System of Equations.
System of Integer Equations.
Systems of Linear Inequalities.
Systems of Integer Linear Inequalities.
Extreme Values of Affine Functions.
5. Data Dependence.
Data Dependence in Loops.
Data Dependence in Conditionals.
Data Dependence in Parallel Loops.
Program Dependence Graph.
6. Scalar Analysis with Factored Use-Def Chains.
Constructing Factored Use-Def Chains.
FUD Chains for Arrays.
Finding All Reaching Definitions.
Implicit References in FUD Chains.
InductionVariables Using FUD Chains.
Constant Propagation with FUD Chains.
Data Dependence for Scalars.
7. Data Dependence Analysis for Arrays.
Building the Dependence System.
Dependence System Solvers.
Summary of Solvers.
Run-time Dependence Testing.
8. Other Dependence Problems.
Array Region Analysis.
9. Loop Restructuring.
Linear Loop Transformations.
Other Loop Transformations.
10. Optimizing for Locality.
Single Reference to Each Array.
Fission and Fusion for Locality.
11. Concurrency Analysis.
Code for Concurrent Loops.
Concurrency from Sequential Loops.
Concurrency from Parallel Loops.
Exceptions and Debuggers.
12. Vector Analysis.
Vector Code from Sequential Loops.
Vector Code from Forall Loops.
Roundoff Error, Exceptions, and Debuggers.
13. Message-Passing Machines.
Parallel Code for Array Assignment.
Remote Data Access.
Automatic Data Layout.
Multiple Array Assignments.
14. Scalable Shared-Memory Machines.
Global Cache Coherence.
Local Cache Coherence.
Latency Tolerant Machines.
and post it to your social network
Most Helpful Customer Reviews
See all customer reviews >