Provided by: pvm-dev_3.4.5-12.5ubuntu1_amd64 bug

NAME

       pvm_reg_hoster - Register task as PVM slave starter.

SYNOPSIS

       C    #include <pvmsdpro.h>

            int cc = pvm_reg_hoster()

       Fortran   Not Available

DESCRIPTION

       Registers  the calling task as a PVM slave pvmd starter.  When the master pvmd receives a DM_ADD message,
       instead of starting the new slave pvmd processes itself, it passes a message to the  hoster,  which  does
       the dirty work and sends a message back to the pvmd.

       Note:   This  function  isn't for beginners.  If you don't grok what it does, you probably don't need it.
       For a more complete explanation of what's going on here, you should refer to the PVM source  code  and/or
       user guide section on implementation; this is just a man page.  That said...

       When the master pvmd receives a DM_ADD message (request to add hosts to the virtual machine), it looks up
       the new host IP addresses, gets parameters from the host file if  it  was  started  with  one,  and  sets
       default  parameters.   It  then  either  attempts  to start the processes (using rsh or rexec()) or, if a
       hoster has registered, sends it a SM_STHOST message.

       The format of the SM_STHOST message is:
           int nhosts                // number of hosts
           {
               int tid               // of host
               string options        // from hostfile so= field
               string login          // in form ``[username@]hostname.domain''
               string command        // to run on remote host
           } [nhosts]

       The hoster should attempt to run each command on each host and record  the  result.   A  command  usually
       looks like:
           $PVM_ROOT/lib/pvmd -s -d8 -nhonk 1 80a9ca95:0f5a 4096 3 80a95c43:0000

       and a reply from a slave pvmd like:
           ddpro<2312> arch<ALPHA> ip<80a95c43:0b3f> mtu<4096>

       When  finished,  the  hoster  should  send  a SM_STHOSTACK message back to the address of the sender (the
       master pvmd).  The format of the reply message is:

           {
               int tid               // of host, must match request
               string status         // result line from slave or error code
           } []                      // implied count

       The TIDs in the reply must match those in the request.  They may be in a different order, however.

       The result string should contain the entire reply (a single line) from each new slave pvmd, or  an  error
       code  if  something  went  wrong.   Legal  error  codes are the literal names of the pvm_errno codes, for
       example ``PvmCantStart''.  The default PVM hoster can return PvmDSysErr or PvmCantStart,  and  the  slave
       pvmd itself can return PvmDupHost.

       The  hoster  must  use  pvm_setmwid() to set the wait ID in the reply message to the same value as in the
       request.  The wait ID in the request is obtained by calling pvm_getmwid().

       The hoster task must use pvm_setopt(PvmResvTids, 1) to allow sending reserved messages.  Messages  should
       be packed using encoding PvmDataDefault to ensure they can be unpacked anywhere in the system.

       pvm_reg_hoster() returns PvmOk when successful.

SEE ALSO

       pvm_addhosts(3PVM), pvm_config(3PVM), pvm_setmwid(3PVM)

                                                  4 March, 1994                                 REG_HOSTER(3PVM)