PVM version 3.4: Parallel Virtual Machine System University of Tennessee, Knoxville TN. Oak Ridge National Laboratory, Oak Ridge TN. Emory University, Atlanta GA. Authors: J. J. Dongarra, G. E. Fagg, G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci, P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam (C) 1997 All Rights Reserved NOTICE Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice appear in supporting documentation. Neither the Institutions (Emory University, Oak Ridge National Laboratory, and University of Tennessee) nor the Authors make any representations about the suitability of this software for any purpose. This software is provided ``as is'' without express or implied warranty. PVM version 3 was funded in part by the U.S. Department of Energy, the National Science Foundation and the State of Tennessee. ________________________________________________________________________ WHAT IS PVM? PVM is a software system that enables a collection of heterogeneous computers to be used as a coherent and flexible concurrent computational resource. The individual computers may be shared- or local-memory multiprocessors, vector supercomputers, specialized graphics engines, or scalar workstations, that may be interconnected by a variety of networks, such as ethernet, FDDI. User programs written in C, C++ or Fortran access PVM through library routines. UNPACKING This distribution contains source code, simple examples, and run-time support for PVM version 3. The documentation for PVM can be obtained separately from Netlib. To get a list of available subsets, send e-mail to "netlib@ORNL.GOV" with the subject: "send index from pvm3". Files in the distribution unpack in directory pvm3. The pvm3 directory can reside in either a private or shared disk area. Installations for multiple machine architectures can coexist because compiled files are placed in subdirectories named for each architecture (ARCH). Some of the more important directories are: Directory Contains --------------------------------------------------------------- bin/ARCH PVM user program executables (the examples or your programs) conf Make configuration files for all PVM architectures console Source for the pvm console doc Miscellaneous documentation examples Example PVM program source gexamples More example PVM programs - for group library hoster An example "hoster" program include Header files for PVM programs lib Generic system executables (scripts) lib/ARCH System executables (pvmd, console, etc.) libfpvm Source for the libfpvm Fortran library man/man[13] Online manual pages (nroff format) misc Some PVM examples and utilities patches Patch files and instructions, as they are released pvmgs Source for the libgpvm library and group nameserver src Source for the libpvm library and pvmd daemon src/ARCH Additional source code for specific machines tasker An example "tasker" program xep An example interactive X-Window program BUILDING AND INSTALLING Before building or running PVM, you must set environment variable PVM_ROOT to the path where PVM resides, i.e. the path of this directory. This can be in a private area, for example $HOME/pvm3, or a public one, such as /usr/local/pvm3. If your shell is csh, add a line such as: setenv PVM_ROOT $HOME/pvm3 to your .cshrc file. If you use a shell that reads .profile, such as sh or ksh, add the following lines to that file: PVM_ROOT=$HOME/pvm3 PVM_DPATH=$PVM_ROOT/lib/pvmd export PVM_ROOT PVM_DPATH The use of these variables is explained more fully in the pvm_intro man page. Type "make" in this directory. Make will use aimk to build the daemon executable (pvmd3), C library (libpvm3.a), Fortran library (libfpvm3.a) and console client program (pvm). The libraries and executables are installed in $PVM_ROOT/lib/ARCH/, where ARCH is the host architecture name, e.g. "CRAY". The scripts $PVM_ROOT/lib/pvm and $PVM_ROOT/lib/pvmd are used, respectively, to start the PVM console and pvmd. They determine the machine architecture and run the actual programs in $PVM_ROOT/lib/ARCH. You can either copy these scripts to your bin directory or add $PVM_ROOT/lib to your shell search path. You may wish to add $PVM_ROOT/man to your MANPATH environment variable, if it's supported on your system. This will allow you to easily read the online manual pages. STARTING AND STOPPING PVM To start PVM, run $PVM_ROOT/lib/pvm. This starts the console task, which in turn starts a pvmd if one is not already running. More hosts can be started by using the console "add" command. To stop PVM, use the PVM console command "halt". From programs, use the pvm_halt() function. You can also kill the pvmd (always use a catchable signal). For more information about the console commands, see the console "help" function or console man page. To start the pvmd without starting the console, run pvm3/lib/pvmd . A number of hosts can be started by supplying the pvmd with a host file. APPLICATION PROGRAMS C, C++ and Fortran programs must be linked with pvm3/lib/ARCH/libpvm3.a . Fortran programs must also be linked with pvm3/lib/ARCH/libfpvm3.a . Include C/C++ header file pvm3/include/pvm3.h for constants and function prototypes. Fortran header file is in pvm3/include/fpvm3.h. Executables should be installed in pvm3/bin/ARCH . This path can be changed; see the pvmd man page. CONTACT The PVM web home page is at http://www.epm.ornl.gov/pvm/pvm_home.html . A newsgroup, comp.parallel.pvm, exists for discussion about PVM and help with problems. Please direct any e-mail (questions, bugs, bug fixes, etc.) to: pvm@msr.EPM.ORNL.GOV. To report bugs or problems with PVM, please see the file $PVM_ROOT/doc/bugreport . ________________________________________________________________________ Sincerely, The PVM research group