#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'pvm2.4/Files' <<'END_OF_FILE' XFiles Makefile Readme UpdMakfs aimk chol/cholhost.c chol/cholnode.c chol/makefile doc/Arches doc/FAQ doc/MsgFormats doc/PvmPic doc/Version f2c/CRAY/Makefile f2c/CRAYSMP/Makefile f2c/HP9K/Makefile f2c/I860/Makefile f2c/Makefile.body f2c/Makefile.custom f2c/NEXT/Makefile f2c/PMAX/Makefile f2c/RIOS/Makefile f2c/Readme f2c/SUN3/Makefile f2c/SUN4/Makefile f2c/fbarrier.c f2c/fenroll.c f2c/fgetbytes.c f2c/fgetncplx.c f2c/fgetndcplx.c f2c/fgetndfloat.c f2c/fgetnfloat.c f2c/fgetnint.c f2c/fgetnlong.c f2c/fgetnshort.c f2c/fgetstring.c f2c/fgetstringl.c f2c/finithow.c f2c/finitiate.c f2c/finitiatem.c f2c/finitsend.c f2c/fleave.c f2c/fprobe.c f2c/fprobemulti.c f2c/fpstatus.c f2c/fputbytes.c f2c/fputncplx.c f2c/fputndcplx.c f2c/fputndfloat.c f2c/fputnfloat.c f2c/fputnint.c f2c/fputnlong.c f2c/fputnshort.c f2c/fputstring.c f2c/fputstringl.c f2c/fpvmperror.c f2c/frcv.c f2c/frcvinfo.c f2c/frcvmulti.c f2c/fready.c f2c/fsnd.c f2c/fstatus.c f2c/fterminate.c f2c/fvrcv.c f2c/fvrcvmulti.c f2c/fvsnd.c f2c/fwaituntil.c f2c/fwhoami.c f2c/namefix.h f2c/nulfix.h fort_examp/CRAY/Makefile fort_examp/HP9K/Makefile fort_examp/Makefile.body fort_examp/PMAX/Makefile fort_examp/RIOS/Makefile fort_examp/RT/Makefile fort_examp/Readme fort_examp/SGI/Makefile fort_examp/SUN3/Makefile fort_examp/SUN4/Makefile fort_examp/SYMM/Makefile fort_examp/TITN/fhost.f fort_examp/TITN/makefile fort_examp/TITN/node.f fort_examp/fhost.f fort_examp/node.f libfpvm/BALANCE/BALANCE.m4 libfpvm/BALANCE/Makefile libfpvm/CRAY/CRAY.m4 libfpvm/CRAY/Makefile libfpvm/HP9K/HP9K.m4 libfpvm/HP9K/Makefile libfpvm/I860/I860.m4 libfpvm/I860/Makefile libfpvm/Makefile.body libfpvm/Makefile.custom libfpvm/NEXT/Makefile libfpvm/NEXT/NEXT.m4 libfpvm/PMAX/Makefile libfpvm/PMAX/PMAX.m4 libfpvm/RIOS/Makefile libfpvm/RIOS/RIOS.m4 libfpvm/RT/Makefile libfpvm/RT/RT.m4 libfpvm/Readme libfpvm/SGI/Makefile libfpvm/SGI/SGI.m4 libfpvm/SUN3/Makefile libfpvm/SUN3/SUN3.m4 libfpvm/SUN4/Makefile libfpvm/SUN4/SUN4.m4 libfpvm/SYMM/Makefile libfpvm/SYMM/SYMM.m4 libfpvm/TITN/Makefile libfpvm/TITN/TITN.m4 libfpvm/U370/Makefile libfpvm/U370/U370.m4 libfpvm/UVAX/Makefile libfpvm/UVAX/UVAX.m4 libfpvm/fbarrier.m4 libfpvm/fenroll.m4 libfpvm/fgetbytes.m4 libfpvm/fgetncplx.m4 libfpvm/fgetndcplx.m4 libfpvm/fgetndfloat.m4 libfpvm/fgetnfloat.m4 libfpvm/fgetnint.m4 libfpvm/fgetnlong.m4 libfpvm/fgetnshort.m4 libfpvm/fgetstring.m4 libfpvm/finithow.m4 libfpvm/finitiate.m4 libfpvm/finitiatem.m4 libfpvm/finitsend.m4 libfpvm/fleave.m4 libfpvm/fprobe.m4 libfpvm/fprobemulti.m4 libfpvm/fpstatus.m4 libfpvm/fputbytes.m4 libfpvm/fputncplx.m4 libfpvm/fputndcplx.m4 libfpvm/fputndfloat.m4 libfpvm/fputnfloat.m4 libfpvm/fputnint.m4 libfpvm/fputnlong.m4 libfpvm/fputnshort.m4 libfpvm/fputstring.m4 libfpvm/fpvmperror.m4 libfpvm/frcv.m4 libfpvm/frcvinfo.m4 libfpvm/frcvmulti.m4 libfpvm/fready.m4 libfpvm/fsnd.m4 libfpvm/fstatus.m4 libfpvm/fterminate.m4 libfpvm/ftocstr.c libfpvm/fvrcv.m4 libfpvm/fvrcvmulti.m4 libfpvm/fvsnd.m4 libfpvm/fwaituntil.m4 libfpvm/fwhoami.m4 libfpvm/pvm_consts.h man/MkZeroes man/man1/pvm_intro.1 man/man1/pvmd.1 man/man3/barrier.3 man/man3/enroll.3 man/man3/get.3 man/man3/initiate.3 man/man3/initsend.3 man/man3/leave.3 man/man3/libpvm.3 man/man3/probe.3 man/man3/pstatus.3 man/man3/put.3 man/man3/pvm_mstat.3 man/man3/pvm_perror.3 man/man3/rcv.3 man/man3/rcvinfo.3 man/man3/ready.3 man/man3/snd.3 man/man3/status.3 man/man3/terminate.3 man/man3/vrcv.3 man/man3/vsnd.3 man/man3/waituntil.3 man/man3/whoami.3 mandel/Makefile mandel/Readme mandel/mandel_main.c mandel/mandel_tile.c mandel/xpx.c src/AFX8/Makefile src/ALPHA/Makefile src/BFLY/Makefile src/C2MP/Makefile src/C2MPCXFP/Makefile src/CM2/Makefile src/CM5/Makefile src/CRAY/Makefile src/CRAYSMP/Makefile src/DGAV/Makefile src/HP9K/Makefile src/I386/Makefile src/I860/Makefile src/IPSC/Makefile src/KSR1/Makefile src/Makefile.body src/Makefile.custom src/NEXT/Makefile src/PMAX/Makefile src/RIOS/Makefile src/RT/Makefile src/SGI/Makefile src/SUN3/Makefile src/SUN3_3_5/Makefile src/SUN4/Makefile src/SYMM/Makefile src/TITN/Makefile src/UVAX/Makefile src/VCM2/Makefile src/archequiv.c src/cmd.c src/craypatch.h src/crunch.c src/fdsetpatch.h src/global.h src/host.c src/imalloc.c src/loclcomm.c src/loclcomm.h src/micomm.c src/micomm.h src/netside.c src/proc.c src/proc.h src/putenv.c src/pvmd.c src/pvmd.h src/pvmuser.h src/rem.h src/startup.c src/sunos3patch.h src/titanpatch.h src/ulib.c src/uliberr.c src/uside.c src/util.c src/wait.c src/wait.h src/xenixpatch.h tsts/Makefile tsts/Readme tsts/askinit.c tsts/barrtest.c tsts/check.c tsts/check_slave.c tsts/conf.c tsts/enrolltest.c tsts/timing.c tsts/timing_slave.c tsts/whome.c END_OF_FILE if test 4638 -ne `wc -c <'pvm2.4/Files'`; then echo shar: \"'pvm2.4/Files'\" unpacked with wrong size! fi # end of 'pvm2.4/Files' fi if test -f 'pvm2.4/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/Makefile'\" else echo shar: Extracting \"'pvm2.4/Makefile'\" \(514 characters\) sed "s/^X//" >'pvm2.4/Makefile' <<'END_OF_FILE' X# X# Top-level makefile for PVM X# ARCH = UNKNOWN X default: s f X all: s f oldf X tidy: X cd src ; ../aimk tidy X cd libfpvm ; ../aimk tidy X cd f2c ; ../aimk tidy X clean: X cd src ; ../aimk clean X cd libfpvm ; ../aimk clean X cd f2c ; ../aimk clean X X# X# targets called when running "make" X# X s: X ./aimk -here i_s X f: X ./aimk -here i_f X oldf: X ./aimk -here i_oldf X X# X# targets when running "aimk" (run by make) X# X i_s: $(LIBDIR) X cd src ; ../aimk X i_f: $(LIBDIR) X cd libfpvm ; ../aimk X i_oldf: $(LIBDIR) X cd f2c ; ../aimk X END_OF_FILE if test 514 -ne `wc -c <'pvm2.4/Makefile'`; then echo shar: \"'pvm2.4/Makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/Makefile' fi if test -f 'pvm2.4/Readme' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/Readme'\" else echo shar: Extracting \"'pvm2.4/Readme'\" \(7891 characters\) sed "s/^X//" >'pvm2.4/Readme' <<'END_OF_FILE' X Readme file for PVM Version 2.4.2 X22 Dec 1992 X PVM - Parallel Virtual Machine University of Tennessee, Knoxville, TN. Oak Ridge National Laboratory, Oak Ridge, TN. XEmory University, Atlanta, GA. X X________________________________________________________________________ NOTE X This version (2.4.2) is semi-compatible with version 2.4.1. Pvmds of the two versions should interoperate correctly. Programs linked with one version of the library will not work with a (local) pvmd of the other however. This is because the libpvm-pvmd protocol has changed. X X________________________________________________________________________ UNPACKING X This directory should be available at ~/pvm. Make a symlink: X X cd ; ln -s pvm2.4 pvm X The doc directory contains a few files describing PVM design and implementation. X The src directory contains source code for the PVM daemon (pvmd) and C programming library (libpvm.a). There are subdirs in src named for machines (SUN4, PMAX, etc), with makefiles for specific architectures. X The libfpvm directory contains code for a Fortran programming library, which when used with the C library allows one to link Fortran programs with PVM. This library should be used instead of the old f2c library. It handles Fortran strings correctly (the trailing '\0' is no longer required). X The f2c directory contains source for the old Fortran library that doesn't work very well, but may still be useful. X The man directory contains source for manual pages on the PVM system and C programming library. The remaining directories contain source for simple example programs. X X________________________________________________________________________ BUILDING X Just type "make" in this directory to build pvmd, libpvm.a, and libfpvm.a. If that doesn't work, keep reading. X Check in the src directory for a subdirectory named for your machine. Check the doc/Arches file if you can't guess the name. If the correct one does not exist, you will have to make a new directory. The name choice is arbitrary, but should be concise and accurate (PVM will be using the name to identify the machine type it is running on). X Note: If you are running on a group of similar machines, but which have different operating system versions installed (f.e. SunOS4.0 vs. X4.1), binary executables may not be compatible across the entire group due to shared library differences or incompatible system calls. In this case you will need to define different architecture names to distinguish the correct executables. So, instead of architecture type X"SUN4" you might have "SUN4-4.0" and "SUN4-4.1". X If you need to make an architecture directory, follow these steps: X X + mkdir NAME X + cp Makefile.generic NAME/Makefile X + cd NAME X + vi Makefile X When customizing the Makefile, the only thing you definitely have to set is the ARCH definition. You may additionally need to define certain switches from the list given, or compiler/loader flags. X To make the PVM daemon (pvmd) and user library (libpvm.a), type X"make" in the appropriate subdirectory of src. X Check out the "aimk" program in this directory. This is a shell script that automatically sets the ARCH environment variable to the appropriate PVM machine type and then calls make. You can use it to build the pvm distribution (by typing only "cd src;aimk"). It can also be used to build your applications without the need for architecture-specific subdirectories or separate makefiles. It also sets the environment variable PVMLFLAGS, which can be used to include libraries needed by libpvm. X X________________________________________________________________________ INSTALLATION X The PVM daemon (pvmd) file should be named "/tmp/pvm/pvmd" so that the master pvmd can find it. If necessary, you can give the master an alternate path to use. Check the manual page for pvmd. X X________________________________________________________________________ WRITING APPLICATIONS X Syntax and semantics of the library functions are described in the manual pages in man/. User code must be linked with libpvm.a (in the machine-architecture src directory), and possibly with other libraries X(check doc/Arches for notes about this). X Your executables should be in directory ~/pvm/NAME/ (where NAME is the PVM name for an architecture) on each host in order for the pvmd to find them. You can change the default path if you wish; check the pvmd manual page. X Check out the makefile in mandel/ for a simple example of how to write a machine-independent makefile to use with "aimk". X In the directories chol/ , fort_examp/ , mandel/ , and tsts/ are some applications that demonstrate how to write simple PVM programs. X X________________________________________________________________________ OPERATION X Before you can run any PVM applications, you must start the pvm daemon(s), one on each machine in the group of hosts you want to use. The "master" pvmd is started manually on one host, and it uses rexec() or rsh to start the "slave" pvmds on the rest. X Make a file called "myhosts" (or whatever) that contains the names of all the hosts in the group, one per line. The host running the "master" pvmd must be the first one in the file. Lines in the host file beginning with '#' are ignored. Host names should be fully qualified DOMAIN names, to avoid confusion, f.e.: X X thud.cs.utk.edu X gus.epm.ornl.gov X You will need to have a .rhosts file on each machine running a slave pvmd. They should contain the hostname of the machine running the master. X Start the pvmds with "/tmp/pvm/pvmd myhosts". The master pvmd will start up all the slaves. X If for some reason, you can't or don't want to use .rhosts files for some of the machines, you will have to type your password when starting up pvm. Append the word 'pw' to entries for those machines in you host file. For example: X X thud.cs.utk.edu X gus.epm.ornl.gov X rx.epm.ornl.gov pw X Once all the pvmds are running you may start pvm client programs. X Normally, pvmd runs in the background, and requires no input once it has started up the slave pvmds. If "-i" is specified on the command line, however, the master pvmd will provide a command mode, which allows the user to interactively monitor and control the pvmd. X To shut off PVM, kill the master pvmd. It will kill the slave daemons, and any processes initiated by them. X Currently, standard out and standard error streams of the slave pvmds (and client programs they initiate) are passed back to the master pvmd and then to its standard out. X X________________________________________________________________________ XFILES AND DIRECTORIES X X Readme This file X aimk Script to determine machine type and run make X doc/Arches List of architecture ports X doc/FAQ Answers to frequently asked questions X doc/PvmPic Sketch of PVM system organization (Postscript) X doc/Version Terse description of changes between releases X man/ Manual pages for Daemon and User Library X src/ Source for the PVM system X f2c/ Fortran user lib interface (old, cruddy) X libfpvm/ A much better Fortran user lib interface X chol/ Example PVM application (Cholesky factorization) X fort_examp/ A simple example in fortran X mandel/ Another example (Mandelbrot set calculation) X tsts/ Some simple test programs X X /tmp/pvm/pvmd The default pvmd executable (installed on every machine) X ~/pvm/ARCH/ Where user executables go (for machine type ARCH) X X________________________________________________________________________ QUESTIONS X If you have problems using PVM, check the FAQ file in doc/FAQ. If this doesn't help, send mail to the address below. X X________________________________________________________________________ CONTACT X Please direct any email (questions, bug fixes, etc) to: X X pvm@msr.EPM.ORNL.GOV. X END_OF_FILE if test 7891 -ne `wc -c <'pvm2.4/Readme'`; then echo shar: \"'pvm2.4/Readme'\" unpacked with wrong size! fi # end of 'pvm2.4/Readme' fi if test -f 'pvm2.4/UpdMakfs' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/UpdMakfs'\" else echo shar: Extracting \"'pvm2.4/UpdMakfs'\" \(298 characters\) sed "s/^X//" >'pvm2.4/UpdMakfs' <<'END_OF_FILE' X#!/bin/csh -f X# X# Rewrite all subdir makefiles with new generic body X set files=(*/Makefile) X foreach x ($files) X echo $x X rm -f $x'-' X mv $x $x'-' X# head -12 $x'-' | cat - Makefile.body > $x X awk '{print}/^# END of custom section/{exit(0)}' $x'-' | \ X cat - Makefile.body > $x X chmod 444 $x end X END_OF_FILE if test 298 -ne `wc -c <'pvm2.4/UpdMakfs'`; then echo shar: \"'pvm2.4/UpdMakfs'\" unpacked with wrong size! fi chmod +x 'pvm2.4/UpdMakfs' # end of 'pvm2.4/UpdMakfs' fi if test -f 'pvm2.4/aimk' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/aimk'\" else echo shar: Extracting \"'pvm2.4/aimk'\" \(3373 characters\) sed "s/^X//" >'pvm2.4/aimk' <<'END_OF_FILE' X#!/bin/csh -fb X# X# aimk [-here] [-nomk] [ make args ... ] X# X# Architecture Dependent Make Facility. Automatically sets PVM X# machine-type for make to use. X# X# This is a heuristic thing that may need to be tuned from time X# to time. I don't know of a real solution to determining the X# machine type. Claims to pick one of: X# ALPHA, AFX8, BFLY, C2MP, CM2, CM5, CRAY, CRAYSMP, HP300, HP9K, I386, I860, X# KSR1, NEXT, PMAX, RIOS, SGI, SUN2, SUN3, SUN4, SYMM, TITN, UVAX, VAX, X# UNKNOWN X# Need to do: X# IPSC X# X# Aimk exports environment variables that can be used in makefiles X# ARCH = the selected architecture X# PVMLFLAGS = loader flags needed when using libpvm X# X# Notes: X# 1. The output of things like uname seems to change from time to time. X# 2. Local people mess with things. X# 3. It's good to try a few things for robustness. X# X# 22 Jul 1991 Robert Manchek manchek@CS.UTK.EDU. X# X set noglob X unset makeincwd unset nomk set found while ($#argv >= 1 && $?found) X switch ("$argv[1]") X case "-here": X set makeincwd X set argv=($argv[2-]) X breaksw X case "-nomk": X set nomk X set argv=($argv[2-]) X breaksw X default: X unset found X breaksw X endsw end X X# X# begin section that may need to be tuned. X# set ARCH=UNKNOWN X if (-x /bin/uname) then X set os="`/bin/uname -s`" X set ht="`/bin/uname -m`" X set osht="$os,$ht" X X switch ("$osht") X case SunOS,sun3*: X set ARCH=SUN3 X breaksw X case SunOS,sun4*: X set ARCH=SUN4 X breaksw X case ULTRIX,RISC: X set ARCH=PMAX X breaksw X case ULTRIX,VAX: X set ARCH=UVAX X breaksw X case AIX,*: X set ARCH=RIOS X breaksw X case *,9000/*: X set ARCH=HP9K X breaksw X case IRIX,*: X case IRIX,*: X set ARCH=SGI X breaksw X case *,alpha: X set ARCH=ALPHA X breaksw X case CRSOS,smp: X set ARCH=CRAYSMP X breaksw X endsw endif X if ($ARCH != UNKNOWN) goto endarch if (-x /bin/arch) then X switch (`/bin/arch`) X case ksr1: X set ARCH=KSR1 X breaksw X case sun2: X set ARCH=SUN2 X breaksw X case sun3: X set ARCH=SUN3 X breaksw X case sun4: X set ARCH=SUN4 X default: X breaksw X endsw endif X if ($ARCH == SUN4 && -e /dev/cm) set ARCH=CM2 if ($ARCH == SUN4 && -e /dev/cmni) set ARCH=CM5 if (-e /usr/bin/getcube) set ARCH=I860 X if ($ARCH != UNKNOWN) goto endarch if (-e /ultrixboot) then X if (-e /pcs750.bin) then X set ARCH=UVAX X else X set ARCH=PMAX X endif else X if (-e /pcs750.bin) set ARCH=VAX endif if (-e /hp-ux) set ARCH=HP300 if (-e /etc/vg) set ARCH=RIOS if (-e /dynix) set ARCH=SYMM if (-e /bin/titan) set ARCH=TITN if (-e /unicos) set ARCH=CRAY if (-e /usr/bin/cluster) set ARCH=BFLY if (-e /usr/bin/asm56000) set ARCH=NEXT if (-e /usr/convex) set ARCH=C2MP if (-e /usr/alliant) set ARCH=AFX8 if (-d /usr/include/caif) set ARCH=RT if (-x /usr/bin/machine) then X switch (`/usr/bin/machine`) X case i386: X set ARCH=I386 X breaksw X default: X breaksw X endsw endif X endarch: X X# X# ugh, done. X# X X# X# get lflags X# X switch ($ARCH) case I386: X setenv PVMLFLAGS -lrpc X breaksw X case I860: case IPSC: X setenv PVMLFLAGS "-lrpc -lsocket" X breaksw X case SGI: X setenv PVMLFLAGS -lsun X breaksw X default: X set PVMLFLAGS endsw X X# X# run make in cwd or subdir if exists. X# X if ($?nomk) then X echo $ARCH X exit 0 endif X if (! $?makeincwd && -d $ARCH) then X echo making in $ARCH/ for $ARCH X (cd $ARCH; make ARCH=$ARCH "PVMLFLAGS=$PVMLFLAGS" $argv) else X echo making in . for $ARCH X make ARCH=$ARCH "PVMLFLAGS=$PVMLFLAGS" $argv endif X echo done. exit 0 X END_OF_FILE if test 3373 -ne `wc -c <'pvm2.4/aimk'`; then echo shar: \"'pvm2.4/aimk'\" unpacked with wrong size! fi chmod +x 'pvm2.4/aimk' # end of 'pvm2.4/aimk' fi if test ! -d 'pvm2.4/chol' ; then echo shar: Creating directory \"'pvm2.4/chol'\" mkdir 'pvm2.4/chol' fi if test -f 'pvm2.4/chol/cholhost.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/chol/cholhost.c'\" else echo shar: Extracting \"'pvm2.4/chol/cholhost.c'\" \(2310 characters\) sed "s/^X//" >'pvm2.4/chol/cholhost.c' <<'END_OF_FILE' X#include X#include X X/* X Host program driver for column Cholesky factorization X of a symmetric matrix partitioned by vertical strips X USAGE: cholhost X*/ X main(argc,argv) int argc; char **argv; X/* host process */ X{ X char temp[32]; X int tmp; X float f0, f1[4], err, secs[4], mflops[3], eff[3] ; X int info[3], *map ; X int me, p, n, blksize, i, j, nprocs; X X if (argc < 4) { X printf("Usage: cholhost #procs N blksize \n"); X exit(0); X } X nprocs = atoi(*++argv); X p = nprocs; X n = atoi(*++argv); X if (n < p) { X printf("Problem size (%d) < nprocs (%d)\n",n,p); X exit(1); X } X blksize = atoi(*++argv); X if (blksize > n/p) blksize = n/p ; X X me = enroll("cholhost"); X for (i=0;i err) err=f0; X } X printf("maxerr\t%e\n", err) ; X X for (i=0;i<4;i++) secs[i]=0.0; X X for (i=0;i secs[j]) secs[j] = f1[j]; X } X X printf(" \t factor\t fsolve\t bsolve\t total\n") ; X printf("secs \t%7.2f\t%7.2f\t%7.2f\t%7.2f\n", secs[0], secs[1], X secs[2], secs[3]) ; X free(map) ; X X leave(); X} END_OF_FILE if test 2310 -ne `wc -c <'pvm2.4/chol/cholhost.c'`; then echo shar: \"'pvm2.4/chol/cholhost.c'\" unpacked with wrong size! fi # end of 'pvm2.4/chol/cholhost.c' fi if test -f 'pvm2.4/chol/cholnode.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/chol/cholnode.c'\" else echo shar: Extracting \"'pvm2.4/chol/cholnode.c'\" \(5165 characters\) sed "s/^X//" >'pvm2.4/chol/cholnode.c' <<'END_OF_FILE' X#include X#include X X/* X Node program for column Cholesky factorization of X a symmetric matrix partitioned by vertical strips X using synchronous fan-out broadcast communication X*/ X main() X/* node process */ X{ X char temp[32]; X int tmp; X long ti[8] ; X int n, i, ncols, p, me, alg, *map, *mycols, info[3] ; X float *b, **col, tm[4], err, maxerr ; X X me=enroll("cholnode"); X X whoami(temp,&tmp); X fprintf(stderr, "I am %s, instance %d\n",temp,tmp); X X#ifdef USE_VC X vrcv(16001); X#else X rcv(16001); X#endif X ti[6] = time(0); X getnint(info,3); X X n = info[0] ; X alg = info[1] ; X p = info[2]; X if (n == 0 || n < p) { X fprintf(stderr,"Node no %d : n=%d; p=%d\n",me,n,p); X exit(1); X } X map = (int *)malloc(n*sizeof(int)) ; X X#ifdef USE_VC X vrcv(16002); X#else X rcv(16002); X#endif X getnint(map,n); X fprintf(stderr, "Received 16002\n"); X X ncols = 0 ; X for ( i = 0 ; i < n; i++ ) if (map[i] == me) ncols++ ; X X /* allocate storage */ X mycols = (int *)malloc(ncols*sizeof(int)) ; X b = (float *)malloc(ncols*sizeof(float)) ; X col = (float * *)malloc(ncols*sizeof(float *)) ; X X /* set up data structures for problem to be solved */ X prob1(me, n, ncols, map, mycols, col, b) ; X X /* Cholesky factorization - fan-out synchronous algorithm */ X ti[0] = time(0); X cholfo(n, ncols, map, mycols, col, me, p) ; X ti[1] = time(0); X X /* forward substitution */ X ti[2] = time(0); X forsub(n, ncols, map, mycols, col, b, me,p) ; X ti[3] = time(0); X X /* back substitution */ X ti[4] = time(0); X backsub(n, ncols, map, mycols, col, b, me,p) ; X ti[5] = time(0); X X /* compute maximum error in solution and send to cholhost */ X maxerr = 0 ; X for ( i = 0 ; i < ncols ; i++ ) { X err = b[i] ; X err -= mycols[i]+1 ; X maxerr = maxerr < fabs(err) ? fabs(err) : maxerr ; X } X initsend(); X putnfloat(&maxerr,1); X#ifdef USE_VC X vsnd("cholhost",0,16003); X#else X snd("cholhost",0,16003); X#endif X X /* send local times to host */ X ti[7] = time(0); X initsend(); X for ( i = 0 ; i < 4 ; i++ ) { X tm[i] = ti[2*i+1]-ti[2*i] ; X putnfloat(&tm[i],1); X } X#ifdef USE_VC X vsnd("cholhost",0,16004); X#else X snd("cholhost",0,16004); X#endif X X /* free storage */ X for ( i = 0 ; i < ncols ; i++ ) free(col[i]) ; X free(col) ; X free(b) ; X free(mycols) ; X free(map) ; X X leave(); X exit(0); X} X X prob1 ( me, n, ncols, map, mycols, col, b ) X int me, n, ncols, *map, *mycols ; X float **col, *b ; X X/* X * Set up data structures for problem to be solved X */ X{ X int i, j, k ; X float *p, t ; X X j = 0 ; X for ( k = 0 ; k < n ; k++ ) X if ( map[k] == me ) { X p = (float *)malloc((n-k)*sizeof(float)) ; X col[j] = p ; X mycols[j] = k ; X j++ ; X if ( k == 0 ) { X t = n ; X *p++ = t*(t+1)/2 ; X for ( i = 1 ; i < n ; i++ ) *p++ = -1 ; X } X else { X *p++ = 2 ; X for ( i = 1 ; i < n-k ; i++ ) *p++ = 0 ; X } X } X for ( i = 0 ; i < ncols ; i++ ) b[i] = 2*mycols[i]+1 ; X} X cholfo ( n, ncols, map, mycols, col ,me,nprocs) X int n, ncols, *map, *mycols ,me; X float **col ; X int nprocs; X X/* synchronous Cholesky factorization */ X{ X int i, j, k ; X float t, *p, *q, *colk ; X X colk = (float *)malloc(n*sizeof(float)) ; X j = 0 ; X for ( k = 0 ; k < n ; k++ ) { X if (map[k] == me) { X t = 1.0/sqrt(*col[j]) ; X for ( p = col[j] , q = colk ; p < col[j]+n-mycols[j] ; X p++ , q++ ) { X *p *= t ; X *q = *p ; X } X j++ ; X } X if (map[k] == me) { X if (nprocs > 1) { X initsend(); X putnfloat(colk,(n-k)); X#ifdef USE_VC X vsnd("cholnode",-1,k); X#else X snd("cholnode",-1,k); X#endif X } X } X else { X#ifdef USE_VC X vrcv(k); X#else X rcv(k); X#endif X getnfloat(colk,(n-k)); X } X X for ( i = j ; i < ncols ; i++ ) { X for ( p = col[i] , q = colk+mycols[i]-k , t = *q ; X p < col[i]+n-mycols[i] ; p++ , q++ ) X *p -= *q * t ; X } X } X free(colk) ; X} X X forsub ( n, ncols, map, mycols, col, b ,me,nprocs) X int me, n, ncols, *map, *mycols ; X float **col, *b ; X int nprocs; X X/* lower triangular forward solve */ X/* column-oriented fan-in algorithm */ X X{ X int i, j, k ; X float t ,t2; X X j = 0 ; X if (map[0] == me) { X b[j] /= *col[j] ; X j++ ; X } X for ( k = 1 ; k < n ; k++ ) { X t = 0 ; X for ( i = 0 ; i < j ; i++ ) t += b[i] * *(col[i]+k-mycols[i]) ; X if (map[k] == me) { X for (i=0;i<(nprocs-1);i++) { X#ifdef USE_VC X vrcv(k); X#else X rcv(k); X#endif X getnfloat(&t2,1); X t+=t2; X } X } X else { X initsend(); X putnfloat(&t,1); X#ifdef USE_VC X vsnd("cholnode",map[k],k); X#else X snd("cholnode",map[k],k); X#endif X } X X if (map[k] == me) { X b[j] -= t ; X b[j] /= *col[j] ; X j++ ; X } X } X} X X backsub ( n, nrows, map, myrows, row, b ,me, nprocs) X int me, n, nrows, *map, *myrows ; X float **row, *b ; X int nprocs; X X/* upper triangular backward solve */ X/* row-oriented fan-out algorithm */ X X{ X int host, dir, i, j, k ; X float x ; X X j = nrows-1 ; X for ( k = n-1 ; k > 0 ; k-- ) { X if (map[k] == me) { X b[j] /= *row[j] ; X x = b[j] ; X j-- ; X } X if (map[k] == me) { X initsend(0); X putnfloat(&x,1); X#ifdef USE_VC X vsnd("cholnode",-1,k); X#else X snd("cholnode",-1,k); X#endif X } X else { X#ifdef USE_VC X vrcv(k); X#else X rcv(k); X#endif X getnfloat(&x,1); X } X for ( i = j ; i >= 0 ; i-- ) b[i] -= x * *(row[i]+k-myrows[i]) ; X } X if (map[0] == me) b[j] /= *row[j] ; X} X END_OF_FILE if test 5165 -ne `wc -c <'pvm2.4/chol/cholnode.c'`; then echo shar: \"'pvm2.4/chol/cholnode.c'\" unpacked with wrong size! fi # end of 'pvm2.4/chol/cholnode.c' fi if test -f 'pvm2.4/chol/makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/chol/makefile'\" else echo shar: Extracting \"'pvm2.4/chol/makefile'\" \(400 characters\) sed "s/^X//" >'pvm2.4/chol/makefile' <<'END_OF_FILE' X# X#ARCH = WHATAMI X PLIB = ../src/$(ARCH)/libpvm.a IDIR = ../$(ARCH) SDIR = . X CC = cc CFLAGS = -g -DUSE_VC X#CFLAGS = LIBS = X all: cholhost cholnode X cholhost: $(SDIR)/cholhost.c $(PLIB) X $(CC) $(CFLAGS) -o cholhost $(SDIR)/cholhost.c $(PLIB) $(LIBS) X mv cholhost $(IDIR) X cholnode: $(SDIR)/cholnode.c $(PLIB) X $(CC) $(CFLAGS) -o cholnode $(SDIR)/cholnode.c $(PLIB) $(LIBS) -lm X mv cholnode $(IDIR) X END_OF_FILE if test 400 -ne `wc -c <'pvm2.4/chol/makefile'`; then echo shar: \"'pvm2.4/chol/makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/chol/makefile' fi if test ! -d 'pvm2.4/doc' ; then echo shar: Creating directory \"'pvm2.4/doc'\" mkdir 'pvm2.4/doc' fi if test -f 'pvm2.4/doc/Arches' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/doc/Arches'\" else echo shar: Extracting \"'pvm2.4/doc/Arches'\" \(2795 characters\) sed "s/^X//" >'pvm2.4/doc/Arches' <<'END_OF_FILE' X Architecture list for PVM Version 2.4.1 X22 Dec 1992 X X________________________________________________________________________ X X PVM name Machine X -------- ------- X AFX8 Alliant FX/8 X ALPHA DEC/Alpha X BFLY BBN Butterfly TC2000 X C2MP Convex using IEEE floating-point X C2MPCXFP Convex using native f.p. X CM2 Thinking Machines CM-2 Sun front [5] X CM5 Thinking Machines CM-5 X CRAY Cray X CRAYSMP Cray S-MP X DGAV Data General Aviion [7] X HP9K HP 9000 (Snake) X KSR1 Kendall Square X I386 80[34]86 running BSDI [6] X I860 Intel RX Hypercube [4] X IPSC Intel IPSC/2 X NEXT NeXT X PMAX DEC/Mips arch (3100, 5000, etc.) X RIOS IBM/RS6000 X RT IBM/RT X SGI Silicon Graphics IRIS [3] X SUN3 Sun 3 [2] X SUN4 Sun 4, 4c, sparc, etc. X SYMM Sequent Symmetry X TITN Stardent Titan [1] X UVAX DEC/Microvax X VCM2 Thinking Machines CM-2 Vax front [5] X X[7] I'm told it works with DG/UX 5.4.1, haven't seen it in person. X X[6] Add "-lrpc" to loader libs when using libpvm. X - rexec() doesn't exist, so startup is restricted to the rsh method. X - XDR routines for floats and double floats don't exist, so they X were faked using the one for long ints. This should work. X X[5] In v2.4.1, equated CM2 (SUN4) data format to all other IEEE machines. X X[4] Add "-lrpc -lsocket" to loader libs when using libpvm. X X[3] Add "-lsun" to loader libs when using libpvm. X If using YP, may have to add "-lsun" to ARCHDLIBS in Makefile. X X[2] Works fine under SunOS 4.[01] X Had some problems with 3.x and ran out of time, so the stuff X isn't officially included. X X Problems were: X - h_addr_list[0] should change to h_addr in pvmd.c This is X backwards compatible on most machines so could be left that X way. X X - can't setsockopt(SO_SNDBUF), and the man page for udp(4) X says that changing the buffer size via ioctl() isn't X supported. :-) So just #ifdef it out in pvmd.c and ulib.c. X X[1] Now 'ported', but very untested. Have fun. X The f2c library probably will not work, as Fortran string args X are not compatible with C on a Titan. X X Problems were: X - rexec() doesn't exist, so startup is restricted to the rsh X method. Had to #ifdef out the rexec stuff in pvmd.c X X - Couldn't get setsockopt() to work. #ifdef'ed it out in X pvmd.c and ulib.c. X X - select() is somewhat broken. If you call it with X FD_SETSIZE you lose. Solution was to find the max X open fd and use that as the size. X END_OF_FILE if test 2795 -ne `wc -c <'pvm2.4/doc/Arches'`; then echo shar: \"'pvm2.4/doc/Arches'\" unpacked with wrong size! fi # end of 'pvm2.4/doc/Arches' fi if test -f 'pvm2.4/doc/FAQ' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/doc/FAQ'\" else echo shar: Extracting \"'pvm2.4/doc/FAQ'\" \(12071 characters\) sed "s/^X//" >'pvm2.4/doc/FAQ' <<'END_OF_FILE' X PVM/Frequently Asked Questions X18 Aug 1992 X X________________________________________________________________________ X Questions: X X1. What happened to XPVM? X2. What happened to the shared memory extensions? X3. What does the message "initiate: No such File" mean? X4. I can't get pvmd to start up. X5. How do I look at the output of the mandel demo? X6. Why don't I see output from certain processes right away or at all? X7. What does "xfermess() frg out of order" mean? X8. What do messages like "resend to seq=223, retry=9" mean? X9. Will PVM automatically use the individual processors on my X {Hypercube, N-Cube, CM-2, Sequent}? X10. Is the PICL/PVM library available? X X________________________________________________________________________ X1. What happened to XPVM? X X XPVM was an X windows interface (primarily) for administrative X tasks such as virtual machine configuration, multiple initiates, X and primitive debugging. It was developed for PVM1.0, and never X ported to PVM2.x, and therefore was never released. Many of the X functions supported by XPVM are now included in HeNCE. X X________________________________________________________________________ X2. What happened to the shared memory extensions? X X A distributed-shared memory facility was tried in PVM1.0; some X preliminary results and experiences on this may be found in the X "Concurrency: Practice and Experience (December 1990)" paper. X Since an overwhelming majority of PVM use was, and was anticipated X to be, based on message passing, shared-memory support was never X implemented in the released versions of PVM. However, there have X been recent efforts to incorporate a shared-address space model, X using objects and C++ interfaces, into PVM. For more details, X please contact vss@mathcs.emory.edu. X X________________________________________________________________________ X3. What does the message "initiate: No such File" mean? X X It means that a pvmd failed to find a file in response to an X initiate() call. X X By default, pvmd searches the directory $HOME/pvm/ARCH (where ARCH X is the PVM architecture name for a host) when initiating processes. X You can change this by using the "ep=" option in the pvm hosts file. X X Note that if you don't specify the host on which to initiate a X component PVM will pick one. The file must be available on that X host, as PVM will not try another once it has decided. X X________________________________________________________________________ X4. I can't get pvmd to start up. X X PVM can fail to start up for a number of reasons. Besides those X out of your control, such as a host or network being down, the X following are the most common. X X When a pvmd fails to start up, you may not get the entire error X message. Try running pvm on the remote host by hand by typing (to X the shell): X X rsh hostname /tmp/pvm/pvmd X X On some machines, you need to use "remsh" rather than "rsh". X X * If you get "Permission denied", it probably means that your .rhosts X file on the remote machine doesn't include your local host name. X You need to add a line like: X X local-host local-user-name X X to your .rhosts file on the remote machine. X X Sometimes a machine has more than one name, and the remote machine X may think your local machine has a different name than you do. To X find out what the remote machine thinks is the name of your local X machine, log in to the remote machine and type: X X who am i X X This will show you what the remote host thinks is the name of the X local host (it may be truncated to 16 characters). Make sure you X put this name (in full, not truncated) in your .rhosts file on the X remote machine. Some older machines will insist that you spell the X name exactly the same, including getting the case right; newer X machines will let you spell it in either upper or lower case. X X * If you get "Login incorrect", it probably means that there isn't an X account on the remote machine with the same login name you're using X the local machine. You need to add a "lo=username" option to your X pvm hosts file. X X If you get something like X X pvmd version <2.4.1> arch maxml <4096> X X then pvmd is starting up fine on the remote machine. However, make X sure that the version number of the remote pvmd matches the version X of the local pvmd. If the two pvmd's aren't the same version, they X will refuse to talk to each other. X X * If you get a message like: X X /tmp/pvm/pvmd: No Such File X X the master pvmd is reaching the remote host but can't start the X slave pvmd. Make sure the executable file is installed in X /tmp/pvm/pvmd or use the "dx=" option in the pvm hosts file to X choose a different pathname. X X * If you get something else, or *any* other output appears before the X "pvmd version" line, make sure your .cshrc on the remote machine X isn't either (a) printing something out when you log in, or (b) X trying to set your terminal characteristics (e.g. erase key) (usually X with the "stty" or "tset" commands). Doing either of these things X in your .cshrc is generally a Bad Idea. X X If you want to print out stuff when you log in, you should either X do it in your .login script or put the commands in an if statement X to ensure that stuff only gets printed when you are logging in X interactively, not when you're running a csh commands script. X Something like this should do the trick: X X if ( { tty -s } && $?prompt ) then X echo terminal type is $TERM X stty erase '^?' kill '^u' intr '^c' echo X endif X X________________________________________________________________________ X5. How do I look at the output of the mandel demo? X X Compile and use the 'xpx' program in the mandel directory. We X haven't previously included this file, but everyone has been X wanting it. X X________________________________________________________________________ X6. Why don't I see output from certain processes right away or at all? X X The stdio library (fgets, printf, etc.) buffers input and output X for efficiency whenever possible. That is, it tries to reduce the X frequency of actual read() or write() system calls. It decides X whether to buffer by looking at the underlying file descriptor of a X stream. If the descriptor is for a tty, it buffers only a line at X a time, that is, the buffer is flushed whenever the character '\n' X is encountered. If the descriptor is a file, pipe, or socket, X however, stdio buffers up much more, like 4k bytes. X X The processes started by pvmd on the 'master' machine inherit its X stdout/err files and so their stdio libs decide to flush output X every line. Processes started by other ('slave') pvmds inherit X their stdout/err files, which are sockets back to the master pvmd. X Thus their stdio libs buffer more than a line before writing to the X socket (because they don't know they're talking to a human). X X There are a few ways to see your output at the correct time. You X can put "fflush(stdout);" after each printf(). Or, change the X buffering mode of stdout to line-oriented for the entire program by X putting: X X setlinebuf(stdout); X X near the top of the program. X X________________________________________________________________________ X7. What does "xfermess() frg out of order" mean? X X This is the message fragment reassembly code in libpvm X complaining. Xfermess() is called by rcv(), rcvmulti(), and X probe(). Messages longer than 4k bytes (sometimes other values X depending on what host types you're using) are fragmented in X the originating process for transmission, then reassembled in X the receiving process. X X This used to happen a lot, mostly due to bugs in libpvm, but X the code has been cleaned up, and we haven't seen the problem X in quite a while, except when caused by... X X One mistake PVM users commonly make is to give a byte count X instead of object count to a function like getnint(). This X can result in two, four, or eight times too many bytes being X unpacked, thus writing off the end of the space reserved for X the data. X X If the buffer was obtained by malloc and you scribble past the X end of it, you may corrupt the contents of other malloc'd space X or housekeeping information. Libpvm functions, especially X snd() and rcv(), make extensive use of malloc when buffering X messages. There is almost no code in the library to do sanity X checking, mostly because there's no good way to do it. Of X course, the side effects are chaotic and may come and go X seemingly randomly. X X There's no good solution, other than to carefully check your X code. If you're interested, there is an instrumented malloc X library that can detect problems like overwriting buffers, X accessing buffers after freeing them, and so on. To use it, X replace all calls to malloc(), realloc() or free() in your code X with i_malloc(), i_realloc(), and i_free(). Then link with X imalloc.c (found in the PVM src directory). X X________________________________________________________________________ X8. What do messages like "resend to seq=223, retry=9" mean? X X These are pvmd-to-pvmd packets being resent. Packets are sometimes X dropped either by the network or the destination host due to X glitches or lack of resources. X X While they do impact the performance somewhat, messages like the X above are no cause for alarm unless the retry count gets down to or X near zero. Each packet is allowed ten retries, after which it is X discarded. When packets get discarded, things will start to hang X or break. X X________________________________________________________________________ X9. Will PVM automatically use the individual processors on my X {Hypercube, N-Cube, CM-2, Sequent}? X X PVM can only manage Unix processes right now, that is, a PVM X 'process' is required to be a Unix process, with all its X resources. In addition, PVM treats each host as a single machine, X and does not consider underlying structure. X X * On a Sequent, for example, the Unix process scheduler assigns X processes to each of the physical processors in order to balance X the load. Thus, simply starting multiple processes gives X parallelism. X X * On other types of machines, such as Alliants and CM-2s, the X programmer must write code to take advantage of the parallel X features of the machine. The PVM system will simply think it's X managing normal processes. X X * On machines like Hypercubes, however, node processors present a X restricted environment (without sockets or file access for example) X that PVM can not deal with. When using these machines, the user is X usually required to write both 'host' and 'node' programs. The X host program links with libpvm and the manufacturer's custom X library and provides communication between the PVM machine and the X node program, as well as any special control, such as allocating a X partition. The node program then does the calculation. X X Future versions of PVM will in fact be able to manage PVM 'tasks' X that are not full-fledged Unix processes, in some host-specific X way. X X________________________________________________________________________ X10. Is the PICL/PVM library available? X X There was a PICL library that worked with an old version of PVM, X but was never ported to version 2 (the first one released to the X world). The PICL model is intended for a homogeneous environment, X and so is more limited than PVM. More importantly, since the X clocks on a group of workstations are not synchronized, the trace X files produced by PICL cannot be reliably displayed using X ParaGraph. X X We have a package called 'xab' that can be linked with user code to X generate trace files usable with ParaGraph. X END_OF_FILE if test 12071 -ne `wc -c <'pvm2.4/doc/FAQ'`; then echo shar: \"'pvm2.4/doc/FAQ'\" unpacked with wrong size! fi # end of 'pvm2.4/doc/FAQ' fi if test -f 'pvm2.4/doc/MsgFormats' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/doc/MsgFormats'\" else echo shar: Extracting \"'pvm2.4/doc/MsgFormats'\" \(7169 characters\) sed "s/^X//" >'pvm2.4/doc/MsgFormats' <<'END_OF_FILE' X Message Formats for PVM 2.4.0 X22 Dec 1992 X X________________________________________________________________________ BETWEEN MASTER PVMD AND EACH SLAVE AT STARTUP TIME X XFrom From Slave Master X X[Phase 1 connect to each host and establish arch, address, port] X X"pvmd version <2.3.4> arch maxml <4096>" X X[The following two are used if starting up via rsh instead of rexec] X X "reconnect addr <%08x> port <%04x>" X X[On the new socket now] X"pvmd version <2.3.4> arch maxml <4096>" X X "nhosts <%d> yourhost <%d>" X "name <%s> addr <%08x>" [for each host in the grp] X ... X X"myport <%04x>" X X[Phase 2 complete the config/host table for all slaves] X X "maxml <%d>" X "port <%04x> arch <%s> epath <%s>" [for each host in the grp] X ... X X"ok nhosts <%d> im <%d>" X X________________________________________________________________________ BETWEEN PVMDs X Message Header - 12 bytes, all multibyte values are nbo (most sig first) X X Byte 0 1 2 3 X +---------------+---------------+---------------+---------------+ X | Type | Flags | Broadcast Root | X +---------------+---------------+---------------+---------------+ X | Sequence Number | X +---------------+---------------+---------------+---------------+ X | Remote Wait Channel | X +---------------+---------------+---------------+---------------+ X Message body formats - miint data type is a 4 byte integer X X1 FORUSER // pass user message X string name // process name to X miint inum // process inum to X string name // process name from X miint inum // process inum from X [message] X X2 INUMGET // query pvmd[0] instance number for new process X string name // process name to create X X3 INUMACK // return instance number new process X miint inum // given instance number X X4 INOTIFY // notify everyone of existence of new process X string name // process name X miint inum // instance X X5 XNOTIFY // notify everyone of process exit X string name // process name X miint inum // instance X X6 ISPROC // query pvmd[0] of existence and location of a process X string name X miint inum X X7 LOCATE // return process location X string name X miint inum X miint host X miint flags X X8 INIT // create a process X string name X XXX This message needs to be extended X X9 HOSTGET // query where to initiate new process X string arch // requested architecture or NULL X X10 HOSTACK // reply where to initiate new process X miint host X X11 READY // user has signaled with ready() X string name // channel name X X12 EPOCH // pvmd[0] signalling to reset procs, barriers, etc. X X13 TERM // command to terminate a process X string name // process name X miint inum // instance number X X14 BARRIER // user has called barrier() X string name // channel name X int quorum // number needed to meet X X15 PS // request for local process list X X16 PSACK // reply to PS X int num // number of entries X { X string name // process name X int inum // instance number X int flags // process flags X } [num] X X17 CNT // get num of instances of process X string name // process name X X18 CNTACK // num of instances of proc X string name X miint count X X19 VCNOT // announce virt ckt addr for proc X string name // process name X miint inum // process instance X miint addr // ip address XXX scary to use int? X miint port // port X X________________________________________________________________________ XFROM CLIENT TO PVMD X X(Values are in machine-specific format) X Header X int pid // user proc id X int type // message type X int seq // sequence number X int flags X X1 UMC_ENROLL // enroll this process X string name // requested process name X X2 UMC_INIT // initiate another process X // specify UF_IN, UF_OUT, UF_ERR X string name // requested process name X string arch // maybe null X string host // maybe null X string stdin // optional if set in flags Not Implemented X string stdout // optional if set in flags Not Implemented X string stderr // optional if set in flags Not Implemented X int argc // arg count Not Implemented X string argv[] // optional if argc > 0 Not Implemented X X3 UMC_TERM // terminate a process X string name // process name X int inum // process inum X X4 UMC_WHOAMI // get name and instance of this process X no body X X5 UMC_LEAVE // exit this process from pvm X no body X X6 UMC_SEND // send message to a process or broadcast X string proc // process name X int inum // instance or -1 to broadcast X [data] X X7 UMC_RECV // download queued messages to this process X // specify UF_BLOCK X X8 UMC_BARR // participate in barrier X // specify UF_BARR, UF_RDY X string name // barrier/semaphore name X int count // optional how many if flags&barrier X X9 UMC_STAT // get status of a process X string name // process name X int inum // instance X X10 UMC_PSTAT // get virtual machine params X no body X X11 UMC_INST // get max instance of process name X string name // process name X X12 UMC_GETVC // get virt ckt addr for a process X string name // process name X int inum // instance X X13 UMC_SETVC // set the virt ckt addr of this process X sockaddr_in addr // the address X X14 UMC_VERSION // compare rev levels with pvmd X string version // ulib version X X15 UMC_MSTAT // get more virtual machine params X no body X X________________________________________________________________________ X XFROM PVMD TO CLIENT PROCESS X X(Values are in machine-specific format) X Header X int pid // user proc id - not used X int type // message type - not used X int seq // sequence number - matches request X int flags // command modifiers/return status bits X X1 UMC_ENROLL X // status in UF_ACK and UF_ALRDY X int inum // if ACK&!ALRDY X int maxmsglength // if ACK&!ALRDY X in_addr ad // if ACK&!ALRDY, our IP address X X2 UMC_INIT X // status in UF_ACK, UF_NEXE, UF_NHOST X int inum // if ACK X X3 UMC_TERM X // status in UF_ACK, UF_NPROC X X4 UMC_WHOAMI X // status in UF_ACK X string name // optional if ACK X int inum // optional if ACK X int maxmsglength // if ACK X in_addr ad // if ACK, our IP address X X5 UMC_LEAVE X X6 UMC_SEND X // status in UF_ACK, UF_NPROC X X7 UMC_RECV X // status in UF_ACK, UF_NMSG X string fromname X int frominum X uuheader X [data] // if ACK, !NMSG X X8 UMC_BARR X // status in UF_ACK X X9 UMC_STAT X // status in UF_ACK, UF_RUN X X10 UMC_PSTAT X // status in UF_ACK X int ncpus // optional if ACK X int nclasses // optional if ACK X X11 UMC_INST X int max // optional if ACK, 0 = no instances X X12 UMC_GETVC X sockaddr_in addr // optional if ACK and !NPROC X X13 UMC_SETVC X // status in UF_ACK X X14 UMC_VERSION X // status in UF_ACK X string version // pvmd version whether ack or not X int ndf // our native data format X X15 UMC_MSTAT X // status in UF_ACK X int ncpus // optional if ACK X int mycpu // host number X { X int stat // 0 if no procs running, 1 if any procs running X string name // host name X string arch // host architecture X } [ncpus] X X________________________________________________________________________ X END_OF_FILE if test 7169 -ne `wc -c <'pvm2.4/doc/MsgFormats'`; then echo shar: \"'pvm2.4/doc/MsgFormats'\" unpacked with wrong size! fi # end of 'pvm2.4/doc/MsgFormats' fi if test -f 'pvm2.4/doc/PvmPic' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/doc/PvmPic'\" else echo shar: Extracting \"'pvm2.4/doc/PvmPic'\" \(38246 characters\) sed "s/^X//" >'pvm2.4/doc/PvmPic' <<'END_OF_FILE' X%!PS-Adobe-2.0 EPSF-1.2 X%%DocumentFonts: Courier Times-Roman X%%Pages: 1 X%%BoundingBox: 44 59 513 725 X%%EndComments X X/arrowHeight 10 def X/arrowWidth 5 def X X/IdrawDict 52 dict def IdrawDict begin X X/reencodeISO { dup dup findfont dup length dict begin X{ 1 index /FID ne { def }{ pop pop } ifelse } forall X/Encoding ISOLatin1Encoding def currentdict end definefont X} def X X/ISOLatin1Encoding [ X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright X/parenleft/parenright/asterisk/plus/comma/minus/period/slash X/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon X/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N X/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright X/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m X/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef X/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve X/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut X/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar X/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot X/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior X/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine X/guillemotright/onequarter/onehalf/threequarters/questiondown X/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla X/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex X/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis X/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute X/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis X/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave X/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex X/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis X/yacute/thorn/ydieresis X] def X/Courier reencodeISO def X/Times-Roman reencodeISO def X X/none null def X/numGraphicParameters 17 def X/stringLimit 65535 def X X/Begin { save numGraphicParameters dict begin X} def X X/End { end restore X} def X X/SetB { dup type /nulltype eq { pop false /brushRightArrow idef false /brushLeftArrow idef true /brushNone idef X} { X/brushDashOffset idef X/brushDashArray idef X0 ne /brushRightArrow idef X0 ne /brushLeftArrow idef X/brushWidth idef false /brushNone idef X} ifelse X} def X X/SetCFg { X/fgblue idef X/fggreen idef X/fgred idef X} def X X/SetCBg { X/bgblue idef X/bggreen idef X/bgred idef X} def X X/SetF { X/printSize idef X/printFont idef X} def X X/SetP { dup type /nulltype eq { pop true /patternNone idef X} { dup -1 eq { X/patternGrayLevel idef X/patternString idef X} { X/patternGrayLevel idef X} ifelse false /patternNone idef X} ifelse X} def X X/BSpl { X0 begin storexyn newpath n 1 gt { X0 0 0 0 0 0 1 1 true subspline n 2 gt { X0 0 0 0 1 1 2 2 false subspline X1 1 n 3 sub { X/i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline X} for n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline X} if n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if X0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow X} if end X} dup 0 4 dict put def X X/Circ { newpath X0 360 arc patternNone not { ifill } if brushNone not { istroke } if X} def X X/CBSpl { X0 begin dup 2 gt { storexyn newpath n 1 sub dup 0 0 1 1 2 2 true subspline X1 1 n 3 sub { X/i exch def i 1 sub dup i dup i 1 add dup i 2 add dup false subspline X} for n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline n 2 sub dup n 1 sub dup 0 0 1 1 false subspline patternNone not { ifill } if brushNone not { istroke } if X} { Poly X} ifelse end X} dup 0 4 dict put def X X/Elli { X0 begin newpath X4 2 roll translate scale X0 0 1 0 360 arc patternNone not { ifill } if brushNone not { istroke } if end X} dup 0 1 dict put def X X/Line { X0 begin X2 storexyn newpath x 0 get y 0 get moveto x 1 get y 1 get lineto brushNone not { istroke } if X0 0 1 1 leftarrow X0 0 1 1 rightarrow end X} dup 0 4 dict put def X X/MLine { X0 begin storexyn newpath n 1 gt { x 0 get y 0 get moveto X1 1 n 1 sub { X/i exch def x i get y i get lineto X} for patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if brushNone not { istroke } if X0 0 1 1 leftarrow n 2 sub dup n 1 sub dup rightarrow X} if end X} dup 0 4 dict put def X X/Poly { X3 1 roll newpath moveto X-1 add X{ lineto } repeat closepath patternNone not { ifill } if brushNone not { istroke } if X} def X X/Rect { X0 begin X/t exch def X/r exch def X/b exch def X/l exch def newpath l b moveto l t lineto r t lineto r b lineto closepath patternNone not { ifill } if brushNone not { istroke } if end X} dup 0 4 dict put def X X/Text { ishow X} def X X/idef { dup where { pop pop pop } { exch def } ifelse X} def X X/ifill { X0 begin gsave patternGrayLevel -1 ne { fgred bgred fgred sub patternGrayLevel mul add fggreen bggreen fggreen sub patternGrayLevel mul add fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor eofill X} { eoclip originalCTM setmatrix pathbbox /t exch def /r exch def /b exch def /l exch def X/w r l sub ceiling cvi def X/h t b sub ceiling cvi def X/imageByteWidth w 8 div ceiling cvi def X/imageHeight h def bgred bggreen bgblue setrgbcolor eofill fgred fggreen fgblue setrgbcolor w 0 gt h 0 gt and { l b translate w h scale w h true [w 0 0 h neg 0 h] { patternproc } imagemask X} if X} ifelse grestore end X} dup 0 8 dict put def X X/istroke { gsave brushDashOffset -1 eq { X[] 0 setdash X1 setgray X} { brushDashArray brushDashOffset setdash fgred fggreen fgblue setrgbcolor X} ifelse brushWidth setlinewidth originalCTM setmatrix stroke grestore X} def X X/ishow { X0 begin gsave fgred fggreen fgblue setrgbcolor X/fontDict printFont printSize scalefont dup setfont def X/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end transform exch pop def X/vertoffset 1 printSize sub descender sub def { X0 vertoffset moveto show X/vertoffset vertoffset printSize sub def X} forall grestore end X} dup 0 3 dict put def X/patternproc { X0 begin X/patternByteLength patternString length def X/patternHeight patternByteLength 8 mul sqrt cvi def X/patternWidth patternHeight def X/patternByteWidth patternWidth 8 idiv def X/imageByteMaxLength imageByteWidth imageHeight mul stringLimit patternByteWidth sub min def X/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv patternHeight mul patternHeight max def X/imageHeight imageHeight imageMaxHeight sub store X/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def X0 1 imageMaxHeight 1 sub { X/y exch def X/patternRow y patternByteWidth mul patternByteLength mod def X/patternRowString patternString patternRow patternByteWidth getinterval def X/imageRow y imageByteWidth mul def X0 patternByteWidth imageByteWidth 1 sub { X/x exch def imageString imageRow x add patternRowString putinterval X} for X} for imageString end X} dup 0 12 dict put def X X/min { dup 3 2 roll dup 4 3 roll lt { exch } if pop X} def X X/max { dup 3 2 roll dup 4 3 roll gt { exch } if pop X} def X X/midpoint { X0 begin X/y1 exch def X/x1 exch def X/y0 exch def X/x0 exch def x0 x1 add 2 div y0 y1 add 2 div end X} dup 0 4 dict put def X X/thirdpoint { X0 begin X/y1 exch def X/x1 exch def X/y0 exch def X/x0 exch def x0 2 mul x1 add 3 div y0 2 mul y1 add 3 div end X} dup 0 4 dict put def X X/subspline { X0 begin X/movetoNeeded exch def y exch get /y3 exch def x exch get /x3 exch def y exch get /y2 exch def x exch get /x2 exch def y exch get /y1 exch def x exch get /x1 exch def y exch get /y0 exch def x exch get /x0 exch def x1 y1 x2 y2 thirdpoint X/p1y exch def X/p1x exch def x2 y2 x1 y1 thirdpoint X/p2y exch def X/p2x exch def x1 y1 x0 y0 thirdpoint p1x p1y midpoint X/p0y exch def X/p0x exch def x2 y2 x3 y3 thirdpoint p2x p2y midpoint X/p3y exch def X/p3x exch def movetoNeeded { p0x p0y moveto } if p1x p1y p2x p2y p3x p3y curveto end X} dup 0 17 dict put def X X/storexyn { X/n exch def X/y n array def X/x n array def n 1 sub -1 0 { X/i exch def y i 3 2 roll put x i 3 2 roll put X} for X} def X X%%EndProlog X X%%BeginIdrawPrologue X/arrowhead { X0 begin transform originalCTM itransform X/taily exch def X/tailx exch def transform originalCTM itransform X/tipy exch def X/tipx exch def X/dy tipy taily sub def X/dx tipx tailx sub def X/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def gsave originalCTM setmatrix tipx tipy translate angle rotate newpath arrowHeight neg arrowWidth 2 div moveto X0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto patternNone not { originalCTM setmatrix X/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul arrowWidth div def X/padtail brushWidth 2 div def tipx tipy translate angle rotate padtip 0 translate arrowHeight padtip add padtail add arrowHeight div dup scale arrowheadpath ifill X} if brushNone not { originalCTM setmatrix tipx tipy translate angle rotate arrowheadpath istroke X} if grestore end X} dup 0 9 dict put def X X/arrowheadpath { newpath arrowHeight neg arrowWidth 2 div moveto X0 0 lineto arrowHeight neg arrowWidth 2 div neg lineto X} def X X/leftarrow { X0 begin y exch get /taily exch def x exch get /tailx exch def y exch get /tipy exch def x exch get /tipx exch def brushLeftArrow { tipx tipy tailx taily arrowhead } if end X} dup 0 4 dict put def X X/rightarrow { X0 begin y exch get /tipy exch def x exch get /tipx exch def y exch get /taily exch def x exch get /tailx exch def brushRightArrow { tipx tipy tailx taily arrowhead } if end X} dup 0 4 dict put def X X%%EndIdrawPrologue X X%I Idraw 10 Grid 8 8 X X%%Page: 1 1 X Begin X%I b u X%I cfg u X%I cbg u X%I f u X%I p u X%I t X[ 0.799705 0 0 0.799705 0 0 ] concat X/originalCTM matrix currentmatrix def X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 0 0 0.5 371.5 392 ] concat X%I 6 X150 392 X214 392 X247 343 X215 296 X150 296 X119 344 X6 Poly XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 0 0 0.5 252.5 480.5 ] concat X%I 6 X150 392 X214 392 X247 343 X215 296 X150 296 X119 344 X6 Poly XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 0 0 0.5 264 253 ] concat X%I 6 X150 392 X214 392 X247 343 X215 296 X150 296 X119 344 X6 Poly XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 274 470 ] concat X%I X281 633 281 569 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 274 418.5 ] concat X%I X312 181 312 121 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 217 404 ] concat X%I X216 621 285 620 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 418.5 ] concat X%I X546 582 477 582 Line X%I 4 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 213.25 315.25 ] concat X%I X262 569 279 326 Line X%I 2 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 213.25 315.25 ] concat X%I X292 322 376 483 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 315.5 ] concat X%I X237 341 237 278 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 315.5 ] concat X%I X105 158 82 125 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 315.5 ] concat X%I X286 159 295 127 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 315.5 ] concat X%I X494 143 546 99 Line X%I 4 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 294.25 315.5 ] concat X%I X128 183 203 245 Line X%I 4 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 446 575 ] concat X%I X[ X(pvmd 3) X(rhubarb) X(UVAX) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 330 663 ] concat X%I X[ X(pvmd 0) X(thud) X(SUN4) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 224 572 ] concat X%I X[ X(pvmd 1) X(tonka) X(SYMM) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 341 437 ] concat X%I X[ X(pvmd 2) X(speedy) X(RIOS) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136 195 ] concat X%I X[ X(UDP socket) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136 177 ] concat X%I X[ X(UDP traffic) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 352 620 ] concat X%I X[ X(128.169.201.228:5001) X] Text XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1.18539 -0 -0 0.489779 232.121 161.613 ] concat X%I X87 329 134 378 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1.18539 -0 -0 0.489779 328.121 166.613 ] concat X%I X87 329 134 378 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1.18539 -0 -0 0.489779 165.621 161.613 ] concat X%I X87 329 134 378 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1.18539 -0 -0 0.489779 184.121 582.113 ] concat X%I X87 329 134 378 Rect XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 274 341.5 ] concat X%I X[ X(factor,0) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 340.5 342 ] concat X%I X[ X(factor,1) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 440 345 ] concat X%I X[ X(factor,2) X] Text XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.144458 0 0 0.144458 81.814 103.807 ] concat X%I 6 X150 392 X214 392 X247 343 X215 296 X150 296 X119 344 X6 Poly XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 0 0 0.5 147.5 388 ] concat X%I 6 X150 392 X214 392 X247 343 X215 296 X150 296 X119 344 X6 Poly XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136.5 158.75 ] concat X%I X[ X(PVM Daemon) X] Text XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346096 -0.00635404 0.00635403 0.346096 337.582 287.373 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.254448 0.234688 -0.234688 0.254448 468.153 274.668 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346145 -0.00246215 0.00246215 0.346145 350.138 265.199 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.30496 -0.163775 0.163775 0.30496 265.7 282.016 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346153 0.000932626 -0.000932623 0.346153 338.061 374.308 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 253.75 315.5 ] concat X%I X415 240 432 198 Line X%I 4 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 274 315.5 ] concat X%I X364 248 537 167 Line X%I 4 XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ -0.0242888 -0.345301 0.345301 -0.0242888 199.824 580.514 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.00910097 -0.346034 0.346034 0.00910097 315.506 575.962 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346023 -0.00950985 0.00950985 0.346023 90.726 96.397 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346133 -0.00379276 0.00379275 0.346133 329.027 514.007 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 425.5 366.75 ] concat X%I X[ X(/tmp/pvmu.2505) X] Text XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.344916 0.029244 -0.029244 0.344916 315.313 625.984 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 243.625 560.125 ] concat X%I X292 733 307 661 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 243.625 560.125 ] concat X%I X391 530 391 467 Line X%I 4 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 243.625 560.125 ] concat X%I X331 617 365 570 Line X%I 4 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 294.5 761 ] concat X%I X[ X(main,0) X] Text XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 162.625 456.875 ] concat X%I X346 287 285 227 Line X%I 2 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 162.625 456.875 ] concat X%I X277 187 367 39 Line X%I 2 XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.346152 -0.00109666 0.00109667 0.346152 327.009 602.142 ] concat X%I X41 272 30 11 Elli XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136 139.75 ] concat X%I X[ X(TCP socket) X] Text XEnd X Begin %I Line X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 64.875 97.125 ] concat X%I X114 97 243 97 Line X%I 4 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136 124.75 ] concat X%I X[ X(TCP connection) X] Text XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.14531 -0.203433 0.203433 0.14531 342.541 457.171 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.214694 0.128088 -0.128088 0.214694 369.098 621.837 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 352.625 616.125 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 430.125 564.125 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 200.625 557.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.202772 0.146231 -0.146231 0.202772 296.696 582.612 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 162.625 302.375 ] concat X%I 3 X274 660 X204 650 X168 605 X3 BSpl X%I 2 XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 243.625 302.375 ] concat X%I 3 X324 699 X478 706 X461 619 X3 BSpl X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 324.625 482.875 ] concat X%I X172 727 228 758 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 324.625 482.875 ] concat X%I X207 676 259 676 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 324.625 482.875 ] concat X%I X587 454 587 421 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 203.125 482.875 ] concat X%I X152 427 152 428 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 203.125 482.875 ] concat X%I X153 429 153 404 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 203.125 482.875 ] concat X%I X436 623 463 640 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 284.125 405.625 ] concat X%I X433 149 387 115 Line X%I 4 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-courier-medium-r-*-80-* Courier 8 SetF X%I t X[ 1 0 0 1 366.5 390.5 ] concat X%I X[ X(/tmp/pvmd.manchek) X] Text XEnd X Begin %I BSpl X%I b 65535 X1 1 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 243.625 173.625 ] concat X%I 5 X296 516 X358 454 X531 437 X531 342 X494 336 X5 BSpl X%I 2 XEnd X Begin %I BSpl X%I b 65535 X1 1 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 243.625 173.625 ] concat X%I 6 X306 519 X380 477 X556 445 X562 258 X302 270 X288 292 X6 BSpl X%I 2 XEnd X Begin %I BSpl X%I b 65535 X1 1 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 243.625 173.625 ] concat X%I 6 X319 525 X455 479 X567 466 X590 226 X147 266 X144 293 X6 BSpl X%I 2 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 523 461 ] concat X%I X[ X(inherited) X(stdout/err) X(streams) X] Text XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 162.625 276.625 ] concat X%I X283 566 476 575 Line X%I 2 XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 162.625 276.625 ] concat X%I X379 649 480 592 Line X%I 2 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 136 502 ] concat X%I X[ X(inter-pvmd) X(control, data) X(traffic) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 150 416 ] concat X%I X[ X(client-pvmd) X(control, data) X(traffic) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 414 755 ] concat X%I X[ X(control/debugging) X(streams) X(\(one per slave host\)) X] Text XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.533959 -0 -0 0.220621 51.6042 23.7604 ] concat X%I X87 329 134 378 Rect XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 137 106.5 ] concat X%I X[ X(Client process) X] Text XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 36 79 ] concat X%I 4 X360 599 X481 621 X512 432 X370 372 X4 BSpl X%I 1 XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 68.625 98.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 296.625 752.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 281.625 752.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 268.625 752.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 245.625 752.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 431.625 247.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 336.625 250.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 255.625 264.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 404.625 247.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 310.625 250.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.25 -0 -0 0.25 233.625 264.625 ] concat X%I X147 130 180 162 Rect XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 123 389.5 ] concat X%I X336 756 328 791 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 123 389.5 ] concat X%I X374 755 374 791 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 123 389.5 ] concat X%I X400 756 400 791 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 123 389.5 ] concat X%I X430 756 430 790 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X217 176 217 140 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X261 175 261 140 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X370 175 370 113 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X423 176 423 112 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X558 185 558 107 Line X%I 2 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 166 235 ] concat X%I X613 186 613 106 Line X%I 2 XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I 7 X349 772 X375 793 X584 774 X609 509 X604 230 X486 223 X482 249 X7 BSpl X%I 1 XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X522 103 51 26 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X189 371 49 26 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X172 459 44 27 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -32 49.5 ] concat X%I X493 687 64 29 Elli XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -21 79.5 ] concat X%I X567 365 33 25 Elli XEnd X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X522 427 484 393 Line X%I 1 XEnd X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X475 114 508 191 Line X%I 1 XEnd X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X227 388 330 350 Line X%I 1 XEnd X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I X190 484 313 488 Line X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I 7 X332 772 X353 816 X611 786 X621 475 X625 212 X407 205 X387 252 X7 BSpl X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 1 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -7 27.5 ] concat X%I 7 X317 772 X340 823 X609 812 X647 490 X627 161 X318 226 X305 264 X7 BSpl X%I 1 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 257 896 ] concat X%I X[ X(socket to) X(accept new) X(connections) X] Text XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 116 147.5 ] concat X%I X168 731 41 26 Elli XEnd X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 36 79 ] concat X%I X490 655 484 570 Line X%I 1 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 481 148 ] concat X%I X[ X(client-client) X(message) X(virtual circuits) X] Text XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-140-* Times-Roman 14 SetF X%I t X[ 1 0 0 1 309 104 ] concat X%I X[ X(PVM 2.4.0 System) X(December 1991) X] Text XEnd X Begin %I Pict X%I b u X%I cfg u X%I cbg u X%I f u X%I p u X%I t X[ 0.646941 0 0 0.646941 24.2236 421.391 ] concat X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.495203 -0 -0 0.581834 49.7395 348.094 ] concat X%I 4 X137 519 X277 519 X277 607 X137 607 X4 Poly XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.498715 -0 -0 0.498715 48.732 391.114 ] concat X%I 8 X143 492 X106 468 X123 468 X115 463 X172 463 X178 467 X218 467 X255 492 X8 Poly XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2223 520.239 ] concat X%I X346 387 346 358 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.231 520.32 ] concat X%I X223 498 496 498 Line X%I 4 XEnd X Begin %I MLine X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.1796 520.294 ] concat X%I 5 X61 388 X346 388 X498 498 X498 528 X470 520 X5 MLine X%I 4 XEnd X Begin %I MLine X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2075 520.348 ] concat X%I 8 X470 725 X586 656 X586 494 X346 358 X60 358 X60 388 X222 498 X222 516 X8 MLine X%I 4 XEnd X Begin %I CBSpl X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2123 520.4 ] concat X%I 8 X204 695 X227 713 X429 714 X456 696 X457 552 X431 533 X225 533 X204 550 X8 CBSpl XEnd X XEnd %I eop X Begin %I Pict X%I b u X%I cfg u X%I cbg u X%I f u X%I p u X%I t X[ 0.646941 0 0 0.646941 3.22363 257.391 ] concat X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.495203 -0 -0 0.581834 49.7395 348.094 ] concat X%I 4 X137 519 X277 519 X277 607 X137 607 X4 Poly XEnd X Begin %I Poly X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.498715 -0 -0 0.498715 48.732 391.114 ] concat X%I 8 X143 492 X106 468 X123 468 X115 463 X172 463 X178 467 X218 467 X255 492 X8 Poly XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2223 520.239 ] concat X%I X346 387 346 358 Line X%I 4 XEnd X Begin %I Line X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.231 520.32 ] concat X%I X223 498 496 498 Line X%I 4 XEnd X Begin %I MLine X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.1796 520.294 ] concat X%I 5 X61 388 X346 388 X498 498 X498 528 X470 520 X5 MLine X%I 4 XEnd X Begin %I MLine X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2075 520.348 ] concat X%I 8 X470 725 X586 656 X586 494 X346 358 X60 358 X60 388 X222 498 X222 516 X8 MLine X%I 4 XEnd X Begin %I CBSpl X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.249357 -0 -0 0.249357 70.2123 520.4 ] concat X%I 8 X204 695 X227 713 X429 714 X456 696 X457 552 X431 533 X225 533 X204 550 X8 CBSpl XEnd X XEnd %I eop X Begin %I Line X%I b 65535 X0 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 105.75 ] concat X%I X249 767 285 693 Line X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 105.75 ] concat X%I 3 X279 664 X208 732 X174 726 X3 BSpl X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 105.75 ] concat X%I 3 X277 651 X199 722 X163 717 X3 BSpl X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 105.75 ] concat X%I 3 X153 712 X245 633 X281 640 X3 BSpl X%I 1 XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 75 640 ] concat X%I X[ X(PVM) X(console) X] Text XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 208.75 ] concat X%I 3 X156 468 X287 438 X314 451 X3 BSpl X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 208.75 ] concat X%I 3 X322 469 X183 509 X154 491 X3 BSpl X%I 1 XEnd X Begin %I BSpl X%I b 65535 X1 0 1 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -4.875 208.75 ] concat X%I 3 X318 461 X183 496 X155 479 X3 BSpl X%I 1 XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 13.125 205.75 ] concat X%I X79 424 33 18 Elli XEnd X Begin %I Text X%I cfg Black X0 0 0 SetCFg X%I f *-times-medium-r-*-120-* Times-Roman 12 SetF X%I t X[ 1 0 0 1 86 802 ] concat X%I X[ X(application) X(console) X] Text XEnd X Begin %I Elli X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 -17.875 92.75 ] concat X%I X127 698 39 18 Elli XEnd X Begin %I Rect X%I b 65535 X0 0 0 [] 0 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 1 -0 -0 1 32 79 ] concat X%I X55 9 190 127 Rect XEnd X Begin %I Line X%I b 65520 X2 0 0 [12 4] 17 SetB X%I cfg Black X0 0 0 SetCFg X%I cbg White X1 1 1 SetCBg none SetP %I p n X%I t X[ 0.5 -0 -0 0.5 -10.5 29 ] concat X%I X206 283 262 283 Line X%I 2 XEnd X XEnd %I eop X showpage X X%%Trailer X end END_OF_FILE if test 38246 -ne `wc -c <'pvm2.4/doc/PvmPic'`; then echo shar: \"'pvm2.4/doc/PvmPic'\" unpacked with wrong size! fi # end of 'pvm2.4/doc/PvmPic' fi if test -f 'pvm2.4/doc/Version' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/doc/Version'\" else echo shar: Extracting \"'pvm2.4/doc/Version'\" \(4306 characters\) sed "s/^X//" >'pvm2.4/doc/Version' <<'END_OF_FILE' X Version info for PVM 2.4.2 X22 Dec 1992 X X________________________________________________________________________ PVM 2.4.2 [compatible with version 2.4.1 pvmds (*)] X + ALPHA port X + top-level makefile X . fixed libfpvm to truncate trailing spaces in strings X . fixed a few man pages X . moved C2MP arch to IEEE machine class, X . pvm_mstat now returns host index as it should X (*) created new class C2MPCXFP for native floating point. PVM 2.4.1 Patch 2 [never released] X + new fortran library libfpvm, much groovier. X + added DGAV arch class. X . pvmd doesn't catch already ignored signals (useful with bourne shell). PVM 2.4.1 Patch 1 X Improvements X + I386 port. X + 'aimk' sets variable PVMLFLAGS to correct loader flags for ARCH. X Fixes X . cleaned up src for better linting. X . lots of man pages. X . added to host.c. PVM 2.4.1 X Improvements X + KSR1 port. X + TITN port, untested and scary. X + CM5 port. X + pvmuser.h has extern "C" declaration for C++. X + can use pvm_mstat() to find host names, types, and status. X + can use pvm_inithow() to specify raw (non-XDR) message packing, X rcv() can return BadMsg if rx a raw msg from other host data class. X Fixes X . broke CM2 into CM2 and VCM2. X . pvmuser.h has check for multiple include. X . ep= default in host file now works correctly. X . unknown arch types now handled, i.e. pvm can still be homogeneous. X PVM 2.4.0 X Improvements X + added '-o' flag to pvmd ps command. X + user lib now prints error messages by default, turned off by pvm_aerr X + can now specify 'ep=path:path...' for each host in hostfile. X + hostnames (for initiateM, etc) now match the first part X in addition to the fully-qualified name, 'ps' shows short names. X + version checking between pvmd and user lib to prevent running X incompatible code X + direct-connect tcp message mech. available through vsnd() X and vrcv(). X + user lib returns error codes that can be compared to symbols X in "pvmuser.h". X + pvm_perror() function available to print error message. X + 'ps' command now queries remote pvmds to get more information. X + switched to defines for malloc, etc to allow instrumenting heap. X + better hostfile checking: multiple occ of a host, no master host, X master host not first, host '*' to set defaults X + Convex, HP Snake ports X Fixes X . user lib returns error code instead of exiting in case of X fatal error. X . whoami returns PvmNoComp instead of Syserr if process X not enrolled. X . implemented probemulti(). X . made rsh path absolute (/usr/ucb). X . improved signal handling, added arg to reap() and catch(). X . slave pvmd startup talks on stdout now and ignores stderr. X . added lread() function to read complete lines at slave startup. X . added u->u msg seq nos. to allow reassembly when >1 msg X from same process X PVM 2.3.4 X Improvements X + Silicon Graphics IRIS port X + pvmds negotiate maximum udp message length at startup. X Fixes X . fixed f2c f{get,put}n{short,long}() function names. X . removed static limitation on number of hosts (used to be 40). X PVM 2.3.3 X Improvements X + 'barr' command to check barrier/ready status X + pstatus() user call to return size of virtual machine X Fixes X . fixed fortran problem with closed stdin X . fixed malloc bug on process enroll X PVM 2.3.2 X Improvements X + password-less startup via rsh/rcmd X + per-host options in hostfile to X ask for password X specify alternate loginname X specify alternate pvmd executable path X + daemon-daemon version control to prevent mixed versions running X + added f{get,put}n{short,long}() to f2c library X + 'reset' pvmd command to reset the vm. X + can specify "." as host to initiateM() to create on localhost X Fixes X . fixed f{get,put}bytes() X . added status arg to frcv() X . added nulfix for mc in finitiate() X . closed many many fds that got left open before X . fixed incomplete lprocs caused by late messages X . now works with new (sun_family is a bit field X so can't use sizeof) X . fixed frag-out-of-order problem in ulib X PVM 2.2 X + XDR based pvmd-pvmd messages - totally non 2.1 compatible X + get*(), put*() --> getn*(), putn*() X + bcast() --> deprecated X + initiate*() --> initiate() X PVM 2.1 X + XDR based user messages - totally non 2.0 compatible X + initsend() now has no arg X + vestigial command mode on master pvmd X PVM 2.0 X + Complete rewrite X END_OF_FILE if test 4306 -ne `wc -c <'pvm2.4/doc/Version'`; then echo shar: \"'pvm2.4/doc/Version'\" unpacked with wrong size! fi # end of 'pvm2.4/doc/Version' fi if test ! -d 'pvm2.4/f2c' ; then echo shar: Creating directory \"'pvm2.4/f2c'\" mkdir 'pvm2.4/f2c' fi if test ! -d 'pvm2.4/f2c/CRAY' ; then echo shar: Creating directory \"'pvm2.4/f2c/CRAY'\" mkdir 'pvm2.4/f2c/CRAY' fi if test -f 'pvm2.4/f2c/CRAY/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/f2c/CRAY/Makefile'\" else echo shar: Extracting \"'pvm2.4/f2c/CRAY/Makefile'\" \(4222 characters\) sed "s/^X//" >'pvm2.4/f2c/CRAY/Makefile' <<'END_OF_FILE' X# X# PVM 2.2 X# University of Tennesee, Knoxville, TN. X# Oak Ridge National Laboratory, Oak Ridge, TN. X# X# Makefile for PVM/Cray X# ARCH = CRAY ARCHCFLAGS = HASRANLIB = f X# END of custom section - leave this line here X# X# Generic half makefile for Fortran to C lib for PVM. X# X# makefile to generate Fortran to C interface library for PVM (generic) X# define architecture (eg. SUN4 SUN3 RIOS) X SHELL = /bin/sh SDIR = .. CC = cc CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) X LOBS = fbarrier.o \ X fenroll.o \ X fgetbytes.o \ X fgetncplx.o \ X fgetndcplx.o \ X fgetndfloat.o \ X fgetnfloat.o \ X fgetnint.o \ X fgetnlong.o \ X fgetnshort.o \ X fgetstring.o \ X fgetstringl.o \ X finitiate.o \ X finitiatem.o \ X finithow.o \ X finitsend.o \ X fleave.o \ X fprobe.o \ X fprobemulti.o \ X fpstatus.o \ X fputbytes.o \ X fputncplx.o \ X fputndcplx.o \ X fputndfloat.o \ X fputnfloat.o \ X fputnint.o \ X fputnlong.o \ X fputnshort.o \ X fputstring.o \ X fputstringl.o \ X fpvmperror.o \ X frcv.o \ X frcvinfo.o \ X frcvmulti.o \ X fready.o \ X fsnd.o \ X fstatus.o \ X fterminate.o \ X fwaituntil.o \ X fwhoami.o \ X fvrcv.o \ X fvrcvmulti.o \ X fvsnd.o X libf2c.a: $(LOBS) X ar cr libf2c.a $? X case x$(HASRANLIB) in xt ) echo ranlib; ranlib libf2c.a ;; esac X clean: X rm -f $(LOBS) libf2c.a X tidy: X rm -f $(LOBS) X fbarrier.o: $(SDIR)/fbarrier.c X $(CC) $(CFLAGS) $(SDIR)/fbarrier.c fenroll.o: $(SDIR)/fenroll.c X $(CC) $(CFLAGS) $(SDIR)/fenroll.c fgetbytes.o: $(SDIR)/fgetbytes.c X $(CC) $(CFLAGS) $(SDIR)/fgetbytes.c fgetncplx.o: $(SDIR)/fgetncplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetncplx.c fgetndcplx.o: $(SDIR)/fgetndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetndcplx.c fgetndfloat.o: $(SDIR)/fgetndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetndfloat.c fgetnfloat.o: $(SDIR)/fgetnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetnfloat.c fgetnint.o: $(SDIR)/fgetnint.c X $(CC) $(CFLAGS) $(SDIR)/fgetnint.c fgetnlong.o: $(SDIR)/fgetnlong.c X $(CC) $(CFLAGS) $(SDIR)/fgetnlong.c fgetnshort.o: $(SDIR)/fgetnshort.c X $(CC) $(CFLAGS) $(SDIR)/fgetnshort.c fgetstring.o: $(SDIR)/fgetstring.c X $(CC) $(CFLAGS) $(SDIR)/fgetstring.c fgetstringl.o: $(SDIR)/fgetstringl.c X $(CC) $(CFLAGS) $(SDIR)/fgetstringl.c finitiate.o: $(SDIR)/finitiate.c X $(CC) $(CFLAGS) $(SDIR)/finitiate.c finitiatem.o: $(SDIR)/finitiatem.c X $(CC) $(CFLAGS) $(SDIR)/finitiatem.c finithow.o: $(SDIR)/finithow.c X $(CC) $(CFLAGS) $(SDIR)/finithow.c finitsend.o: $(SDIR)/finitsend.c X $(CC) $(CFLAGS) $(SDIR)/finitsend.c fleave.o: $(SDIR)/fleave.c X $(CC) $(CFLAGS) $(SDIR)/fleave.c fprobe.o: $(SDIR)/fprobe.c X $(CC) $(CFLAGS) $(SDIR)/fprobe.c fprobemulti.o: $(SDIR)/fprobemulti.c X $(CC) $(CFLAGS) $(SDIR)/fprobemulti.c fpstatus.o: $(SDIR)/fpstatus.c X $(CC) $(CFLAGS) $(SDIR)/fpstatus.c fputbytes.o: $(SDIR)/fputbytes.c X $(CC) $(CFLAGS) $(SDIR)/fputbytes.c fputncplx.o: $(SDIR)/fputncplx.c X $(CC) $(CFLAGS) $(SDIR)/fputncplx.c fputndcplx.o: $(SDIR)/fputndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fputndcplx.c fputndfloat.o: $(SDIR)/fputndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputndfloat.c fputnfloat.o: $(SDIR)/fputnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputnfloat.c fputnint.o: $(SDIR)/fputnint.c X $(CC) $(CFLAGS) $(SDIR)/fputnint.c fputnlong.o: $(SDIR)/fputnlong.c X $(CC) $(CFLAGS) $(SDIR)/fputnlong.c fputnshort.o: $(SDIR)/fputnshort.c X $(CC) $(CFLAGS) $(SDIR)/fputnshort.c fputstring.o: $(SDIR)/fputstring.c X $(CC) $(CFLAGS) $(SDIR)/fputstring.c fputstringl.o: $(SDIR)/fputstringl.c X $(CC) $(CFLAGS) $(SDIR)/fputstringl.c fpvmperror.o: $(SDIR)/fpvmperror.c X $(CC) $(CFLAGS) $(SDIR)/fpvmperror.c frcv.o: $(SDIR)/frcv.c X $(CC) $(CFLAGS) $(SDIR)/frcv.c frcvinfo.o: $(SDIR)/frcvinfo.c X $(CC) $(CFLAGS) $(SDIR)/frcvinfo.c frcvmulti.o: $(SDIR)/frcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/frcvmulti.c fready.o: $(SDIR)/fready.c X $(CC) $(CFLAGS) $(SDIR)/fready.c fsnd.o: $(SDIR)/fsnd.c X $(CC) $(CFLAGS) $(SDIR)/fsnd.c fstatus.o: $(SDIR)/fstatus.c X $(CC) $(CFLAGS) $(SDIR)/fstatus.c fterminate.o: $(SDIR)/fterminate.c X $(CC) $(CFLAGS) $(SDIR)/fterminate.c fwaituntil.o: $(SDIR)/fwaituntil.c X $(CC) $(CFLAGS) $(SDIR)/fwaituntil.c fwhoami.o: $(SDIR)/fwhoami.c X $(CC) $(CFLAGS) $(SDIR)/fwhoami.c fvrcv.o: $(SDIR)/fvrcv.c X $(CC) $(CFLAGS) $(SDIR)/fvrcv.c fvrcvmulti.o: $(SDIR)/fvrcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/fvrcvmulti.c fvsnd.o: $(SDIR)/fvsnd.c X $(CC) $(CFLAGS) $(SDIR)/fvsnd.c X END_OF_FILE if test 4222 -ne `wc -c <'pvm2.4/f2c/CRAY/Makefile'`; then echo shar: \"'pvm2.4/f2c/CRAY/Makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/f2c/CRAY/Makefile' fi if test ! -d 'pvm2.4/f2c/CRAYSMP' ; then echo shar: Creating directory \"'pvm2.4/f2c/CRAYSMP'\" mkdir 'pvm2.4/f2c/CRAYSMP' fi if test -f 'pvm2.4/f2c/CRAYSMP/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/f2c/CRAYSMP/Makefile'\" else echo shar: Extracting \"'pvm2.4/f2c/CRAYSMP/Makefile'\" \(4230 characters\) sed "s/^X//" >'pvm2.4/f2c/CRAYSMP/Makefile' <<'END_OF_FILE' X# X# PVM 2.2 X# University of Tennesee, Knoxville, TN. X# Oak Ridge National Laboratory, Oak Ridge, TN. X# X# Makefile for PVM/Cray S-MP X# ARCH = CRAYSMP ARCHCFLAGS = HASRANLIB = t X# END of custom section - leave this line here X# X# Generic half makefile for Fortran to C lib for PVM. X# X# makefile to generate Fortran to C interface library for PVM (generic) X# define architecture (eg. SUN4 SUN3 RIOS) X SHELL = /bin/sh SDIR = .. CC = cc CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) X LOBS = fbarrier.o \ X fenroll.o \ X fgetbytes.o \ X fgetncplx.o \ X fgetndcplx.o \ X fgetndfloat.o \ X fgetnfloat.o \ X fgetnint.o \ X fgetnlong.o \ X fgetnshort.o \ X fgetstring.o \ X fgetstringl.o \ X finitiate.o \ X finitiatem.o \ X finithow.o \ X finitsend.o \ X fleave.o \ X fprobe.o \ X fprobemulti.o \ X fpstatus.o \ X fputbytes.o \ X fputncplx.o \ X fputndcplx.o \ X fputndfloat.o \ X fputnfloat.o \ X fputnint.o \ X fputnlong.o \ X fputnshort.o \ X fputstring.o \ X fputstringl.o \ X fpvmperror.o \ X frcv.o \ X frcvinfo.o \ X frcvmulti.o \ X fready.o \ X fsnd.o \ X fstatus.o \ X fterminate.o \ X fwaituntil.o \ X fwhoami.o \ X fvrcv.o \ X fvrcvmulti.o \ X fvsnd.o X libf2c.a: $(LOBS) X ar cr libf2c.a $? X case x$(HASRANLIB) in xt ) echo ranlib; ranlib libf2c.a ;; esac X clean: X rm -f $(LOBS) libf2c.a X tidy: X rm -f $(LOBS) X fbarrier.o: $(SDIR)/fbarrier.c X $(CC) $(CFLAGS) $(SDIR)/fbarrier.c fenroll.o: $(SDIR)/fenroll.c X $(CC) $(CFLAGS) $(SDIR)/fenroll.c fgetbytes.o: $(SDIR)/fgetbytes.c X $(CC) $(CFLAGS) $(SDIR)/fgetbytes.c fgetncplx.o: $(SDIR)/fgetncplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetncplx.c fgetndcplx.o: $(SDIR)/fgetndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetndcplx.c fgetndfloat.o: $(SDIR)/fgetndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetndfloat.c fgetnfloat.o: $(SDIR)/fgetnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetnfloat.c fgetnint.o: $(SDIR)/fgetnint.c X $(CC) $(CFLAGS) $(SDIR)/fgetnint.c fgetnlong.o: $(SDIR)/fgetnlong.c X $(CC) $(CFLAGS) $(SDIR)/fgetnlong.c fgetnshort.o: $(SDIR)/fgetnshort.c X $(CC) $(CFLAGS) $(SDIR)/fgetnshort.c fgetstring.o: $(SDIR)/fgetstring.c X $(CC) $(CFLAGS) $(SDIR)/fgetstring.c fgetstringl.o: $(SDIR)/fgetstringl.c X $(CC) $(CFLAGS) $(SDIR)/fgetstringl.c finitiate.o: $(SDIR)/finitiate.c X $(CC) $(CFLAGS) $(SDIR)/finitiate.c finitiatem.o: $(SDIR)/finitiatem.c X $(CC) $(CFLAGS) $(SDIR)/finitiatem.c finithow.o: $(SDIR)/finithow.c X $(CC) $(CFLAGS) $(SDIR)/finithow.c finitsend.o: $(SDIR)/finitsend.c X $(CC) $(CFLAGS) $(SDIR)/finitsend.c fleave.o: $(SDIR)/fleave.c X $(CC) $(CFLAGS) $(SDIR)/fleave.c fprobe.o: $(SDIR)/fprobe.c X $(CC) $(CFLAGS) $(SDIR)/fprobe.c fprobemulti.o: $(SDIR)/fprobemulti.c X $(CC) $(CFLAGS) $(SDIR)/fprobemulti.c fpstatus.o: $(SDIR)/fpstatus.c X $(CC) $(CFLAGS) $(SDIR)/fpstatus.c fputbytes.o: $(SDIR)/fputbytes.c X $(CC) $(CFLAGS) $(SDIR)/fputbytes.c fputncplx.o: $(SDIR)/fputncplx.c X $(CC) $(CFLAGS) $(SDIR)/fputncplx.c fputndcplx.o: $(SDIR)/fputndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fputndcplx.c fputndfloat.o: $(SDIR)/fputndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputndfloat.c fputnfloat.o: $(SDIR)/fputnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputnfloat.c fputnint.o: $(SDIR)/fputnint.c X $(CC) $(CFLAGS) $(SDIR)/fputnint.c fputnlong.o: $(SDIR)/fputnlong.c X $(CC) $(CFLAGS) $(SDIR)/fputnlong.c fputnshort.o: $(SDIR)/fputnshort.c X $(CC) $(CFLAGS) $(SDIR)/fputnshort.c fputstring.o: $(SDIR)/fputstring.c X $(CC) $(CFLAGS) $(SDIR)/fputstring.c fputstringl.o: $(SDIR)/fputstringl.c X $(CC) $(CFLAGS) $(SDIR)/fputstringl.c fpvmperror.o: $(SDIR)/fpvmperror.c X $(CC) $(CFLAGS) $(SDIR)/fpvmperror.c frcv.o: $(SDIR)/frcv.c X $(CC) $(CFLAGS) $(SDIR)/frcv.c frcvinfo.o: $(SDIR)/frcvinfo.c X $(CC) $(CFLAGS) $(SDIR)/frcvinfo.c frcvmulti.o: $(SDIR)/frcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/frcvmulti.c fready.o: $(SDIR)/fready.c X $(CC) $(CFLAGS) $(SDIR)/fready.c fsnd.o: $(SDIR)/fsnd.c X $(CC) $(CFLAGS) $(SDIR)/fsnd.c fstatus.o: $(SDIR)/fstatus.c X $(CC) $(CFLAGS) $(SDIR)/fstatus.c fterminate.o: $(SDIR)/fterminate.c X $(CC) $(CFLAGS) $(SDIR)/fterminate.c fwaituntil.o: $(SDIR)/fwaituntil.c X $(CC) $(CFLAGS) $(SDIR)/fwaituntil.c fwhoami.o: $(SDIR)/fwhoami.c X $(CC) $(CFLAGS) $(SDIR)/fwhoami.c fvrcv.o: $(SDIR)/fvrcv.c X $(CC) $(CFLAGS) $(SDIR)/fvrcv.c fvrcvmulti.o: $(SDIR)/fvrcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/fvrcvmulti.c fvsnd.o: $(SDIR)/fvsnd.c X $(CC) $(CFLAGS) $(SDIR)/fvsnd.c X END_OF_FILE if test 4230 -ne `wc -c <'pvm2.4/f2c/CRAYSMP/Makefile'`; then echo shar: \"'pvm2.4/f2c/CRAYSMP/Makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/f2c/CRAYSMP/Makefile' fi if test ! -d 'pvm2.4/f2c/HP9K' ; then echo shar: Creating directory \"'pvm2.4/f2c/HP9K'\" mkdir 'pvm2.4/f2c/HP9K' fi if test -f 'pvm2.4/f2c/HP9K/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/f2c/HP9K/Makefile'\" else echo shar: Extracting \"'pvm2.4/f2c/HP9K/Makefile'\" \(4229 characters\) sed "s/^X//" >'pvm2.4/f2c/HP9K/Makefile' <<'END_OF_FILE' X# X# PVM 2.4 X# University of Tennesee, Knoxville, TN. X# Oak Ridge National Laboratory, Oak Ridge, TN. X# X# Makefile for PVM/HP Snakeage X# ARCH = HP9K ARCHCFLAGS = HASRANLIB = f X# END of custom section - leave this line here X# X# Generic half makefile for Fortran to C lib for PVM. X# X# makefile to generate Fortran to C interface library for PVM (generic) X# define architecture (eg. SUN4 SUN3 RIOS) X SHELL = /bin/sh SDIR = .. CC = cc CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) X LOBS = fbarrier.o \ X fenroll.o \ X fgetbytes.o \ X fgetncplx.o \ X fgetndcplx.o \ X fgetndfloat.o \ X fgetnfloat.o \ X fgetnint.o \ X fgetnlong.o \ X fgetnshort.o \ X fgetstring.o \ X fgetstringl.o \ X finitiate.o \ X finitiatem.o \ X finithow.o \ X finitsend.o \ X fleave.o \ X fprobe.o \ X fprobemulti.o \ X fpstatus.o \ X fputbytes.o \ X fputncplx.o \ X fputndcplx.o \ X fputndfloat.o \ X fputnfloat.o \ X fputnint.o \ X fputnlong.o \ X fputnshort.o \ X fputstring.o \ X fputstringl.o \ X fpvmperror.o \ X frcv.o \ X frcvinfo.o \ X frcvmulti.o \ X fready.o \ X fsnd.o \ X fstatus.o \ X fterminate.o \ X fwaituntil.o \ X fwhoami.o \ X fvrcv.o \ X fvrcvmulti.o \ X fvsnd.o X libf2c.a: $(LOBS) X ar cr libf2c.a $? X case x$(HASRANLIB) in xt ) echo ranlib; ranlib libf2c.a ;; esac X clean: X rm -f $(LOBS) libf2c.a X tidy: X rm -f $(LOBS) X fbarrier.o: $(SDIR)/fbarrier.c X $(CC) $(CFLAGS) $(SDIR)/fbarrier.c fenroll.o: $(SDIR)/fenroll.c X $(CC) $(CFLAGS) $(SDIR)/fenroll.c fgetbytes.o: $(SDIR)/fgetbytes.c X $(CC) $(CFLAGS) $(SDIR)/fgetbytes.c fgetncplx.o: $(SDIR)/fgetncplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetncplx.c fgetndcplx.o: $(SDIR)/fgetndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetndcplx.c fgetndfloat.o: $(SDIR)/fgetndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetndfloat.c fgetnfloat.o: $(SDIR)/fgetnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetnfloat.c fgetnint.o: $(SDIR)/fgetnint.c X $(CC) $(CFLAGS) $(SDIR)/fgetnint.c fgetnlong.o: $(SDIR)/fgetnlong.c X $(CC) $(CFLAGS) $(SDIR)/fgetnlong.c fgetnshort.o: $(SDIR)/fgetnshort.c X $(CC) $(CFLAGS) $(SDIR)/fgetnshort.c fgetstring.o: $(SDIR)/fgetstring.c X $(CC) $(CFLAGS) $(SDIR)/fgetstring.c fgetstringl.o: $(SDIR)/fgetstringl.c X $(CC) $(CFLAGS) $(SDIR)/fgetstringl.c finitiate.o: $(SDIR)/finitiate.c X $(CC) $(CFLAGS) $(SDIR)/finitiate.c finitiatem.o: $(SDIR)/finitiatem.c X $(CC) $(CFLAGS) $(SDIR)/finitiatem.c finithow.o: $(SDIR)/finithow.c X $(CC) $(CFLAGS) $(SDIR)/finithow.c finitsend.o: $(SDIR)/finitsend.c X $(CC) $(CFLAGS) $(SDIR)/finitsend.c fleave.o: $(SDIR)/fleave.c X $(CC) $(CFLAGS) $(SDIR)/fleave.c fprobe.o: $(SDIR)/fprobe.c X $(CC) $(CFLAGS) $(SDIR)/fprobe.c fprobemulti.o: $(SDIR)/fprobemulti.c X $(CC) $(CFLAGS) $(SDIR)/fprobemulti.c fpstatus.o: $(SDIR)/fpstatus.c X $(CC) $(CFLAGS) $(SDIR)/fpstatus.c fputbytes.o: $(SDIR)/fputbytes.c X $(CC) $(CFLAGS) $(SDIR)/fputbytes.c fputncplx.o: $(SDIR)/fputncplx.c X $(CC) $(CFLAGS) $(SDIR)/fputncplx.c fputndcplx.o: $(SDIR)/fputndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fputndcplx.c fputndfloat.o: $(SDIR)/fputndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputndfloat.c fputnfloat.o: $(SDIR)/fputnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputnfloat.c fputnint.o: $(SDIR)/fputnint.c X $(CC) $(CFLAGS) $(SDIR)/fputnint.c fputnlong.o: $(SDIR)/fputnlong.c X $(CC) $(CFLAGS) $(SDIR)/fputnlong.c fputnshort.o: $(SDIR)/fputnshort.c X $(CC) $(CFLAGS) $(SDIR)/fputnshort.c fputstring.o: $(SDIR)/fputstring.c X $(CC) $(CFLAGS) $(SDIR)/fputstring.c fputstringl.o: $(SDIR)/fputstringl.c X $(CC) $(CFLAGS) $(SDIR)/fputstringl.c fpvmperror.o: $(SDIR)/fpvmperror.c X $(CC) $(CFLAGS) $(SDIR)/fpvmperror.c frcv.o: $(SDIR)/frcv.c X $(CC) $(CFLAGS) $(SDIR)/frcv.c frcvinfo.o: $(SDIR)/frcvinfo.c X $(CC) $(CFLAGS) $(SDIR)/frcvinfo.c frcvmulti.o: $(SDIR)/frcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/frcvmulti.c fready.o: $(SDIR)/fready.c X $(CC) $(CFLAGS) $(SDIR)/fready.c fsnd.o: $(SDIR)/fsnd.c X $(CC) $(CFLAGS) $(SDIR)/fsnd.c fstatus.o: $(SDIR)/fstatus.c X $(CC) $(CFLAGS) $(SDIR)/fstatus.c fterminate.o: $(SDIR)/fterminate.c X $(CC) $(CFLAGS) $(SDIR)/fterminate.c fwaituntil.o: $(SDIR)/fwaituntil.c X $(CC) $(CFLAGS) $(SDIR)/fwaituntil.c fwhoami.o: $(SDIR)/fwhoami.c X $(CC) $(CFLAGS) $(SDIR)/fwhoami.c fvrcv.o: $(SDIR)/fvrcv.c X $(CC) $(CFLAGS) $(SDIR)/fvrcv.c fvrcvmulti.o: $(SDIR)/fvrcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/fvrcvmulti.c fvsnd.o: $(SDIR)/fvsnd.c X $(CC) $(CFLAGS) $(SDIR)/fvsnd.c X END_OF_FILE if test 4229 -ne `wc -c <'pvm2.4/f2c/HP9K/Makefile'`; then echo shar: \"'pvm2.4/f2c/HP9K/Makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/f2c/HP9K/Makefile' fi if test ! -d 'pvm2.4/f2c/I860' ; then echo shar: Creating directory \"'pvm2.4/f2c/I860'\" mkdir 'pvm2.4/f2c/I860' fi if test -f 'pvm2.4/f2c/I860/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/f2c/I860/Makefile'\" else echo shar: Extracting \"'pvm2.4/f2c/I860/Makefile'\" \(4227 characters\) sed "s/^X//" >'pvm2.4/f2c/I860/Makefile' <<'END_OF_FILE' X# X# PVM 2.2 X# University of Tennesee, Knoxville, TN. X# Oak Ridge National Laboratory, Oak Ridge, TN. X# X# Makefile for PVM/Intel 860 X# ARCH = I860 ARCHCFLAGS = HASRANLIB = f X# END of custom section - leave this line here X# X# Generic half makefile for Fortran to C lib for PVM. X# X# makefile to generate Fortran to C interface library for PVM (generic) X# define architecture (eg. SUN4 SUN3 RIOS) X SHELL = /bin/sh SDIR = .. CC = cc CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) X LOBS = fbarrier.o \ X fenroll.o \ X fgetbytes.o \ X fgetncplx.o \ X fgetndcplx.o \ X fgetndfloat.o \ X fgetnfloat.o \ X fgetnint.o \ X fgetnlong.o \ X fgetnshort.o \ X fgetstring.o \ X fgetstringl.o \ X finitiate.o \ X finitiatem.o \ X finithow.o \ X finitsend.o \ X fleave.o \ X fprobe.o \ X fprobemulti.o \ X fpstatus.o \ X fputbytes.o \ X fputncplx.o \ X fputndcplx.o \ X fputndfloat.o \ X fputnfloat.o \ X fputnint.o \ X fputnlong.o \ X fputnshort.o \ X fputstring.o \ X fputstringl.o \ X fpvmperror.o \ X frcv.o \ X frcvinfo.o \ X frcvmulti.o \ X fready.o \ X fsnd.o \ X fstatus.o \ X fterminate.o \ X fwaituntil.o \ X fwhoami.o \ X fvrcv.o \ X fvrcvmulti.o \ X fvsnd.o X libf2c.a: $(LOBS) X ar cr libf2c.a $? X case x$(HASRANLIB) in xt ) echo ranlib; ranlib libf2c.a ;; esac X clean: X rm -f $(LOBS) libf2c.a X tidy: X rm -f $(LOBS) X fbarrier.o: $(SDIR)/fbarrier.c X $(CC) $(CFLAGS) $(SDIR)/fbarrier.c fenroll.o: $(SDIR)/fenroll.c X $(CC) $(CFLAGS) $(SDIR)/fenroll.c fgetbytes.o: $(SDIR)/fgetbytes.c X $(CC) $(CFLAGS) $(SDIR)/fgetbytes.c fgetncplx.o: $(SDIR)/fgetncplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetncplx.c fgetndcplx.o: $(SDIR)/fgetndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetndcplx.c fgetndfloat.o: $(SDIR)/fgetndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetndfloat.c fgetnfloat.o: $(SDIR)/fgetnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetnfloat.c fgetnint.o: $(SDIR)/fgetnint.c X $(CC) $(CFLAGS) $(SDIR)/fgetnint.c fgetnlong.o: $(SDIR)/fgetnlong.c X $(CC) $(CFLAGS) $(SDIR)/fgetnlong.c fgetnshort.o: $(SDIR)/fgetnshort.c X $(CC) $(CFLAGS) $(SDIR)/fgetnshort.c fgetstring.o: $(SDIR)/fgetstring.c X $(CC) $(CFLAGS) $(SDIR)/fgetstring.c fgetstringl.o: $(SDIR)/fgetstringl.c X $(CC) $(CFLAGS) $(SDIR)/fgetstringl.c finitiate.o: $(SDIR)/finitiate.c X $(CC) $(CFLAGS) $(SDIR)/finitiate.c finitiatem.o: $(SDIR)/finitiatem.c X $(CC) $(CFLAGS) $(SDIR)/finitiatem.c finithow.o: $(SDIR)/finithow.c X $(CC) $(CFLAGS) $(SDIR)/finithow.c finitsend.o: $(SDIR)/finitsend.c X $(CC) $(CFLAGS) $(SDIR)/finitsend.c fleave.o: $(SDIR)/fleave.c X $(CC) $(CFLAGS) $(SDIR)/fleave.c fprobe.o: $(SDIR)/fprobe.c X $(CC) $(CFLAGS) $(SDIR)/fprobe.c fprobemulti.o: $(SDIR)/fprobemulti.c X $(CC) $(CFLAGS) $(SDIR)/fprobemulti.c fpstatus.o: $(SDIR)/fpstatus.c X $(CC) $(CFLAGS) $(SDIR)/fpstatus.c fputbytes.o: $(SDIR)/fputbytes.c X $(CC) $(CFLAGS) $(SDIR)/fputbytes.c fputncplx.o: $(SDIR)/fputncplx.c X $(CC) $(CFLAGS) $(SDIR)/fputncplx.c fputndcplx.o: $(SDIR)/fputndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fputndcplx.c fputndfloat.o: $(SDIR)/fputndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputndfloat.c fputnfloat.o: $(SDIR)/fputnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputnfloat.c fputnint.o: $(SDIR)/fputnint.c X $(CC) $(CFLAGS) $(SDIR)/fputnint.c fputnlong.o: $(SDIR)/fputnlong.c X $(CC) $(CFLAGS) $(SDIR)/fputnlong.c fputnshort.o: $(SDIR)/fputnshort.c X $(CC) $(CFLAGS) $(SDIR)/fputnshort.c fputstring.o: $(SDIR)/fputstring.c X $(CC) $(CFLAGS) $(SDIR)/fputstring.c fputstringl.o: $(SDIR)/fputstringl.c X $(CC) $(CFLAGS) $(SDIR)/fputstringl.c fpvmperror.o: $(SDIR)/fpvmperror.c X $(CC) $(CFLAGS) $(SDIR)/fpvmperror.c frcv.o: $(SDIR)/frcv.c X $(CC) $(CFLAGS) $(SDIR)/frcv.c frcvinfo.o: $(SDIR)/frcvinfo.c X $(CC) $(CFLAGS) $(SDIR)/frcvinfo.c frcvmulti.o: $(SDIR)/frcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/frcvmulti.c fready.o: $(SDIR)/fready.c X $(CC) $(CFLAGS) $(SDIR)/fready.c fsnd.o: $(SDIR)/fsnd.c X $(CC) $(CFLAGS) $(SDIR)/fsnd.c fstatus.o: $(SDIR)/fstatus.c X $(CC) $(CFLAGS) $(SDIR)/fstatus.c fterminate.o: $(SDIR)/fterminate.c X $(CC) $(CFLAGS) $(SDIR)/fterminate.c fwaituntil.o: $(SDIR)/fwaituntil.c X $(CC) $(CFLAGS) $(SDIR)/fwaituntil.c fwhoami.o: $(SDIR)/fwhoami.c X $(CC) $(CFLAGS) $(SDIR)/fwhoami.c fvrcv.o: $(SDIR)/fvrcv.c X $(CC) $(CFLAGS) $(SDIR)/fvrcv.c fvrcvmulti.o: $(SDIR)/fvrcvmulti.c X $(CC) $(CFLAGS) $(SDIR)/fvrcvmulti.c fvsnd.o: $(SDIR)/fvsnd.c X $(CC) $(CFLAGS) $(SDIR)/fvsnd.c X END_OF_FILE if test 4227 -ne `wc -c <'pvm2.4/f2c/I860/Makefile'`; then echo shar: \"'pvm2.4/f2c/I860/Makefile'\" unpacked with wrong size! fi # end of 'pvm2.4/f2c/I860/Makefile' fi if test -f 'pvm2.4/f2c/Makefile.body' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pvm2.4/f2c/Makefile.body'\" else echo shar: Extracting \"'pvm2.4/f2c/Makefile.body'\" \(4007 characters\) sed "s/^X//" >'pvm2.4/f2c/Makefile.body' <<'END_OF_FILE' X# X# Generic half makefile for Fortran to C lib for PVM. X# X# makefile to generate Fortran to C interface library for PVM (generic) X# define architecture (eg. SUN4 SUN3 RIOS) X SHELL = /bin/sh SDIR = .. CC = cc CFLAGS = -g -D$(ARCH) -c $(ARCHCFLAGS) X LOBS = fbarrier.o \ X fenroll.o \ X fgetbytes.o \ X fgetncplx.o \ X fgetndcplx.o \ X fgetndfloat.o \ X fgetnfloat.o \ X fgetnint.o \ X fgetnlong.o \ X fgetnshort.o \ X fgetstring.o \ X fgetstringl.o \ X finitiate.o \ X finitiatem.o \ X finithow.o \ X finitsend.o \ X fleave.o \ X fprobe.o \ X fprobemulti.o \ X fpstatus.o \ X fputbytes.o \ X fputncplx.o \ X fputndcplx.o \ X fputndfloat.o \ X fputnfloat.o \ X fputnint.o \ X fputnlong.o \ X fputnshort.o \ X fputstring.o \ X fputstringl.o \ X fpvmperror.o \ X frcv.o \ X frcvinfo.o \ X frcvmulti.o \ X fready.o \ X fsnd.o \ X fstatus.o \ X fterminate.o \ X fwaituntil.o \ X fwhoami.o \ X fvrcv.o \ X fvrcvmulti.o \ X fvsnd.o X libf2c.a: $(LOBS) X ar cr libf2c.a $? X case x$(HASRANLIB) in xt ) echo ranlib; ranlib libf2c.a ;; esac X clean: X rm -f $(LOBS) libf2c.a X tidy: X rm -f $(LOBS) X fbarrier.o: $(SDIR)/fbarrier.c X $(CC) $(CFLAGS) $(SDIR)/fbarrier.c fenroll.o: $(SDIR)/fenroll.c X $(CC) $(CFLAGS) $(SDIR)/fenroll.c fgetbytes.o: $(SDIR)/fgetbytes.c X $(CC) $(CFLAGS) $(SDIR)/fgetbytes.c fgetncplx.o: $(SDIR)/fgetncplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetncplx.c fgetndcplx.o: $(SDIR)/fgetndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fgetndcplx.c fgetndfloat.o: $(SDIR)/fgetndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetndfloat.c fgetnfloat.o: $(SDIR)/fgetnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fgetnfloat.c fgetnint.o: $(SDIR)/fgetnint.c X $(CC) $(CFLAGS) $(SDIR)/fgetnint.c fgetnlong.o: $(SDIR)/fgetnlong.c X $(CC) $(CFLAGS) $(SDIR)/fgetnlong.c fgetnshort.o: $(SDIR)/fgetnshort.c X $(CC) $(CFLAGS) $(SDIR)/fgetnshort.c fgetstring.o: $(SDIR)/fgetstring.c X $(CC) $(CFLAGS) $(SDIR)/fgetstring.c fgetstringl.o: $(SDIR)/fgetstringl.c X $(CC) $(CFLAGS) $(SDIR)/fgetstringl.c finitiate.o: $(SDIR)/finitiate.c X $(CC) $(CFLAGS) $(SDIR)/finitiate.c finitiatem.o: $(SDIR)/finitiatem.c X $(CC) $(CFLAGS) $(SDIR)/finitiatem.c finithow.o: $(SDIR)/finithow.c X $(CC) $(CFLAGS) $(SDIR)/finithow.c finitsend.o: $(SDIR)/finitsend.c X $(CC) $(CFLAGS) $(SDIR)/finitsend.c fleave.o: $(SDIR)/fleave.c X $(CC) $(CFLAGS) $(SDIR)/fleave.c fprobe.o: $(SDIR)/fprobe.c X $(CC) $(CFLAGS) $(SDIR)/fprobe.c fprobemulti.o: $(SDIR)/fprobemulti.c X $(CC) $(CFLAGS) $(SDIR)/fprobemulti.c fpstatus.o: $(SDIR)/fpstatus.c X $(CC) $(CFLAGS) $(SDIR)/fpstatus.c fputbytes.o: $(SDIR)/fputbytes.c X $(CC) $(CFLAGS) $(SDIR)/fputbytes.c fputncplx.o: $(SDIR)/fputncplx.c X $(CC) $(CFLAGS) $(SDIR)/fputncplx.c fputndcplx.o: $(SDIR)/fputndcplx.c X $(CC) $(CFLAGS) $(SDIR)/fputndcplx.c fputndfloat.o: $(SDIR)/fputndfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputndfloat.c fputnfloat.o: $(SDIR)/fputnfloat.c X $(CC) $(CFLAGS) $(SDIR)/fputnfloat.c fputnint.o: $(SDIR)/fputnint.c X $(CC) $(CFLAGS) $(SDIR)/fputnint.c fputnlong.o: $(SDIR)/fputnlong.c X $(CC) $(CFLAGS) $(SDIR)/fputnlong.c fputnshort.o: $(SDIR)/fputnshort.c X $(CC) $(CFLAGS) $(SDIR)/fputnshort.c fputstring.o: $(SDIR)/fputstring.c X $(CC) $(CFLAGS) $(SDIR)/fputstring.c fputstringl.o: $(SDIR)/fputstringl.c X $(CC) $(CFLAGS) $(SDIR)/fputstringl.c fpvmperror.o: $(SDIR)/fpvmperror.c X $(CC) $(CFLAGS) $(SDIR)/fpvmperror.c frcv.o: $(SDIR)/frcv.c X $(CC) $(CFLAGS) $(SDIR)/frcv