PART I CONCEPTS
1 Parallel Computen and Computation
l .l Parallelism and Computing
l .2 A Parallel Machine Model
l .3 A Parallel Programming Model
l .4 Parallel Algorithm Examples
l .5 Summary
Exercises
Chapter Notes
2 Designing Parallel Algorithms
2. l Methodical Design
2.2 Partitioning
2. 3 Communication
2.4 Agglomeration
2.5 Mapping
2.6 Case Smdy: Atmosphere Model
2.7 Case Study: noorplan Optimization
2.8 Case Study: Computational Chemistry
2.9 Summary
Exercises
Chapter Notes
3 A Quantitative Basis for Design
3.l Defining Performance
3.2 Approaches to Performance Modeling
3.3 Developing Models
3.4 Scalability Analysis
3.5 Experimental Studies
3.6 Evaluating Implementations
3.7 A Refined Communication Cost Model
3.8 Input/Output
3.9 Case Study: Shortest-Path Algorithms
3. IO Summary
Exercises
Chapter Notes
4 Putting Components Together
4.l Modalar Design Review
4.2 Modalarity and Parallel Computing
4.3 Performance Analysis
4.4 Case Study: Convolution
4.5 Case Study: Tuple Space
4.6 Case Study: Matrix Multiplication
4.7 Summary
Exercises
Chapter Notes
PART II TOOLS
5 Compositional C++ '
5.l C++ Review
5.2 CC++ Introduction
5.3 Concurrency
5.4 Locality
5.5 Communication
5 .6 Asynchronous Communication
5.7 Determinism
5 .8 Mapping
5 .9 Modularity
5. IO Performance Issues
5. l I Case Study: Channel Library
5. 12 Case Study: Fock Matrix Construction
5. 13 Summary
Excercises
Chapter Notes
6 Fortran M
6.l FM Introduction
6.2 Concurrency
6.3 Communication
6.4 Unstructured Communication
6.5 Asynchronous Communication
6.6 Determinism
6.7 Argument Passing
6.8 Mapping
6.9 Modularity
6. I O Performance Issues
6. l l Case Study: Fock Matrix Construction
6. I 2 Summary
Exercises
Ckapter Notes
7 High Performance Fortran
7.l Data Parallelism
7.2 Fortran 90
7.3 Data Distribution
7.4 Concurrency
7.5 Dummy Arguments and Modularity
7.6 Other HPF Features
7.7 Performance Issues
7.S Case Study: Gaussian Elimination
7.9 Summary .
Exercises
Chapter Notes
8 Message Passing Interface
8. l The MPI Programming Model
8.2 MPI Basics
8.3 Global Operations
8.4 Asynchronous Communication
8.5 Modularity
8.6 Other MPI Features
8.7 Performance Issues
8.8 Case Study: Earth System Model
8.9 Summary
Exercises
Chapter Notes
9 Performance Tools
e. l Performance Analysis
9.2 Data Collection
9.3 Data Transformation and Visualization
9.4 Tools
9.5 Summary
Exercises
Chapter Notes
PART III RESOURCES
10 Random Numbers
10.l Sequential Random Numbers
IO.2 Parallel Random Numbers
IO.3 Distributed Random Generators
IO.4 Summary
Exercises
Chapter Notes
1 1 Hypercube Algorithms
l l .l The Hypercube Template
l I .2 Vector Reduction
l I .3 Mauix Transposition
l I .4 Mergeson
I l .5 Summary
Exercises
Chapter Notes
12 Further Reading
13 About the Online Version
13. l Obtaining a Web Browser
13.2 Web Tours
References
Index