Synopses & Reviews
This is an introduction to parallel processing intended for junior, senior and graduate level courses. Foster builds actual applications programs and uses them to solve actual engineering problems in a variety of disciplines.
Parallel computing, once found only in academic/research environments is now becoming the computing platform of choice in a wide range of disciplines within the academic and commercial world. Engineering solutions are now primarily created on machines capable of parallel processing and scientific advances are more and more a result of the power and flexibility of the parallel paradigm.
This book is a guide to a larger resource accessible via the Internet: The Mosaic Guide to Designing and Building Parallel Programs.
0201575949B04062001
About the Author
I hold positions as Scientist in the Mathematics and Computer Science Division at Argonne National Laboratory, and Associate Professor of Computer Science at the University of Chicago. I lead computer science projects developing parallel languages and tools and a computational science effort developing parallel climate models. My major research interests are in various aspects of parallel and distributed computing: algorithms, languages, tools. Recently, I've been working on the techniques required to integrate high-performance computing into large-scale internetworked environments.
0201575949AB04062001
Table of Contents
I. DESIGN. 1. Parallel Computers and Computation.
Parallelism and Computing.
A Parallel Machine Model.
Other Parallel Machine Models.
A Parallel Programming Model.
Parallel Algorithms. 2. Designing Parallel Algorithms.
Methodical Design.
Partitioning.
Communication.
Agglomeration.
Mapping.
Case Study: Climate Modeling.
Case Study: Floorplan Optimization.
Case Study: Computational Chemistry. 3. A Quantitative Basis for Design.
Defining Performance.
Approaches to Performance.
Modeling Performance.
Performance Modeling and Design.
Experimental Studies.
Evaluating Implementations.
A Refined Communication Cost Model.
Input/Output. 4. Putting It All Together.
Modular Design.
Modularity and Parallel Programming.
Data Distribution.
Sequential Composition.
Performance Analysis.
Templates.
II. TOOLS. 5. Fortran M.
Introduction.
Concurrency.
Communication.
Unstructured Communication.
Probing for Pending Messages.
Argument Passing.
Determinism.
Mapping.
Performance Issues.
Case Study: Finite Difference.
Case Study: Floorplan Optimization. 6. Modular C Data Parallel Languages.
Data Parallelism.
Fortran 90.
High Performance Fortran.
Integrating Task and Data Parallelism. 7. Message Passing Libraries.
The MPI Programming Model.
MPI Basics.
Global Operations.
Querying Received and Pending Messages.
Derived Data Types.
Modularity.
Performance.
Other MPI Features. 8. Performance Tools.
Profiling Tools.
Tracing Tools.
Timers.
III. BUILDING BLOCKS. 9. Availability of Software. 0201575949T04062001