

This directory contains the MPD (for MultiPurpose Daemon) process management
(and a few other things) system.  

A description of the MPD system can be found at
ftp://mcs.anl.gov/pub/mpi/mpd.ps.gz.   Information on using MPD with MPICH can
be found in the MPICH User's Guide.

MPD is automatically configured, built, and installed as part of MPICH if
MPICH is configured with  --with-device=ch_p4mpd

If configuring separately, do

   configure         (do configure --help to get configure options, none of
                      which are required)

   make              (builds mpd and mpd commands) 

   make install      (if -prefix=<installdir> is given to configure) 

   (either put <installdir> in your path or cd to this directory)

   mpd -'?'          (gives options that can be passed to mpd)

   mpd &             (starts a daemon)

   mpdhelp           (gives a list of commands that can be executed once
                      an mpd is running on the local machine.  They are:

  mpdhelp
    prints this information
  mpdcleanup 
    deletes unix socket files /tmp/mpd.* if necessary 
  mpdtrace
    causes each mpd in the ring to respond with 
    a message identifying itself and its neighbors
  mpddump [what]
    causes all the mpds to dump data.
    "what" can be "fdtable", "jobtable", or "proctable".
    It defaults to "all".
  mpdmandump jobid manrank [what]
    causes the manager given by <jobid> and <manrank> to dump data
    "what" is currently being defined.
    It defaults to "all".
  mpdringtest count
    sends a message around the ring "count" times
  mpdexit mpd_id 
    causes the specified mpd_id to exit gracefully;
    mpd_id is specified as host_portnum;
  mpdallexit 
    causes all mpds to exit gracefully;
  mpdbomb mpd_id 
    for testing: causes the specified mpd_id to "fail";
    mpd_id is specified as host_portnum
  mpdlistjobs 
    lists active jobs managed by mpds in ring
  mpdkilljob job_id 
    aborts the specified job


  mpdstart [n] [filename]  (not yet implemented)
    starts n daemons (default 1), using machines in filename for other daemons
      (default local machine)

When running mpi jobs, you can use:

  mpirun -h to find out the options available to mpirun.  Output is: 

  Usage: mpirun <args> executable <args_to_executable>
  Arguments are:
    -np num_processes_to_run  (required)
    [-s]  (close stdin; can run in bkgd w/o tty input problems)
    [-l]  (line labels; unique id for each process' output)

  Additional arguments to mpirun can be used to control where processes are
  run. 

  mpigdb -np <n> executable     (if executable is compiled with -g) 
    runs n copies of gdb on executable, -l is implied.  Use z <i> command
    in gdb to switch to process i, use z to switch back to broadcast mode.
