The Cray Message Passing Toolkit and 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.3 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. Silicon Graphics 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.
This manual contains instructions for building, installing, and using the MPT implementation of PVM-3. The MPT version of PVM supports IRIX, UNICOS, and UNICOS/mk 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 contains architecture-specific enhancements that target Cray PVP systems. The PVM library can also function as a stand-alone library within a single Cray PVP machine. This stand-alone library makes use of Cray multitasking software, offering enhanced communication performance by allowing PVM tasks to communicate through memory instead of through sockets.
For IRIX systems, 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.
By default, for UNICOS and UNICOS/mk systems, communication is based on data transfers over UNIX domain sockets between UNIX processes on the same system or over TCP sockets between processes on different systems. For IRIX systems, the 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, such as memory for communication within a UNICOS system. 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. On UNICOS systems you can use NQE load balancing for choosing the virtual machine and for placing spawned tasks. This is described in more detail in Chapter 2, “PVM Functionality”. For more information about NQE, see the NQE User's Guide, and NQE Administration.
On UNICOS/mk systems, the PVM library can also function as a stand-alone library within a single executable file. This mode allows you to use PVM to communicate among PEs within a multiple PE process (that is, a single executable file). This mode uses shmem calls to communicate between PEs.
As described in this manual, Silicon Graphics 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 Silicon Graphics 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 Silicon Graphics systems. The PVM software system consists of a library and commands that support PVM. The PVM software provided by Silicon Graphics has been developed specifically for each system on which it runs.
You may choose to use PVM to communicate among processes on a number of different computer systems. With PVM available on all types of Silicon Graphics systems and a large number of systems from other vendors, you have a large number of combinations of systems and clusters of systems available.
However, in the context of Silicon Graphics systems, this large number of combinations can be grouped into five basic scenarios. Each scenario describes a particular combination of systems that can be defined by the form and cost of the underlying communications mechanism used by PVM.
The following terminology is used in describing these scenarios and elsewhere in this manual:
| Term | Definition | |
| task | The entity that uses PVM for communications. This entity can be a UNIX process or a Cray multitasked task. | |
| application | A number of tasks running the same program. | |
| process | The entity running on the UNICOS, UNICOS/mk, or IRIX operating system or another UNIX system. |
The following scenarios are listed approximately in order of increasing cost of communication:
Two processes running on a single UNICOS system. (PVM can use either networking capabilities or memory for communication.)
One executable file running on a UNICOS/mk or UNICOS MAX system. (PVM uses high-performance connections between the tasks on the processing elements in the partition.) This scenario requires only the CRAY T3D version of PVM, as part of the Programming Environment, or Cray MPT version for UNICOS/mk systems in stand-alone mode.
One or more executable files running on an IRIX system. (POSIX shared memory is used between processes.) This scenario requires MPT for IRIX.
One process running on a UNICOS, IRIX, or UNICOS/mk system and a second process running on a second UNICOS, IRIX, or UNICOS/mk system. (PVM is used across the network between the two systems.)
Two processes on separate partitions on a single UNICOS/mk system. PVM uses the network to communicate between the two partitions. This scenario requires the MPT version of PVM.
One process running on a UNICOS system and another process running on an associated UNICOS MAX system. (PVM connects across the channel between the two systems.) This scenario requires the MPT version and the CRAY T3D version of PVM, available from the Programming Environment.
Two processes running on separate partitions on a single UNICOS MAX system. (PVM uses network communications through an associated UNICOS system.) This scenario requires the MPT version and the CRAY T3D version of PVM.
The preceding scenarios represent a range of simple uses of PVM; more complex scenarios involving combinations of those described can easily be formed. The following characteristics apply to all PVM scenarios:
The user building an executable file for use on a Silicon Graphics 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.