search for books and compare prices
Tables of Contents for Using Mpi
Chapter/Section Title
Page #
Page Count
Series Foreword
xiii
 
Preface to the Second Edition
xv
 
Preface to the First Edition
xix
 
Background
1
12
Why Parallel Computing?
1
1
Obstacles to Progress
2
1
Why Message Passing?
3
7
Parallel Computational Models
3
6
Advantages of the Message-Passing Model
9
1
Evolution of Message-Passing Systems
10
1
The MPI Forum
11
2
Introduction to MPI
13
10
Goal
13
1
What Is MPI?
13
1
Basic MPI Concepts
14
4
Other Interesting Features of MPI
18
2
Is MPI Large or Small?
20
1
Decisions Left to the Implementor
21
2
Using MPI in Simple Programs
23
46
A First MPI Program
23
5
Running Your First MPI Program
28
1
A First MPI Program in C
29
1
A First MPI Program in C++
29
5
Timing MPI Programs
34
1
A Self-Scheduling Example: Matrix-Vector Multiplication
35
8
Studying Parallel Performance
43
10
Elementary Scalability Calculations
43
2
Gathering Data on Program Execution
45
1
Instrumenting a Parallel Program with MPE Logging
46
1
Events and States
47
1
Instrumenting the Matrix-Matrix Multiply Program
47
2
Notes on Implementation of Logging
49
3
Examining Logfiles with Upshot
52
1
Using Communicators
53
6
Another Way of Forming New Communicators
59
3
A Handy Graphics Library for Parallel Programs
62
2
Common Errors and Misunderstandings
64
2
Application: Quantum Monte Carlo Calculations in Nuclear Physics
66
1
Summary of a Simple Subset of MPI
67
2
Intermediate MPI
69
42
The Poisson Problem
70
3
Topologies
73
8
A Code for the Poisson Problem
81
12
Using Nonblocking Communications
93
3
Synchronous Sends and ``Safe'' Programs
96
1
More on Scalability
96
2
Jacobi with a 2-D Decomposition
98
2
An MPI Derived Datatype
100
1
Overlapping Communication and Computation
101
4
More on Timing Programs
105
2
Three Dimensions
107
1
Common Errors and Misunderstandings
107
2
Application: Simulating Vortex Evolution in Superconducting Materials
109
2
Advanced Message Passing in MPI
111
46
MPI Datatypes
111
6
Basic Datatypes and Concepts
111
3
Derived Datatypes
114
3
Understanding Extents
117
1
The N-Body Problem
117
21
Gather
118
5
Nonblocking Pipeline
123
1
Moving Particles between Processes
124
8
Sending Dynamically Allocated Data
132
2
User-Controlled Data Packing
134
4
Visualizing the Mandelbrot Set
138
8
Sending Arrays of Structures
145
1
Gaps in Datatypes
146
4
MPI-2 Functions for Manipulating Extents
148
2
New MPI-2 Datatype Routines
150
2
More on Datatypes for Structures
152
2
Deprecated Functions
154
2
Common Errors and Misunderstandings
156
1
Parallel Libraries
157
38
Motivation
157
6
The Need for Parallel Libraries
157
1
Common Deficiencies of Previous Message-Passing Systems
158
2
Review of MPI Features That Support Libraries
160
3
A First MPI Library
163
14
MPI-2 Attribute-Caching Routines
172
1
A C++ Alternative to MPI_Comm_dup
172
5
Linear Algebra on Grids
177
12
Mappings and Logical Grids
178
3
Vectors and Matrices
181
4
Components of a Parallel Library
185
4
The LINPACK Benchmark in MPI
189
1
Strategies for Library Building
190
2
Examples of Libraries
192
3
Other Features of MPI
195
58
Simulating Shared-Memory Operations
195
10
Shared vs. Distributed Memory
195
1
A Counter Example
196
4
The Shared Counter Using Polling instead of an Extra Process
200
1
Fairness in Message Passing
201
1
Exploiting Request-Response Message Patterns
202
3
Application: Full-Configuration Interaction
205
1
Advanced Collective Operations
206
8
Data Movement
206
1
Collective Computation
206
7
Common Errors and Misunderstandings
213
1
Intercommunicators
214
6
Heterogeneous Computing
220
2
The MPI Profiling Interface
222
7
Finding Buffering Problems
226
2
Finding Load Imbalances
228
1
The Mechanics of Using the Profiling Interface
228
1
Error Handling
229
11
Error Handlers
230
3
An Example of Error Handling
233
1
User-Defined Error Handlers
234
3
Terminating MPI Programs
237
2
MPI-2 Functions for Error Handling
239
1
The MPI Environment
240
3
Processor Name
242
1
Is MPI Initialized?
242
1
Determining the Version of MPI
243
2
Other Functions in MPI
245
1
Application: Computational Fluid Dynamics
246
7
Parallel Formulation
246
2
Parallel Implementation
248
5
Understanding how MPI Implementations Work
253
8
Introduction
253
4
Sending Data
253
1
Receiving Data
254
1
Rendezvous Protocol
254
1
Matching Protocols to MPI's Send Modes
255
1
Performance Implications
256
1
Alternative MPI Implementation Strategies
257
1
Tuning MPI Implementations
257
1
How Difficult Is MPI to Implement?
257
1
Device Capabilities and the MPI Library Definition
258
1
Reliability of Data Transfer
259
2
Comparing MPI with Other Systems for Interprocess Communication
261
12
Sockets
261
5
Process Startup and Shutdown
263
2
Handling Faults
265
1
PVM 3
266
6
The Basics
267
1
Miscellaneous Functions
268
1
Colective Operations
268
1
MPI Counterparts of Other Features
269
1
Features Not in MPI
270
1
Process Startup
270
1
MPI and PVM related tools
271
1
Where to Learn More
272
1
Beyond Message Passing
273
6
Dynamic Process Management
274
1
Threads
275
1
Action at a Distance
276
1
Parallel I/O
277
1
MPI-2
277
1
Will There Be an MPI-3?
278
1
Final Words
278
1
Glossary of Selected Terms
279
74
A Summary of MPI-1 Routines and Their Arguments
289
40
B The MPICH Implementation of MPI
329
8
C The MPE Multiprocessing Environment
337
8
D MPI Resources on the World Wide Web
345
2
E Language Details
347
6
References
353
10
Subject Index
363
4
Function and Term Index
367