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.


Create the directory where you intend to keep the HP-PVM files, copy the zip file into this directory, and unzip it.
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 file

The 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.

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 daemon

Under 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.


If 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 file

The 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:


Winsock information
            Microsoft Windows Sockets Version 1.1.
            Running on Windows 95.

My inet address is []

I am the master task
            I am tid 3. My Parent is -23

Machine Configuration

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)

Receiving data...

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.

Trouble Shooting

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

If you can not resolve the problem, contact or phone +44 2476 314447 (9am-6pm GMT).