| |
| |
Preface ix | |
| |
| |
Notation xiii | |
| |
| |
| |
Introduction | |
| |
| |
| |
Overview | |
| |
| |
| |
What is parallel computing? | |
| |
| |
| |
Performance | |
| |
| |
| |
Why parallel? | |
| |
| |
| |
Two simple examples | |
| |
| |
| |
Mesh-based applications | |
| |
| |
| |
Parallel perspectives | |
| |
| |
| |
Exercises | |
| |
| |
| |
Parallel Performance | |
| |
| |
| |
Summation example | |
| |
| |
| |
Performance measures | |
| |
| |
| |
Limits to performance | |
| |
| |
| |
Scalability | |
| |
| |
| |
Parallel performance analysis | |
| |
| |
| |
Parallel payoff | |
| |
| |
| |
Real world parallelism | |
| |
| |
| |
Starting SPMD programming | |
| |
| |
| |
Exercises | |
| |
| |
| |
Computer Architecture | |
| |
| |
| |
PMS notation | |
| |
| |
| |
Shared memory multiprocessor | |
| |
| |
| |
Distributed memory multicomputer | |
| |
| |
| |
Pipeline and vector processors | |
| |
| |
| |
Comparison of parallel architectures | |
| |
| |
| |
Taxonomies | |
| |
| |
| |
Current trends | |
| |
| |
| |
Exercises | |
| |
| |
| |
Dependences | |
| |
| |
| |
Data dependences | |
| |
| |
| |
Loop-carried data dependences | |
| |
| |
| |
Dependence examples | |
| |
| |
| |
Testing for loop-carried dependences | |
| |
| |
| |
Loop transformations | |
| |
| |
| |
Dependence examples continued | |
| |
| |
| |
Exercises | |
| |
| |
| |
Parallel Languages | |
| |
| |
| |
Critical factors | |
| |
| |
| |
Command and control | |
| |
| |
| |
Memory models | |
| |
| |
| |
Shared memory programming | |
| |
| |
| |
Message passing | |
| |
| |
| |
Examples and comments | |
| |
| |
| |
Parallel language developments | |
| |
| |
| |
Exercises | |
| |
| |
| |
Collective Operations | |
| |
| |
| |
The @notation | |
| |
| |
| |
Tree/ring algorithms | |
| |
| |
| |
Reduction operations | |
| |
| |
| |
Reduction operation applications | |
| |
| |
| |
Parallel prefix algorithms | |
| |
| |
| |
Performance of reduction operations | |
| |
| |
| |
Data movement operations | |
| |
| |
| |
Exercises | |
| |
| |
| |
Current Programming Standards | |
| |
| |
| |
Introduction to MPI | |
| |
| |
| |
Collective operations in MPI | |
| |
| |
| |
Introduction to POSIX threads | |
| |
| |
| |
Exercises | |
| |
| |
| |
The Planguage Model | |
| |
| |
| |
I P language details | |
| |
| |
| |
Ranges and arrays | |
| |
| |
| |
Reduction operations in Pfortran | |
| |
| |
| |
Introduction to PC | |
| |
| |
| |
Reduction operations in PC | |
| |
| |
| |
Planguages versus message passing | |
| |
| |
| |
Exercises | |
| |
| |
| |
High Performance Fortran | |
| |
| |
| |
HPF data distribution directives | |
| |
| |
| |
Other mechanisms for expressing concurrency | |
| |
| |
| |
Compiling HPF | |
| |
| |
| |
HPF comparisons and review | |
| |
| |
| |
Exercises | |
| |
| |
| |
Loop Tiling | |
| |
| |
| |
Loop tiling | |
| |
| |
| |
Work vs.data decomposition | |
| |
| |
| |
Tiling in Open MP | |
| |
| |
| |
Teams | |
| |
| |
| |
Parallel regions | |
| |
| |
| |
Exercises | |
| |
| |
| |
Matrix Eigen Analysis | |
| |
| |
| |
The Leslie matrix model | |
| |
| |
| |
The power method | |
| |
| |
| |
A parallel Leslie matrix program | |
| |
| |
| |
Matrix-vector product | |
| |
| |
| |
Power method applications | |
| |
| |
| |
Exercises | |
| |
| |
| |
Linea Systems | |
| |
| |
| |
Gaussian elimination | |
| |
| |
| |
Solving triangular systems in parallel | |
| |
| |
| |
Divide-and-conquer algorithms | |
| |
| |
| |
Exercises | |
| |
| |
| |
Projects | |
| |
| |
| |
Particle Dynamics | |
| |
| |
| |
Model assumptions | |
| |
| |
| |
Using Newton's third law | |
| |
| |
| |
Further code complications | |
| |
| |
| |
Pair list generation | |
| |
| |
| |
Force calculation with a pair list | |
| |
| |
| |
Performance of replication algorithm | |
| |
| |
| |
Case study:particle dynamics in HPF | |
| |
| |
| |
Exercises | |
| |
| |
| |
Projects | |
| |
| |
| |
Mesh Methods | |
| |
| |
| |
Boundary value problems | |
| |
| |
| |
Iterative methods | |
| |
| |
| |
Multigrid methods | |
| |
| |
| |
Multidimensional problems | |
| |
| |
| |
Initial value problems | |
| |
| |
| |
Exercises | |
| |
| |
| |
Projects | |
| |
| |
| |
Sorting | |
| |
| |
| |
Introduction | |
| |
| |
| |
Parallel sorting | |
| |
| |
| |
Spatial sorting | |
| |
| |
| |
Exercises | |
| |
| |
| |
Projects | |
| |
| |
Bibliography | |
| |
| |
Index | |