PVM or parallel virtual machine is a freely available library for running processes on more than one processor on one or more machines. FRED can take advantage of PVM to distribute jobs over multiple processors. To do this PVM must be installed on all the machines FRED will be distributed over. The PVM source is freely available from
http://www.csm.ornl.gov/pvm/pvm_home.html
however many Linux distributions, and some Unix versions, include PVM by default. FRED is built with the current PVM version 3.4.5, but should also work with PVM version 3.4.4. FRED does not support PVM under Windows.
To use FRED with PVM you must do one of the following.
$PVM_ROOT/bin/$PVM_ARCH
PVM_PATH, which names the
directory where the FRED executable resides.
The enviroment variables PVM_ROOT and PVM_ARCH should be
defined globablly as part of the PVM installation. PVM_PATH is
generally a user-defined enviroment variable, and must defined for all
shells (i.e., you can't just define it in the shell you're
launching FRED in).
NOTE : There is no specific slave executable. The executable distributed for this program serves as both a master and slave PVM program as well as a single processor version.
After PVM and FRED are installed, each FRED job run via PVM must be supplied
a file (via -pvmconf) that describes the hosts and number of CPU's
to use. Each line in this file includes the word
``host'' followed by the hostname of the slave followed by the number of
CPU's to use on that slave.
To use 10 slaves on a linux cluster (where nodes are named ``linux1'', ``linux2'', etc.)
host linux1 2 host linux2 2 host linux3 2 host linux4 2 host linux5 2
To use 32 CPU's on a single-image system like an SGI Altix, a single line can be used:
host altix 32
PVM jobs involve a certain of network traffic, sending multi-conformer molecules from the master to the slaves and sending results from the slaves back to the master. The single FRED slave jobs are relatively fast compared to the network I/O time, so for scaling beyond 128 CPUs, additional effort is required in setting up a job.
As of version 2.0, Omega can write rotor-offset-compressed OEB files (via
the -roc command-line flag) that greatly reduce the I/O on the master
and allow FRED to scale to larger number of CPUs.