MPI - The Complete Reference / Edition 2

MPI - The Complete Reference / Edition 2

by Marc Snir, Jack Dongarra, Janusz S. Kowalik, Steven Huss-Lederman
     
 

ISBN-10: 0262692163

ISBN-13: 9780262692168

Pub. Date: 09/28/1998

Publisher: MIT Press

Since its release in summer 1994, the Message Passing Interface (MPI)
specification has become a standard for message-passing libraries for parallel computations. There exist more than a dozen implementations on a variety of computing platforms, from the IBM SP-2 supercomputer to PCs running Windows
NT.

Overview

Since its release in summer 1994, the Message Passing Interface (MPI)
specification has become a standard for message-passing libraries for parallel computations. There exist more than a dozen implementations on a variety of computing platforms, from the IBM SP-2 supercomputer to PCs running Windows
NT.

Product Details

ISBN-13:
9780262692168
Publisher:
MIT Press
Publication date:
09/28/1998
Series:
Scientific and Engineering Computation Series
Edition description:
2 Volume Set
Pages:
800
Product dimensions:
7.90(w) x 8.90(h) x 1.70(d)
Age Range:
18 Years

Table of Contents

Series Foreword xi(2)
Preface xiii
1 Introduction
1(24)
1.1 MPI-1
1(1)
1.2 MPI-2
2(1)
1.3 MPI Conventions and Design Choices
3(3)
1.3.1 Document Notation
3(1)
1.3.2 Naming Conventions
4(1)
1.3.3 Precedure Specification
5(1)
1.4 Semantic Terms
6(2)
1.5 Function Argument Data Types
8(4)
1.5.1 Opaque Objects
8(2)
1.5.2 Array Arguments
10(1)
1.5.3 State
10(1)
1.5.4 Named Constants
10(1)
1.5.5 Choice
11(1)
1.5.6 Addresses
12(1)
1.5.7 File Offsets
12(1)
1.6 Language Binding
12(8)
1.6.1 Deprecated Names and Functions
12(1)
1.6.2 Fortran Binding Issues
13(2)
1.6.3 C Binding Issues
15(1)
1.6.4 C++ Binding Issues
16(4)
1.7 Processes
20(1)
1.8 Error Handling
21(2)
1.9 Implementation Issues
23(2)
1.9.1 Independence of Basic Runtime Routines
23(1)
1.9.2 Interaction with Signals
24(1)
2 Miscellany
25(32)
2.1 MPI and Threads
25(9)
2.1.1 General
25(2)
2.1.2 Clarifications
27(1)
2.1.3 Initialization
28(6)
2.2 Language Interoperability
34(14)
2.2.1 Introduction
34(1)
2.2.2 Assumptions
34(1)
2.2.3 Initialization
35(1)
2.2.4 Transfer of Handles
35(5)
2.2.5 Status
40(1)
2.2.6 MPI Opaque Objects
41(1)
2.2.7 Attributes
42(4)
2.2.8 Constants
46(1)
2.2.9 Interlanguage Communication
47(1)
2.3 The Info Object
48(5)
2.4 Memory Allocation
53(4)
3 Process Creation and Management
57(36)
3.1 Introduction
57(1)
3.2 The MPI-2 Process Model
58(3)
3.2.1 Starting Processes
58(1)
3.2.2 The Runtime Environment
59(2)
3.3 Process Manager Interface
61(12)
3.3.1 Processes in MPI
61(1)
3.3.2 Starting Processes and Establishing Communication
61(6)
3.3.3 Starting Multiple Executables and Establishing Communication
67(3)
3.3.4 Reserved info Keys
70(1)
3.3.5 Manager-Worker Example, Using MPI_SPAWN
71(2)
3.4 Establishing Communication
73(13)
3.4.1 Names, Addresses, Ports, and All That
74(2)
3.4.2 Server Routines
76(2)
3.4.3 Client Routines
78(1)
3.4.4 Name Publishing
79(3)
3.4.5 Reserved Key Values
82(1)
3.4.6 Client/Server Examples
83(3)
3.5 Other Functionality
86(7)
3.5.1 Universe Size
86(1)
3.5.2 Singleton MPI_INIT
87(1)
3.5.3 MPI_APPNUM
88(1)
3.5.4 Releasing Connections
89(1)
3.5.5 Another Way to Establish MPI Communication
90(3)
4 One-Sided Communication
93(46)
4.1 Introduction
93(1)
4.2 Initialization
94(4)
4.2.1 Window Creation
94(3)
4.2.2 Window Attributes
97(1)
4.3 Communication Calls
98(10)
4.3.1 Put
99(3)
4.3.2 Get
102(1)
4.3.3 Examples
102(4)
4.3.4 Accumulate Function
106(2)
4.4 Synchronization Calls
108(17)
4.4.1 Fence
112(2)
4.4.2 General Active Target Synchronization
114(5)
4.4.3 Lock
119(4)
4.4.4 Assertions
123(2)
4.4.5 Miscellaneous Clarifications
125(1)
4.5 Examples
125(4)
4.6 Error Handling
129(1)
4.6.1 Error Handlers
129(1)
4.6.2 Error Classes
129(1)
4.7 Semantics and Correctness
129(10)
4.7.1 Atomicity
133(1)
4.7.2 Progress
134(2)
4.7.3 Registers and Compiler Optimizations
136(3)
5 Intercommunicator Collective Operations
139(6)
5.1 Introduction
139(2)
5.2 Collective Operations
141(4)
6 External Interfaces
145(40)
6.1 Introduction
145(1)
6.2 Generalized Requests
146(8)
6.2.1 Examples
151(3)
6.3 Associating Information with Status
154(2)
6.4 Naming Objects
156(4)
6.5 Error Classes, Error Codes, and Error Handlers
160(5)
6.6 Decoding a Datatype
165(11)
6.7 Caching on Windows and on Datatypes
176(9)
6.7.1 Windows
176(3)
6.7.2 Datatypes
179(6)
7 I/O
185(90)
7.1 Introduction
185(4)
7.1.1 Definitions
186(2)
7.1.2 Constraints on filetypes and etypes
188(1)
7.2 File Manipulation
189(11)
7.2.1 Opening a File
189(3)
7.2.2 Closing a File
192(1)
7.2.3 Deleting a File
192(1)
7.2.4 Resizing a File
193(1)
7.2.5 Preallocating Space for a File
194(1)
7.2.6 Querying the Size of a File
195(1)
7.2.7 Querying File Parameters
195(1)
7.2.8 File Info
196(4)
7.3 File Views
200(3)
7.4 Data Access
203(27)
7.4.1 Data Access Routines
203(3)
7.4.2 Data Access with Explicit Offsets
206(4)
7.4.3 Data Access with Individual File Pointers
210(7)
7.4.4 Data Access with Shared File Pointers
217(6)
7.4.5 Split Collective Data Access Routines
223(7)
7.5 File Interoperability
230(12)
7.5.1 Datatypes for File Interoperability
232(2)
7.5.2 External Data Representation: external32
234(1)
7.5.3 User-Defined Data Representations
235(6)
7.5.4 Matching Data Representations
241(1)
7.6 Consistency and Semantics
242(12)
7.6.1 File Consistency
242(4)
7.6.2 Random Access versus Sequential Files
246(1)
7.6.3 Progress
246(1)
7.6.4 Collective File Operations
247(1)
7.6.5 Type Matching
247(1)
7.6.6 Miscellaneous Clarifications
247(1)
7.6.7 MPI_Offset Type
248(1)
7.6.8 Logical versus Physical File Layout
248(1)
7.6.9 File Size
248(1)
7.6.10 Consistency and Semantics Examples
249(5)
7.7 I/O Error Handling
254(1)
7.8 I/O Error Classes
255(2)
7.9 Examples
257(18)
7.9.1 Example: I/O to Separate Files
257(1)
7.9.2 Example: Log File
258(1)
7.9.3 Example: Writing a Large Matrix to a Single File
259(4)
7.9.4 Example: NAS BT Benchmark
263(9)
7.9.5 Example: Double Buffering with Split Collective I/O
272(3)
8 Language Bindings
275(48)
8.1 C++
275(26)
8.1.1 Overview
275(1)
8.1.2 Design
275(1)
8.1.3 C++ Classes for MPI
276(1)
8.1.4 Class Member Functions for MPI
277(1)
8.1.5 Semantics
278(2)
8.1.6 C++ Datatypes
280(1)
8.1.7 Communicators
281(5)
8.1.8 Exceptions
286(1)
8.1.9 Mixed-Language Operability
287(1)
8.1.10 Profiling
287(4)
8.1.11 Cross-Reference
291(10)
8.2 Fortran Support
301(22)
8.2.1 Overview
301(1)
8.2.2 Problems with Fortran Bindings for MPI
302(8)
8.2.3 Basic Fortran Support
310(1)
8.2.4 Extended Fortran Support
310(2)
8.2.5 Additional Support for Fortran Numeric Intrinsic Types
312(11)
9 Conclusions
323(4)
9.1 Extensions to MPI
323(2)
9.2 Implementation and Adoption of MPI-2
325(2)
References 327(2)
Constants Index 329(4)
Function Index 333(6)
Index 339

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >