


bsplibd(1)                User Commands                bsplibd(1)



NAME
     bsplibd - daemon for BSPlib programs running over TCP/IP.


SYNOPSIS
     bsplibd [ -all ]


DESCRIPTION
     The purpose of this command is to start two daemons, _b_s_p_t_c_p_d
     and  _b_s_p_p_o_r_t_d,  that  enable  a  machine to be involved in a
     BSPlib computation when using  the  TCP/IP  version  of  the
     library.  These  daemon  controls the startup of programs on
     remote nodes:


     bsptcpd (user process daemon)
          The daemon _b_s_p_t_c_p_d controls access to a machine  for  a
          particular user (this daemon is used to start processes
          on the local node as  a  result  of  a  remote  startup
          request).  Security  is  controlled  by  only  allowing
          processes to be initiated if the user-id  and  password
          on  the  machine that initiates the BSP job is the same
          as the machine on which the  user  daemon  is  running.
          This  daemon is started by the user by running the com-
          mand _b_s_p_l_i_b_d(_1) on each machine in a cluster. If a dae-
          mon  for the user is already running on a machine, then
          starting a new daemon will cause the older one to shut-
          down  (and kill all uncompleted BSP jobs for that user)
          before the new one is started.


     bspportd: port daemon
          The daemon _b_s_p_p_o_r_t_d maintains a correspondence  between
          port numbers and BSPlib user daemons. There is only one
          port daemon per machine (it can be started by  anyone),
          although  there is one _b_s_p_t_c_p_d per user. This daemon is
          also started by running the  command  _b_s_p_l_i_b_d  on  each
          machine  in  a  cluster.  If  a  port daemon is already
          active (i.e., started by another user), then  there  is
          no  need  to  start another daemon, and an error (which
          can be ignored) will be reported that the bind fails:

          pine.comlab> bsplibd
          BSP/TCP Port Daemon(pine): bind() call failed: Address already in use
          BSP/TCP Daemon(pine): forked with pid 26840.

     A short-cut that will start the daemons on all the  machines
     specified  in  a  cluster,  and  establish  a correct BSPlib
     environment for a single user is shown below:

     pine.comlab> bsplibd -all



Oxford BSP Toolset  Last change: 1.4 25/9/98                    1






bsplibd(1)                User Commands                bsplibd(1)



     pine.comlab> bspload -start -all

     This short-cut requires that _p_i_n_e has an entry in the .rhost
     files on all the machines in the cluster, as it uses _r_s_h(_1).
     If rsh is not available on your platform, you will  have  to
     start  the daemons on each of the machines individually. The
     daemons need only be started once, and this  will  establish
     the  environment  for  all  subsequent  BSPlib jobs for that
     user. The user need not log onto each of the  machines  once
     the  daemons  are started. Any user interaction with all the
     daemons can be performed remotely from a single  workstation
     of a BSPlib cluster.

     The load manager (_b_s_p_l_o_a_d(_1)), the program  that  starts  up
     BSP  processes  (_b_s_p_r_u_n(_1)),  and the TCP/IP message passing
     system used in the implementation of BSPlib all require that
     a  user  specified cluster of workstations is defined in the
     file ~/._b_s_p_t_c_p_h_o_s_t_s . As an example of such a file, consider
     a  cluster  of  four workstations called _p_i_n_e, _a_s_h, _o_a_k, and
     _m_e_r_c_u_r_y, some of which are multiprocessor SMPs, and  two  of
     which are connected by an FDDI ring seperate from the normal
     lab Ethernet network:

     pine.comlab> cat ~/.bsptcphosts
     host(oak);
     host(pine);
     host(ash)     ncpus(2) adapter(ash-fddi);
     host(mercury) ncpus(4) adapter(mercury-fddi);

     The file contains a number of descriptors each delimited  by
     a semi-colon. The first descriptor on a line has to be _h_o_s_t,
     and has to be a name-server queriable name of  the  machine.
     The  other entries are optional, but change the behaviour of
     the BSP cluster. For example, the  _n_c_p_u_s  keyword  specifies
     the  number of processors in a workstation. This information
     is used by _b_s_p_l_o_a_d(_1) so  that  multiple  processes  may  be
     started on the same processor.

     If a host is not listed in the host list,  then  it  is  not
     considered  part  of  a cluster. Since the load daemon main-
     tains loads for the entire user  community,  the  host  list
     used  when  the load daemon was started should be a superset
     of all users' host lists.


     To compile a BSP program for TCP/IP execution,  the  program
     must  be compiled with _b_s_p_f_r_o_n_t(_1) and the environment vari-
     able _B_S_P__D_E_V_I_C_E must be  set  to  _M_P_A_S_S__T_C_P_I_P.  The  command
     _b_s_p_r_u_n(_1)  is  used  to  initiate  a BSP job. By default, it
     starts the requested number of processes on the least loaded
     processors  in  a network. The following options can be used
     to override this default behaviour:



Oxford BSP Toolset  Last change: 1.4 25/9/98                    2






bsplibd(1)                User Commands                bsplibd(1)



     bsprun -noload
          The load daemon is ignored, and processes  are  started
          on processors in host-list order.


     bsprun -local
          The  BSP  process  with  _b_s_p__p_i_d()  equal  to  zero  is
          guarenteed  to run on the processor where _b_s_p_r_u_n(_1) was
          executed. This may be required for I/O purposes.


     bsprun -nolocal
          No  BSP  process  will  run  on  the  processor   where
          _b_s_p_r_u_n(_1) was executed.

     A BSP job need not be run on a cluster of workstations  that
     have  a  common  NFS  file system. For non-NFS clusters, the
     TCP/IP system assumes that  the  directory  structure  above
     $_H_O_M_E is the same on each machine in the cluster.


OPTIONS
     -v    Print (on standard error output) the  phases  involved
          in the execution of the command.

     -help
          Print this manual page on standard output


     -all  If the machine where the bsplibd(1)  command  is  exe-
          cuted  has  an  entry  in  the  .rhost files on all the
          machines in the BSP cluster, then the daemons  will  be
          started on all the machines listed in .bsptcphosts.



NOTES
     The  environment  variable  _B_S_P__D_E_V_I_C_E  must   be   set   to
     MPASS_TCPIP  for  the message passing version of the library
     to work.


SEE ALSO
     bsprun(3), bsphutd(1)

     The Oxford BSP toolset web pages can be found  at:
     _h_t_t_p://_w_w_w._b_s_p-_w_o_r_l_d_w_i_d_e._o_r_g/_i_m_p_l_m_n_t_s/_o_x_t_o_o_l/


BUGS
     Problems  and  bug  reports  should  be  mailed  to  _b_s_p_l_i_b-
     _b_u_g_s@_c_o_m_l_a_b._o_x._a_c._u_k



Oxford BSP Toolset  Last change: 1.4 25/9/98                    3






bsplibd(1)                User Commands                bsplibd(1)



AUTHORS
     Stephen.Donaldson@comlab.ox.ac.uk                        and
     Jonathan.Hill@comlab.ox.ac.uk

     http://www.comlab.ox.ac.uk/oucl/people/stephen.donaldson.html
      http://www.comlab.ox.ac.uk/oucl/people/jonathan.hill.html

















































Oxford BSP Toolset  Last change: 1.4 25/9/98                    4



