From chemistry-request- at -ccl.net Mon Jun 3 17:59:30 1991 Date: Mon, 3 Jun 91 16:20:02 CDT From: harrison ^at^ tcg.anl.gov (Robert Harrison) To: chemistry /at\ccl.net Status: R TCGMSG Send/receive subroutines ... version 3.1 (March 1991) ------------------------------------------------------------ Robert J. Harrison tel: (708) 972-7197 E-mail: harrison- at -tcg.anl.gov, harrison- at -anlchm.bitnet letter: Bldg. 200, Theoretical Chemistry Group, Argonne National Laboratory, 9700 S. Cass Avenue, Argonne, IL 60439. Summary ------- 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 use. 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 (130.202.56.2 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: iPSC/i860 Sun (Sun O/S 4.0*, 4.1) Decstation (ULTRIX) 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) Underway now: ncube 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 data.