There are four different techniques for communicating between processes that are popular in the T3E programming environment. Two of these techniques use library calls, which can be accessed by any programming language, and two are extensions to Fortran.
MPI is a standard, portable library of subroutines for explicit message passing. Typically an MPI implementation of an algorithm will have the largest amount of communication overhead, but is also the most portable. MPI libraries are available on many computer systems, including those from Cray and SGI.
SHMEM is a library of subroutines for explicit data passing. Communication via SHMEM is one-sided, meaning that only one process of a parallel application calls a subroutine to complete the communication. Because of its lower communication overhead, SHMEM is often the preferred technique for T3E programming. It is portable to Cray and SGI systems, but is not portable to other computer systems.
This new extension of the Fortran programming language allows explicit communication between processes of a parallel application. It is only available on Cray systems, so it is the least portable of the three communication techniques.
HPF is a superset of Fortran 90 which incorporates a data mapping model and associated directives which allow the programmer to specify how data is logically distributed in a Fortran application. As part of a cooperative effort between Cray Research and The Portland Group, support for Cray's CRAFT programming model has been added to PGHPF.
While HPF is available for most computer systems, the CRAFT extension is only available on the T3E. The CRAFT extension primarily a means of porting programs written for the T3D.
Other techniques available include the use of the PVM message-passing library or the use of low-level programming to directly access the T3E E-register hardware.
CRAY T3E Fortran Optimization Guide
An overview of the T3E Fortran programming environment, including SHMEM and PVM.
CRAY T3E C and C++ Optimization Guide
C/C++ programming on the T3E, including SHMEM and PVM.
Message Passing Toolkit: MPI Programmer's Manual
MPI library description for Cray systems.
CF90 Co-array Programming Manual
A description of the F90 Co-array syntax and usage.
Introducing the MPP Apprentice Tool
Introduction to the MPP Apprentice, a performance analysis tool.
mpt_intro - Introduces the Cray Message Passing Toolkit and Message PassingToolkit
MPT_INTRO(1) man page (from techpubs).
intro_shmem (3) - Introduction to logically shared memory access routines
INTRO_SHMEM(3) library man page (from techpubs).
MPI (1) - Introduction to the Message Passing Interface (MPI)
MPI(1) library man page (from techpubs).
Guidelines for Programming T3E Streams
Guidelines for safely using the T3E streams hardware
to increase application performance.
PGHPF for the T3E,
PGHPF/CRAFT User's Guide,
PGHPF/CRAFT Man Page
The Portland Group's HPF for the T3E.