Message Passing Toolkit: MPI Programmer's Manual

Document Number: 007 -3687-010

Front Matter

| List of Figures | List of Tables | List of Procedures |


Table of Contents

New Features in This Manual

About This Manual
Related Publications and Other Sources
Obtaining Publications
Conventions
Reader Comments

1. Introduction
MPI Overview

2. Getting Started
Compiling and Linking IRIX MPI Programs
Compiling and Linking Linux MPI Programs
Using mpirun to Launch an MPI Application
Compiling and Running SHMEM Applications on IRIX Systems
Compiling and Running SHMEM Applications on Linux Systems

3. Programming with SGI MPI
Job Termination and Error Handling
Signals
Buffering
Multithreaded Programming
Interoperability with SHMEM
Miscellaneous Features of SGI MPI
Programming Optimizations
Additional Programming Model Considerations

4. Debugging MPI Applications
MPI Routine Argument Checking
Using the ProDev™ WorkShop Debugger with MPI Programs
Using TotalView with MPI programs
Using dbx and gdb with MPI programs

5. Profiling MPI Applications
Using Profiling Tools with MPI Applications
Profiling Interface
MPI Internal Statistics
Performance Co-Pilot (PCP)
Third Party Products

6. Run-time Tuning
Reducing Run-time Variability
Tuning MPI Buffer Resources
Avoiding Message Buffering - Enabling Single Copy
Memory Placement and Policies
Tuning MPI/OpenMP Hybrid Codes
Tuning for Running Applications Across Multiple Hosts

7. Troubleshooting and Frequently Asked Questions
What are some things I can try to figure out why mpirun is failing?
My code runs correctly until it reaches MPI_Finalize() and then it hangs.
I keep getting error messages about MPI_REQUEST_MAX being too small, no matter how large I set it.
I am not seeing stdout and/or stderr output from my MPI application.
How can I get the MPT software to install on my machine?
Where can I find more information about SHMEM?
The ps(1) command says my memory use (SIZE) is higher than expected.
What does MPI: could not run executable mean?
How do I combine MPI with insert favorite tool here?
Must I use MPIO_Wait() and MPIO_Test()?
Must I modify my code to replace calls to MPIO_Wait() with MPI_Wait() and recompile?
Why do I see “stack traceback” information when my MPI job aborts?

Index