IBM Books

MPI Programming and Subroutine Reference

About This Book

This book lists the subroutines a programmer can use when writing parallel applications along with the associated parameters, and syntax. The IBM Message Passing Interface implementation intends to comply with the requirements of the Message Passing Interface Forum, MPI: A Message-Passing Interface Standard, Version 1.1, University of Tennessee, Knoxville, Tennessee, June 6, 1995 and MPI-2: Extensions to the Message-Passing Interface, University of Tennessee, Knoxville, Tennessee, July 18, 1997. In addition, this book provides brief introductory information regarding parallel programming.

Who Should Use This Book

This book is intended for experienced programmers who want to write parallel applications using either the C or Fortran programming languages. Readers of this book should know C and Fortran and should be familiar with AIX and UNIX commands, file formats, and special files. They should also be familiar with the Message Passing Interface (MPI) concepts. In addition, readers should be familiar with distributed-memory machines.

How This Book Is Organized

Overview of Contents

This book is divided into the following sections:

Typographic Conventions

This book uses the following typographic conventions:
Type Style Used For
Bold Bold words or characters represent system elements that you must use literally, such as command names, program names, file names, flag names, and path names.

Bold words also indicate the first use of a term included in the glossary.

Italic Italic words or characters represent variable values that you must supply.

Italics are also used for book titles and for general emphasis in text.

Constant width Examples and information that the system displays appear in constant width typeface.

How Fortran and C Are Documented

C is case-sensitive. Fortran is not case-sensitive. This means that unless you use the XLF complier option -qmixed, case does not matter in Fortran subroutine names. However, to ensure MPI standard compliant code, it is suggested that all Fortran subroutine names use uppercase. The C subroutines must be entered exactly as specified.

For the purpose of distinguishing between the C and Fortran syntax in this document, C is documented in mixed case. Fortran subroutines are documented in all upper case and are referred to as Fortran throughout the book.

For both C and Fortran, the Message Passing Interface (MPI) uses the same spelling for function names. The only distinction is in the capitalization. For the purpose of clarity, when referring to a function without specifying C or Fortran version, the function is in all uppercase.

Related Publications

IBM Parallel Environment for AIX Publications

As an alternative to ordering the individual books, you can use SBOF-8588 to order the entire IBM Parallel Environment for AIX library.

Related IBM Publications

Related Non-IBM Publications

Permission to copy without fee all or part of Message Passing Interface Forum material is granted, provided the University of Tennessee copyright notice and the title of the document appear, and notice is given that copying is by permission of the University of Tennessee. ©1993, 1997 University of Tennessee, Knoxville, Tennessee.

For more information about the Message Passing Interface Forum and the MPI standards documents, see:

National Language Support

For National Language Support (NLS), all PE components and tools display messages located in externalized message catalogs. English versions of the message catalogs are shipped with the PE program product, but your site may be using its own translated message catalogs. The AIX environment variable NLSPATH is used by the various PE components to find the appropriate message catalog. NLSPATH specifies a list of directories to search for message catalogs. The directories are searched, in the order listed, to locate the message catalog. In resolving the path to the message catalog, NLSPATH is affected by the values of the environment variables LC_MESSAGES and LANG. If you get an error saying that a message catalog is not found, and want the default message catalog:

export NLSPATH=/usr/lib/nls/msg/%L/%N

export LANG=C

The PE message catalogs are in English, and are located in the following directories:


If your site is using its own translations of the message catalogs, consult your system administrator for the appropriate value of NLSPATH or LANG. For additional information on NLS and message catalogs, see IBM Parallel Environment for AIX: Messages and IBM AIX Version 4 General Programming Concepts: Writing and Debugging Programs

Accessing Online Information

In order to use the PE man pages or access the PE online (HTML) publications, the ppe.pedocs file set must first be installed. To view the PE online publications, you also need access to an HTML document browser such as Netscape. An index to the HTML files that are provided with the ppe.pedocs file set is installed in the /usr/lpp/ppe.pedocs/html directory.

Online Information Resources

If you have a question about the SP, PSSP, or a related product, the following online information resources make it easy to find the information:

Getting the Books and the Examples Online

All of the PE books are available in Portable Document Format (PDF). They are included on the product media (tape or CD-ROM), and are part of the ppe.pedocs file set. If you have a question about the location of the PE softcopy books, see your system administrator.

To view the PE PDF publications, you need access to the Adobe Acrobat Reader 3.0.1. The Acrobat Reader is shipped with the AIX Version 4.3 Bonus Pack, or you can download it for free from Adobe's site:

As stated above, you can also view or download the PE books from the IBM RS/6000 Web site at:

At the time this manual was published, the full path was:

However, note that the structure of the RS/6000 Web site can change over time.

What's New in PE 2.4?

AIX 4.3 Support

With PE 2.4, POE supports user programs developed with AIX 4.3. It also supports programs developed with AIX 4.2, intended for execution on AIX 4.3.

Parallel Checkpoint/Restart

This release of PE provides a mechanism for temporarily saving the state of a parallel program at a specific point (checkpointing), and then later restarting it from the saved state. When a program is checkpointed, the checkpointing function captures the state of the application as well as all data, and saves it in a file. When the program is restarted, the restart function retrieves the application information from the file it saved, and the program then starts running again from the place at which it was saved.

Enhanced Job Management Function

In earlier releases of PE, POE relied on the SP Resource Manager for performing job management functions. These functions included keeping track of which nodes were available or allocated and loading the switch tables for programs performing User Space communications. LoadLeveler, which had only been used for batch job submissions in the past, is now replacing the Resource Manager as the job management system for PE. One notable effect of this change is that LoadLeveler now allows you to run more than one User Space task per node.


With PE 2.4, the MPI library now includes support for a subset of MPI I/O, described by Chapter 9 of the MPI-2 document: MPI-2: Extensions to the Message-Passing Interface, Version 2.0. MPI-I/O provides a common programming interface, improving the portability of code that involves parallel I/O.

1024 Task Support

This release of PE supports a maximum of 1024 tasks per User Space MPI/LAPI job, as opposed to the previous release, which supported a maximum of 512 tasks. For jobs using the IP version of the MPI library, PE supports a maximum of 2048 tasks.

Enhanced Compiler Support

In this release, POE is adding support for the following compilers:

Xprofiler Enhancements

This release includes a variety of enhancements to Xprofiler, including:

Message Queue Facility

The pedb debugger now includes a message queue facility. Part of the pedb debugger interface, the message queue viewing feature can help you debug Message Passing Interface (MPI) applications by showing internal message request queue information. With this feature, you can view:

[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]