Installation and Set-up
Under Microsoft Windows, HP-PVM uses the TCP-IP stack through Winsock. You must have a TCP-IP stack set-up on each of the computers that you intend to use with this software. If you intend to test the software on a computer that is not connected to a network, then you can use the TCP-IP protocol with the dial-up network connection instead - you do not actual have to connect in order to test the software.
If you are testing on a single computer under Windows 95, your ‘hosts’ file may not be set-up correctly, even if the computer has been successfully used for dial-up network connection. The system ‘hosts’ file must have a line added to give the name of your computer, with the same inet number as the localhost line.
Windows:Create the directory where you intend to keep the HP-PVM files, copy the zip file into this directory, and unzip it.Unix:uncompress and untar the archive. It will create a directory called 'hppvm'.
The package includes library and header files for producing your own applications, systems files such as daemons and configuration files, and example source, makefiles and executables.
To run HP-PVM programs the following files are needed, as well as the executables you intend to run. These files should be placed in a single directory, which should be added to the path. The mc_list and config files will always be expected in the same directory as the daemon executable.
- Windows Unix
- daemon.exe daemon HP-PVM daemon executable
- rshd.exe Remote shell daemon for starting remote daemons
- config config Configuration file, for setting user options
- mc_list mc_list List of machines to be used by the software
The mc_list fileThe mc_list file on the computer that you start the system running from is the only mc_list file that is used. It is used to determine which computers on your network are going to be initially included in the HP-PVM system. Edit the mc_list file and insert the names of the computers you want to use. You can start with just the name of one computer if you wish.
The list of computer names will usually be listed in \windows\hosts for Windows, or /etc/hosts for Unix. Just include the names - not IP addresses. To use computers which are not part of your own 'domain' include the full domain name in standard dot notation, i.e. parasys.co.uk
There are several options that can be included on the line, after the slave host name.
dx=path Specify full path of directory which contains
the daemon executable
lo=login name Specify login name to use on the remote computer,
if different to local name
pw ask for a password, rather than relying on .rhosts
mechanism on remote Unix machines
example, phoenix dx=/home/fred/hppvm lo=fred pw
If you use the dx=path option in the mc_list file, then the config file option 'exe_path' will usually be needed as well. This specifies the path the remote daemon should search when trying to spawn application tasks.
Remote shell daemonUnder Windows, in order for the system to be able to start programs running on remote computers, each computer must have a rshd.exe program running when the system is started up. This is the equivalent of the Unix remote shell daemon. For computers that will regularly be used for running HP-PVM programs you may want to set-up windows so that this program is started automatically whenever you start windows. To do this, add rshd.exe into the 'startup' program group.
Under Unix the .rhosts file must be set-up to allow daemon processes to be started on remote computers. You can test that this works correctly by running
rsh <machine_name> daemon
from the Unix machine.
SecurityIf you run HP-PVM software on a computer that is connected to the internet, you need to be aware of the security implications. If one computer in your office can make use of another in a distributed system, then so can any other computer on the internet.
It is not possible for an outside computer to invite itself into an existing executing HP-PVM application - they can only be brought in from one of the existing computers, using the pvm_addhosts command.
In order to stop other computers on the internet including your computers in their own distributed systems, by including your computer's domain names in their mc_list files, you must use the "machine" setting in the config file on all of your computers. This allows you to list the names of the computers that you want to be able to make use of your computers - as slaves.
Under Unix the operating systems user permissions system may be enough to ensure outside computers do not use your computers.
The config fileThe config file is read from each machine when the system starts, and gives configuration information about that machine. The config file should look like this. The 'procs' and 'machine' lines are the only ones you are likely to want to change for now.
# relative speed of machine for config command
speed = 1000
# number of processors in this computer
procs = 1
# error level no | env | fatal | warning | all
error_level = all
# use sequence numbers and checksums to verify data integrity
verify = no
# output pvm calls in tmp files
debug_pvm_commands = no
# output dump of data packed and unpacked in tmp files
debug_pvm_data = no
# allowed to use shared memory?
shmem = yes
shmem_total = 2000000
shmem_link_size = 30000
# choose port automatically or generate within fixed range
auto_socket_port = yes
# buffering of pvm output into tmp directory log files. "no", "line" or
# "full" buffering
tmp_file_buffering = no
# list of trusted machines that can use me as a slave machine
# The inet addresses must be able to be looked up by this machine from
# these names. Use name 'all' to allow any machine to use us.
machine = woodwind
machine = stone
machine = astj10b
# Should slave processes have pvmlib debug windows displayed. They will
# only be created when the first error or warning is displayed
# no - not at all
# yes - yes, but they should be created minimised
# popup - yes, and they should popup into view
slave_window = yes
# Additional paths to search for executables started through pvm_spawn
# For bourne shells where a .cshrc can not be used to set-up the
# PATH, this is necessary for PVM to be able to find your executables
exe_path = /home/fred/app1:/home/fred/apps2
The pvmtest program can be used to test that HP-PVM is working correctly. Any problems with your installation or network set-up should be detected here.
The pvmtest program spawns a single slave task on each machine in your mc_list file, and then receives some data from them. After it has received the data, the slave tasks should close down, and then after a couple of minutes the daemons should close down.
The program can easily be tested on a single computer. ‘pvmtest’ can be given a single parameter, which gives the number of slave tasks that should be spawned.
The pvmtest output might look like this:
Microsoft Windows Sockets Version 1.1.
Running on Windows 95.
My inet address is [18.104.22.168]
I am the master task
I am tid 3. My Parent is -23
TID 0 1000 [astj10b] [windows] (i am connected to this)
TID 32 1000 [astj10b] [windows]
TID 64 1000 [astj10b] [windows]
TID 96 1000 [astj10b] [windows]
Spawn off 4 slaves
tid 4 (machine id 0) (my daemon)
tid 34 (machine id 32)
tid 66 (machine id 64)
tid 98 (machine id 96)
Under Windows, the pmbrot.exe is another simple test program that you can use to test HP-PVM. The program displays a simple mandlebrot pattern using slave tasks to do the calculations for different sections of the display.
If pvmtest fails to complete correctly, check error messages on the screen, and in the files in the HP-PVM tmp directory files. For Windows this is c:\tmp\pvm\out. For Unix it is /tmp/pvm_<user_name>/out.
If the system has failed to create tasks or daemons on one of your computers, try checking the tmp directory on those computers for errors which could not be routed back to your own computer. Try running the pvmtest program in isolation on those computers - with that computer's name being the only entry in it's mc_list file. This may find problems with the installation or network set-up on that computer.
Obvious reasons why a slave or daemon may not be spawned on a particular computer include
- The rshd.exe is not running on it
- The computer's IP address in your windows\hosts or /etc/hosts file not being correct
- The computer's name in your mc_list file not matching the name for that remote computer listed in the local \windows\hosts or /etc/hosts file
- The path on the remote computer does not include the HP-PVM directory
- There is a problem with the network connection between the two computers
- The network software has not been installed correctly - even if other TCP-IP programs work correctly.
If you can not resolve the problem, contact firstname.lastname@example.org or phone +44 2476 314447 (9am-6pm GMT).