Workstation networks require two files, the namd2 executable and the charmrun program. The charmrun program starts namd2 on the desired hosts, and handles console I/O for the node programs.
To specify what machines namd2 will run on, the user creates a file
called nodelist
. Below is an example nodelist file:
group main host brutus host romeo
The group main
line defines the default machine list. Hosts brutus
and romeo are the two machines on which to run the simulation. Note
that charmrun may run on one of those machines, or charmrun may run
on a third machine.
The rsh
command (remsh
on HPUX) is used to start namd2 on each node
specified in the nodelist file. If NAMD fails without printing any
output, check to make sure that rsh
works on your machine, by seeing
if rsh hostname ls
works for each host in the nodelist. If you want
or need to use ssh
instead, then add setenv CONV_RSH ssh
to your
login or batch script and try ssh hostname ls
to each host first to
ensure that the machine is in your .ssh/known_hosts
file. If you are
unable to use rsh or ssh, then add setenv CONV_DAEMON
and run charmd
(or charmd_faceless
, which produces a log file) on every node.
Some automounters use a temporary mount directory which is prepended
to the path returned by the pwd command. To run on multiple machines
you must add a ++pathfix
option to your nodelist file. For example:
group main ++pathfix /tmp_mnt / host alpha1 host alpha2
A number of parameters may be passed to charmrun. The most important
is the +pX
option, where X specifies the number of processors. If X
is less than the number of hosts in the nodelist, machines are
selected from top to bottom. If X is greater than the number of
hosts, charmrun will start multiple processes on the machines,
starting from the top. To run multiple processes on members of a SMP
workstation cluster, you may either just use the +p option to go
through the list the right number of times, or list each machine
several times, once for each processor. The default is +p1.
You may specify the nodelist file with the ++nodelist
option and the
group (which defaults to main
) with the ++nodegroup
option. If
you do not use ++nodelist
charmrun will first look for nodelist
in your current directory and then .nodelist
in your home directory.
If you always want to run on the machine you are logged in to you may
use localhost
in place of the hostname in your nodelist file, but
only if there are no other machines. You will not need ++pathfix
.
For example, .nodelist
in your home directory could read:
group main host localhost
It is simpler in many cases to instead use the ++local
option as
described under Individual Workstations
above, which eliminates the
need for the nodelist file and rsh entirely.
Once the nodelist file is set up, and you have your configuration file prepared, run NAMD as follows:
charmrun +p<procs> namd2 <configfile>