SGI Techpubs Library

Linux  »  Books  »  Developer  »  
Message Passing Toolkit (MPT) User's Guide
(document number: 007-3773-012 / published: 2009-10-22)    table of contents  |  additional info  |  download
find in page

Chapter 1. Introduction

Message Passing Toolkit (MPT) is a software package that supports interprocess data exchange for applications that use concurrent, cooperating processes on a single host or on multiple hosts. Data exchange is done through message passing, which is the use of library calls to request data delivery from one process to another or between groups of processes.

The MPT package contains the following components and the appropriate accompanying documentation:

  • Message Passing Interface (MPI). MPI is a standard specification for a message passing interface, allowing portable message passing programs in Fortran and C languages.

  • The SHMEM programming model. The SHMEM programming model is a distributed, shared-memory model that consists of a set of SGI proprietary message-passing library routines. These routines help distributed applications efficiently transfer data between cooperating processes. The model is based on multiple processes having separate address spaces, with the ability for one process to access data in another process' address space without interrupting the other process. The SHMEM programming model is not a standard like MPI, so SHMEM applications developed on other vendors' hardware might or might not work with the SGI SHMEM implementation.

SGI MPT is highly optimized for SGI Altix XE and SGI Altix ICE systems, as well as, InfiniBand-based Altix 4700 and Altix 450 clusters. SGI hardware manuals for these systems contain descriptions of their unique architectures. The SGI ProPack 6 for Linux Service Pack 5 Start Here lists all current SGI hardware manuals and can be found on the SGI Technical Publications Library at: http://docs.sgi.com .

This chapter provides an overview of the MPI software that is included in the toolkit. This overview includes a description of the MPI-2 Standard features that are provided, a description of the basic components of MPI, and a description of the basic features of MPI. Subsequent chapters address the following topics:

MPI Overview

MPI was created by the Message Passing Interface Forum (MPIF). MPIF is not sanctioned or supported by any official standards organization. Its goal was to develop a widely used standard for writing message passing programs.

SGI supports implementations of MPI that are released as part of the Message Passing Toolkit. The MPI Standard is documented online at the following address:

http://www.mcs.anl.gov/mpi

MPI-2 Standard Compliance

The SGI MPI implementation is compliant with the 1.0, 1.1, and 1.2 versions of the MPI Standard specification. In addition, the following MPI-2 features (with section numbers from the MPI-2 Standard specification) are provided:

Feature

Section

Generalized requests

4.5.2

MPI_Alloc_mem/MPI_Free_mem

4.11

Transfer of handles

4.12.4

MPI-2 replacements for deprecated MPI-1 functions

4.14.1

New Datatypes

4.15

MPI spawn functionality

5.3

MPI-2 one-sided communication routines (put/ get model)

6

Extended Collectives

7

New attribute caching functions

8.8

MPI-2 parallel I/O

9

Extended language bindings for C++ and partial Fortran 90 support

10.1, 10.2.4

MPI Components

The MPI library is provided as a dynamic shared object (DSO) (a file with a name that ends in .so). The basic components that are necessary for using MPI are the libmpi.so library, the include files, and the mpirun command.

Profiling support is included in the libmpi.so library. Profiling support replaces all MPI_Xxx prototypes and function names with PMPI_Xxx entry points.

SGI MPI Features

The SGI MPI implementation offers a number of significant features that make it the preferred implementation to use on SGI hardware:

  • Data transfer optimizations for NUMAlink where available, including single-copy data transfer

  • Multi-rail InfiniBand suppot to take full advantage of the multiple InfiniBand fabrics available on SGI Altix ICE systems

  • Use of hardware fetch operations (fetchops), where available, for fast synchronization and lower latency for short messages

  • Optimized MPI-2 one-sided commands

  • Interoperability with the SHMEM (LIBSMA) programming model

  • High performance communication support for partitioned systems via XPMEM

  • Internet Wide Area RDMA Protocol (iWARP) support to take advantage of the Remote DMA capabilities of 10-Gigabit Ethernet

Message Passing Toolkit (MPT) User's Guide
(document number: 007-3773-012 / published: 2009-10-22)    table of contents  |  additional info  |  download

    Front Matter
    New Features in This Manual
    About This Manual
    Chapter 1. Introduction
    Chapter 2. Administrating MPT
    Chapter 3. Getting Started
    Chapter 4. Programming with SGI MPI
    Chapter 5. Debugging MPI Applications
    Chapter 6. Profiling MPI Applications
    Chapter 7. Run-time Tuning
    Chapter 8. MPI Performance Profiling
    Chapter 9. Troubleshooting and Frequently Asked Questions
    Index


home/search | what's new | help