Because each workstation in a cluster (usually) requires that a new user log into it, and because this process can be very time-consuming, mpich provides a program that may be used to speed this process. This is the secure server, and is located in serv_p4 in the directory /usr/local/mpi/lib/<arch>/<device> The Nexus secure server was built from the p4 server, but has added some new functionality that it relies on to start user programs. If you plan on using the secure server with the ch_nexus device, use the one distributed with the nexus distribution (/usr/local/nexus/bin/sserver) . The script chp4_servs in the same directory may be used to start serv_p4 on those workstations that you can rsh programs on. You can also start the server by hand and allow it to run in the background; this is appropriate on machines that do not accept rsh connections but on which you have accounts.
Before you start this server, check to see if the secure server has
been installed for general use; if so, the same server can be used by
everyone. In this mode, root access is required to install the server. If
the server has not been installed, then you can install it for your own use
without needing any special privileges with
chp4_servs -port=1234This starts the secure server on all of the machines listed in the file /usr/local/mpi/bin/machines/machines.<arch>.
The port number, provided with the option -port=, must be different from any other port in use on the workstations.
To make use of the secure server for the ch_p4 device, add the
following definitions to your environment:
setenv MPI_USEP4SSPORT yes setenv MPI_P4SSPORT 1234The value of MPI_P4SSPORT must be the port with which you started the secure server. When these environment variables are set, mpirun attempts to use the secure server to start programs that use the ch_p4 device. (There are command line arguments to mpirun that can be used instead of these environment variables; mpirun -help will give you more information.)
The ch_nexus device requires that you specify these settings in a
resource database (.rdb) file. This allows you to run the secure
servers on different ports on each machine, or if your username is
different on the machines you are interested in running on. The .rdb
file should look like:
<host> ss_port=<portnumber> ss_login=<username>where <host> is the name of the machine running the secure server, <portnumber> is the port that the server was started on, and <username> is your username on that machine. You may omit the ss_login parameter if your username is the same on both machines.
For example, if you wish to use the server on pelican using port 1234 and tern using port 9876, and also on wren using port 16000 with the username "guest", your .rdb file would look like:
pelican ss_port=1234 tern ss_port=9876 wren ss_port=16000 ss_login=guestmpirun can be notified of this file with the "-nexusdb filename" option.