Using MPI
Subtitle: portable parallel programming with the message-passing interface
By: William Gropp, Ewing Lusk, Anthony Skjellum.
Contributors: Lusk, Ewing.; Skjellum, Anthony.
Series: Scientific and engineering computation
Publisher: MIT Press
Published: 1994
Place of publication: Cambridge, Mass
Language: eng
Number of pages: 307
Subjects: Parallel programming (Computer science); Parallel computers -- Programming.; Computer interfaces.
Notes: Includes bibliographical references (p. [295]-299) and indexes.
Table of contents: title: Series Foreword
pagenum: xiii; title: Preface
pagenum: xv; label: 1
title: Background
pagenum: 1; label: 1.1
title: Why Parallel Computing?
pagenum: 1; label: 1.2
title: Obstacles to Progress
pagenum: 2; label: 1.3
title: Why Message Passing?
pagenum: 3; label: 1.3.1
title: Parallel Computational Models
pagenum: 3; label: 1.3.2
title: Advantages of the Message-Passing Model
pagenum: 7; label: 1.4
title: Current Message-Passing Systems
pagenum: 9; label: 1.5
title: The MPI Forum
pagenum: 9; label: 2
title: What's New about MPI?
pagenum: 11; label: 2.1
title: A New Point of View
pagenum: 11; label: 2.2
title: What's Not New?
pagenum: 11; label: 2.3
title: Basic MPI Concepts
pagenum: 12; label: 2.4
title: Other Interesting Features of MPI
pagenum: 15; label: 2.5
title: Is MPI Large or Small?
pagenum: 17; label: 2.5.1
title: MPI Is Large (125 Functions)
pagenum: 18; label: 2.5.2
title: MPI Is Small (6 Functions)
pagenum: 18; label: 2.5.3
title: MPI Is Whatever Size You Like
pagenum: 18; label: 2.6
title: Decisions Left to the Implementor
pagenum: 19; label: 3
title: Using MPI in Simple Programs
pagenum: 21; label: 3.1
title: A First MPI Program
pagenum: 21; label: 3.2
title: Running Your First MPI Program
pagenum: 25; label: 3.3
title: A First MPI Program in C
pagenum: 26; label: 3.4
title: Timing MPI Programs
pagenum: 27; label: 3.5
title: A Self-Scheduling Example: Matrix-Vector Multiplication
pagenum: 29; label: 3.6
title: Studying Parallel Performance
pagenum: 36; label: 3.6.1
title: Elementary Scalability Calculations
pagenum: 37; label: 3.6.2
title: Gathering Data on Program Execution
pagenum: 39; label: 3.6.3
title: Instrumenting a Parallel Program with MPE Logging
pagenum: 40; label: 3.6.4
title: Events and States
pagenum: 40; label: 3.6.5
title: Instrumenting the Matrix-Matrix Multiply Program
pagenum: 41; label: 3.6.6
title: Notes on Implementation of Logging
pagenum: 43; label: 3.6.7
title: Examining Logfiles with Upshot
pagenum: 46; label: 3.7
title: Using Communicators
pagenum: 47; label: 3.8
title: A Handy Graphics Library for Parallel Programs
pagenum: 53; label: 3.9
title: Application: Determination of Nuclear Structures
pagenum: 56; label: 3.10
title: Summary of a Simple Subset of MPI
pagenum: 58; label: 4
title: Intermediate MPI
pagenum: 59; label: 4.1
title: The Poisson Problem
pagenum: 60; label: 4.2
title: Topologies
pagenum: 63; label: 4.3
title: A Code for the Poisson Problem
pagenum: 71; label: 4.4
title: Using Nonblocking Communications
pagenum: 80; label: 4.5
title: Synchronous Sends and "Safe" Programs
pagenum: 82; label: 4.6
title: More on Scalability
pagenum: 83; label: 4.7
title: Jacobi with a 2-D Decomposition
pagenum: 86; label: 4.8
title: An MPI Derived Datatype
pagenum: 87; label: 4.9
title: Overlapping Communication and Computation
pagenum: 88; label: 4.10
title: More on Timing Programs
pagenum: 93; label: 4.11
title: Three Dimensions
pagenum: 94; label: 4.12
title: Application: Simulating Vortex Evolution in Superconducting Materials
pagenum: 94; label: 5
title: Advanced Message Passing in MPI
pagenum: 97; label: 5.1
title: MPI Datatypes
pagenum: 97; label: 5.1.1
title: Basic Datatypes and Concepts
pagenum: 97; label: 5.1.2
title: Derived Datatypes
pagenum: 100; label: 5.2
title: The N-Body Problem
pagenum: 102; label: 5.2.1
title: Gather
pagenum: 103; label: 5.2.2
title: Nonblocking Pipeline
pagenum: 107; label: 5.2.3
title: Moving Particles between Processes
pagenum: 108; label: 5.2.4
title: Sending Dynamically Allocated Data
pagenum: 113; label: 5.2.5
title: User-Controlled Data Packing
pagenum: 114; label: 5.3
title: Visualizing the Mandelbrot Set
pagenum: 116; label: 5.4
title: Gaps in Datatypes
pagenum: 124; label: 6
title: Parallel Libraries
pagenum: 127; label: 6.1
title: Motivation
pagenum: 127; label: 6.1.1
title: The Need for Parallel Libraries
pagenum: 127; label: 6.1.2
title: Common Deficiencies of Message-Passing Systems
pagenum: 128; label: 6.1.3
title: Review of MPI Features That Support Libraries
pagenum: 128; label: 6.2
title: A First MPI Library
pagenum: 129; label: 6.3
title: Linear Algebra on Grids
pagenum: 137; label: 6.3.1
title: Mappings and Logical Grids
pagenum: 139; label: 6.3.2
title: Vectors and Matrices
pagenum: 145; label: 6.3.3
title: Components of a Parallel Library
pagenum: 146; label: 6.4
title: The LINPACK Benchmark in MPI
pagenum: 149; label: 6.5
title: Strategies for Library Building
pagenum: 152; label: 7
title: Other Features of MPI
pagenum: 155; label: 7.1
title: Simulating Shared-Memory Operations
pagenum: 155; label: 7.1.1
title: Shared vs. Distributed Memory
pagenum: 155; label: 7.1.2
title: A Counter Example
pagenum: 156; label: 7.1.3
title: The Shared Counter Using Polling Instead of an Extra Process
pagenum: 157; label: 7.1.4
title: Shared Memory on Distributed-Memory Machines
pagenum: 162; label: 7.2
title: Application: Full-Configuration Interaction
pagenum: 163; label: 7.3
title: Advanced Collective Operations
pagenum: 164; label: 7.3.1
title: Data Movement
pagenum: 164; label: 7.3.2
title: Collective Computation
pagenum: 164; label: 7.3.3
title: User-Defined Operations
pagenum: 166; label: 7.3.4
title: Other Collective Operations
pagenum: 167; label: 7.4
title: Intercommunicators
pagenum: 167; label: 7.5
title: Heterogeneous Computing
pagenum: 173; label: 7.6
title: The MPI Profiling Interface
pagenum: 174; label: 7.7
title: Error Handling
pagenum: 178; label: 7.7.1
title: Error Handlers
pagenum: 178; label: 7.7.2
title: User-Defined Error Handlers
pagenum: 180; label: 7.7.3
title: Terminating MPI Programs
pagenum: 181; label: 7.8
title: Environmental Inquiry
pagenum: 181; label: 7.8.1
title: Processor Name
pagenum: 183; label: 7.8.2
title: Is MPI Initialized?
pagenum: 184; label: 7.9
title: Other Functions in MPI
pagenum: 184; label: 7.10
title: Application: Computational Fluid Dynamics
pagenum: 185; label: 7.10.1
title: Parallel Formulation
pagenum: 186; label: 7.10.2
title: Parallel Implementation
pagenum: 188; label: 8
title: Implementing MPI
pagenum: 191; label: 8.1
title: Introduction
pagenum: 191; label: 8.2
title: Sending and Receiving
pagenum: 193; label: 8.2.1
title: Sending a message
pagenum: 194; label: 8.2.2
title: Receiving a Message
pagenum: 195; label: 8.3
title: Data Transfer
pagenum: 195; label: 8.3.1
title: Transfers to and from the ADI
pagenum: 196; label: 8.3.2
title: Noncontiguous Data
pagenum: 197; label: 8.4
title: Message Queuing
pagenum: 197; label: 8.5
title: Unexpected Messages
pagenum: 198; label: 8.6
title: Device Capabilities and the MPI Library Definition
pagenum: 199; label: 9
title: Dusty Decks: Porting Existing Message-Passing Programs to MPI
pagenum: 201; label: 9.1
title: Intel NX
pagenum: 202; label: 9.2
title: IBM EUI
pagenum: 206; label: 9.3
title: TMC CMMD
pagenum: 208; label: 9.4
title: Express
pagenum: 210; label: 9.5
title: PVM 2.4.x
pagenum: 212; label: 9.6
title: PVM 3.2.x
pagenum: 217; label: 9.7
title: p4
pagenum: 220; label: 9.8
title: PARMACS
pagenum: 223; label: 9.9
title: TCGMSG
pagenum: 227; label: 9.10
title: Chameleon
pagenum: 230; label: 9.11
title: Zipcode
pagenum: 233; label: 9.12
title: Where to Learn More
pagenum: 237; label: 10
title: Beyond Message Passing
pagenum: 239; label: 10.1
title: Dynamic Processes
pagenum: 240; label: 10.2
title: Threads
pagenum: 242; label: 10.3
title: Action at a Distance
pagenum: 244; label: 10.4
title: Parallel I/O
pagenum: 245; label: 10.5
title: Will There Be an MPI-2?
pagenum: 246; label: 10.6
title: Final Words
pagenum: 246; title: Glossary of Selected Terms
pagenum: 247; label: A
title: Summary of MPI Routines and Their Arguments
pagenum: 255; label: B
title: The Model MPI Implementation
pagenum: 279; label: C
title: The MPE Multiprocessing Environment Functions
pagenum: 283; label: D
title: MPI Resources on the Information Superhighway
pagenum: 289; label: E
title: Language Details
pagenum: 291; title: Bibliography
pagenum: 295; title: Subject Index
pagenum: 301; title: Function and Term Index
pagenum: 305