TCGMSG-MPI
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 References
Distribution
The latest copy of the TCGMSG-MPI
library is distributed
with the Global Arrays package without charge, along with a set of
example applications.
For the Fujitsu port, please
contact Ross Nobess nobes@fecit.co.uk.