Chapter 1. Overview
Prev |  | Next

## Chapter 1. Overview

The Message Passing Toolkit for IRIX (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 1.5 package contains the following components and the appropriate accompanying documentation:

- Parallel Virtual Machine (PVM)

- Message Passing Interface (MPI)

- Logically shared, distributed memory (SHMEM) data-passing routines

The Parallel Virtual Machine (PVM) software was initially developed to enable a collection of heterogeneous computer systems to be used as a coherent and flexible concurrent computation resource. SGI has taken this initial implementation and extended it in several ways.

This chapter provides an overview of the PVM software that is included in the toolkit.

## The PVM Package

This manual contains instructions for building, installing, and using the MPT implementation of PVM-3 on IRIX systems. It consists of a PVM library and several commands that support PVM. The most important of these is a user-level daemon that runs on each computer system in the PVM system.

The MPT version of PVM has enhancements to use POSIX shared memory, which provides greater flexibility and robustness than did the previously used IRIX shared arenas.

Default communication is based on TCP sockets between processes on the same system and between different systems. Transfer speeds are relatively slow when sockets are used as the mechanism for communication. The MPT version of PVM also provides alternative mechanisms for communication. The socket communication has been optimized to utilize high-speed network devices more effectively. The different communication mechanisms are discussed further in the PVM man pages, and the communication costs (in time, resources, and so on) associated with the different communication mechanisms are discussed in Chapter 2, “PVM Functionality”.

PVM has been integrated with the Network Queuing Environment (NQE) so that you can use PVM within a batch job in isolation from other PVM jobs. For more information about NQE, see the NQE User's Guide, and NQE Administration.

## PVM on SGI Systems

As described in this manual, SGI provides versions of PVM to support a variety of needs. These versions provide users with a single subroutine interface for message passing programming; this interface is portable and a de facto standard. PVM is available from its developers as public domain software and is being made available as vendor-supported software by SGI and a number of other computer vendors. By using PVM in your application, you can avoid being locked into a proprietary interface.

PVM is supported on all SGI systems. The PVM software system consists of a library and commands that support PVM. The PVM software provided by SGI has been developed specifically for each system on which it runs.

You can choose to use PVM to communicate among processes on a number of different computer systems. The following characteristics apply to all PVM system combinations:

- The user building an executable file for use on an SGI system links with a single PVM library, regardless of how PVM is used.

- The same standard library syntax and behavior are supported, regardless of how PVM is used (although certain releases may support features not appropriate to other releases).

- The performance of PVM in different basic scenarios differs significantly; this difference influences the communications strategy that should be used.

## PVM Terminology

The following PVM terminology is used in this manual:

Term |  | Definition
task |  | The UNIX process that uses PVM for communications.
application |  | A number of tasks running the same program.
process |  | The entity running on the IRIX operating system or another UNIX system.

Prev | Table of Contents | Next
About This Manual |  | Chapter 2. PVM Functionality