[no subject]

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
 Obtaining TCGMSG
  a) ftp
 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 ( 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
 programming environments.
 Currently tested are:
    Sun (Sun O/S 4.0*, 4.1)
    Decstation (ULTRIX)
    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)
 Underway now:
    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