Writing Applications for the Cray T3E

Communication Techniques

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.

  1. MPI message-passing library

    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.

  2. SHMEM data-passing library

    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.

  3. Co-array Fortran programming language

    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.

  4. The Portland Group's HPF/CRAFT

    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.

Additional References from the Cray Publications Library

Further Reading


Last updated Fri Jan 12 15:59:57 CST 2001 by Kevin Thomas.