Subsections

 
3.3 PVM

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.

  1. Place a link to the ``fred'' executable in $PVM_ROOT/bin/$PVM_ARCH

  2. Define the enviroment variable 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.

3.3.1 PVM hosts file

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

3.3.2 PVM Scaling

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.