PVM
Metaphorics Logo

Parallel DockIt


 
Introduction
Overview
Installation
Quickstart
Hints and tips
Utilities
PVM version

DockIt is capable of using the Parallel Virtual Machine (PVM) software to run in parallel on multiple machines at once. These can be but need not be multiprocessor, shared memory machines such as SGI Origins. As long as the appropriate licenses are available, DockIt can use PVM to run on computers of different architectures at the same time.

To use DockIt under PVM, the program pvmdrive will start multiple copies of the dockpvm program and pass each copy a different ligand from the input stream. The docking results from each dockpvm subjob are collated by pvmdrive and put out as one output stream.

PVM setup instructions for DockIt:

  1. Obtain PVM software from http://www.netlib.org/pvm3 and install it per the included instructions.

  2. Put a copy of dockpvm into the appropriate PVM executable directory: $PVM_ROOT/bin/$PVM_ARCH/ (for example, $PVM_ROOT/bin/SGI6/ for SGI).

  3. Before starting up PVM, define the following environment variables (see the run_dock script for how these variables are set up):

    • M4X_DOCKIT_ROOT

    • MX_ROOT (can be the same as M4X_DOCKIT_ROOT)

    • CX_ROOT (also can be the same as M4X_DOCKIT_ROOT)

  4. Then set the PVM_EXPORT environment variable to be M4X_DOCKIT_ROOT:MX_ROOT:CX_ROOT (e.g. for csh, setenv PVM_EXPORT M4X_DOCKIT_ROOT:MX_ROOT:CX_ROOT). Note that PVM_EXPORT should only be used when the cluster is homogeneous. When the cluster has a mixture of different machine architectures, it is necessary to use a different setup to make sure that each machine has environment variables set up to point to the correct DockIt distribution for that architecture. The simplest way to do this is to use the .pvmprofile file method (see note below).

  5. Start the PVM docking run using the command

    pvmdrive njobs <inputfile.cex

    where njobs is the number of copies of dockpvm you want to run at once (usually the number of processors in your PVM virtual machine) and inputfile.cex is the input CEX stream which is usually sent to the dock program. See the run_dock_ligands script for an example of how this is done. To more precisely control the number of processes started on each host in the PVM virtual machine, you may use 9999 as the number of jobs given to drivepvm. In that case, drivepvm uses the relative processor speeds from PVM to decide how many jobs to start on each host. One job is started for each increment of 1000 in the processor speed. For example, a host with a relative speed of 3000 would have three dockit jobs started on it. The relative processor speeds can be specified by giving a host file to pvm when the virtual machine is initialized (see the PVM documentation for more details on the processor speed and the format of the host file).

Note that the output from all the dockpvm subjobs is collected by pvmdrive and put out in a single stream on stdout. This can be filtered or selected from by the utility tools (see utilities for more information). For example, it would be possible to select only the best 200 ligands (according to the DockIt molecular mechanics score) in the following way:

pvmdrive 8 <input.cex | cextop -u 200 dockscore >best.cex.

Note

In mixed clusters you must assure that the environment variables (M4X_DOCKIT_ROOT, CX_ROOT and MX_ROOT) all point to the correct version of DockIt for the appropriate architecture. For example, a cluster which has both 32 bit and 64 bit Intel architecture nodes should have both the 32 bit and 64 bit DockIt distributions installed. In order for the correct scoring function plugins to be located at DockIt run time, M4X_DOCKIT_ROOT must be correct for each machine type. Thus, the 64 bit nodes should have the environment variables defined to point to the 64 bit version of DockIt, etc. The simplest way to do this is to create .pvmprofile files on each node with the appropriate environment variable definitions. The .pvmprofile file should look something like this:

export M4X_DOCKIT_ROOT=/path/to/correct/DockIt/area
export CX_ROOT=$M4X_DOCKIT_ROOT
export MX_ROOT=$M4X_DOCKIT_ROOT

This file should be placed in $(HOME)/.pvmprofile for each DockIt PVM user on each node where a PVM DockIt job will be run. It must be adjusted so that M4X_DOCKIT_ROOT points to the correct DockIt area for that node.

© Metaphorics, LLC
info@metaphorics.com