Skip to Main Content U.S. Department of Energy
PNNL: High Performance Computing


TCGMSG-MPI library is an implementation of the TCGMSG message passing programming interface on top of the MPI (Message Passing Interface) and system specific resources. It has been developed to aid in migration of existing TCGMSG applications to the current message passing standard interface.By employing TCGMSG-MPI, it becomes possible to use both MPI and TCGMSG interfaces in the same application.

TCGMSG offers a much smaller set of operations than MPI. However, some of its operations do not have counterparts in MPI. They include:

  • nxtval (a shared memory counter with atomic updates, often used in dynamic load balancing algorithms)
  • pfcopy (copies content of a sequential file to all processes)
  • mitob, mdtob, ...(portable Fortran equivalents of the C sizeof operator)

The nxtval operation in TCGMSG-MPI is implemented on different platforms using:

  • shared memory and mutexes or semaphores (SGI Origin-X),
  • interrupt receive (IBM SP under the MPL and signal-based implementation of MPI library, Intel NX),
  • atomic read-modify-write (IBM SP under the LAPI communication library and thread-safe MPI),
  • SHMEM library (Cray T3D/E),
  • MPlib on Fujitsu VX/VPP, or
  • dedicated MPI process (nxtval server implemented in a manner similar to described in Section 7.1 of the "Using MPI" book by Gropp, Lusk and Skjellum)

The nxtval server implementation is portable but least efficient. It also removes one process from the MPI process group that runs the application code.

Other Referenes

  • TCGMSG programming interface
  • Section 9.9 of the "Using MPI" book on porting TCGMSG codes to MPI

Site Links

Our Research

Past Research

Global Arrays Links

News and Events