TCGMSG Send/receive subroutines ... version 3.1 (March 1991)
Robert J. Harrison
tel: (708) 972-7197
E-mail: harrison -AatT- tcg.anl.gov, harrison -AatT- anlchm.bitnet
letter: Bldg. 200,
Theoretical Chemistry Group,
Argonne National Laboratory,
9700 S. Cass Avenue, Argonne, IL 60439.
TCGMSG is a toolkit for writing portable parallel programs using a
message passing model. Supported are a variety of common UNIX
workstations, mini-super and super computers and hetrogenous networks
of the same, along with true parallel computers such as the Intel iPSC
and Alliant FX/2800. Applications port between all of these
environments without modification to the parallel constructs. This
toolkit is available without charge, along with a set of example
chemistry applications. We are using this toolkit in our production
codes, but cannot guarantee support or accept any liability for its
If you obtain the source by ftp please send e-mail to me so that I can
maintain a list of users for bugfixes etc.
1) ftp to ftp.tcg.anl.gov (188.8.131.52 at present) using
userid anonymous and giving name as password.
Using binary mode transfer the file pub/tcgmsg.3.1.tar.Z
(or tcgmsg.3.1.tar if you don't have compress).
2) uncompress tcgmsg.3.1.tar.Z (skip if you got tcgmsg.tar)
3) tar xf tcgmsg.3.1.tar (extracts the directory tcgmsg)
4) read the README files in tcgmsg, tcgmsg/ipcv3.1 and
tcgmsg/examples for installation instructions etc.
b) e-mail (only if you can't ftp it please)
Send a request to me at the above address. I will send you a
uuencoded version of tcgmsg.3.1.tar.Z. With an editor, strip
off the mail header and footer and run the remainder through
uudecode and continue at step 2 above.
More detailed description
These routines attempt to provide a robust, portable, high performance
message passing system for distributed-memory parallel FORTRAN
applications. The C interface is also portable. The syntax is very
similar to that of the iPSC subroutines, but the functionality is
restricted to improve efficiency and speed implementation. On machines
with vector hardware sustained interprocess communication rates of
8.0Mb/s have been observed. This toolkit (referred to as TCGMSG) only
strives to provide the minimal functionality needed for our
applications. It is only a stop gap until some better model becomes
widely (and cheaply) available. However, I believe that many (not
all) chemistry and physics problems are readily and efficiently coded
with this simple functionality, and that such effort will not be
wasted when better tools are generally available. I also cannot help
but regret the premature commercialization of many parallel
Currently tested are:
Sun (Sun O/S 4.0*, 4.1)
IBM RISC (AIX)
SGI (IRIX ??)
Alliant (FX/8 and FX/2800 Concentrix)
Ardent (O/S 2.*)
Convex C220 (ConvexOS V8.1)
Cray (UNICOS 5.*, 6.*)
Encore (UMAX-4.3 ... last version only
Sequent (DYNIX V3.0.14) ... last version only
Intel/DARPA Touchstone Delta (not in this release but available)
inclusion of high level manipulation of distributed data
The programming model and interface is derived from PARMACS of the ANL
ACRF (see "Portable Programs for Parallel Processors", J. Boyle, R.
Butler, T. Disz, B. Glickfeld, E. Lusk, R. Overbeek, J. Patterson, R.
Stevens. Holt, Rinehart and Winston, Inc., 1987, ISBN 0-03-014404-3).
Communication is over TCP sockets, unless indentical processes are
running on a machine with support for shared memory, which is then
used. Thus, applications can be built to run over an entire network of
machines with local communication running at memory bandwidth (plus
synchronization overhead) and remote communication running at Ethernet
speed (close to the maximum of 10 Mbits/s can be seen on quiet
networks). Hooks are in the lower level routines for conversion of
data between machines with different byte ordering/numerical
representation. This is currently only implemented for FORTRAN integer
and double precision (C long and double) data types and C character