Using the Hydra Process Manager

From Mpich
Revision as of 19:49, 27 June 2009 by Balaji (talk | contribs) (Created page with '__TOC__ '''This wiki page only provides information on the external usage of Hydra. If you are looking for the internal workings of Hydra, you can find it [http://wiki.mcs.anl.g…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This wiki page only provides information on the external usage of Hydra. If you are looking for the internal workings of Hydra, you can find it here.

General

Hydra is a process management system for starting parallel jobs. Hydra is designed to natively work with multiple daemons such as ssh, rsh, pbs, slurm and sge. However, in the current release, only ssh, rsh and fork are supported, with a preliminary version of slurm available.


Quick Start

Starting MPICH2-1.1, hydra is compiled into MPICH2 releases by default as a alternate process manager. You can use it as mpiexec.hydra.

Once built, the Hydra executables are in mpich2/bin, or the bin subdirectory of the install directory if you have done an install. You should put this (bin) directory in your PATH in your .cshrc or .bashrc for usage convenience:

Put in .cshrc:  setenv PATH /home/you/mpich2/bin:$PATH

Put in .bashrc: export PATH=/home/you/mpich2/bin:$PATH

To compile your application use mpicc:

shell$ mpicc app.c -o app

Create a file with the names of the machines that you want to run your job on. This file may or may not include the local machine.

shell$ cat hosts
   donner
   foo
   shakey
   terra

To run your application on these nodes, use mpiexec:

shell$ mpiexec -f hosts -n 4 ./app

The host file can also be specified as follows:

shell$ cat hosts
   donner:2
   foo:3
   shakey:2

In this case, the first 2 processes are scheduled on "donner", the next 3 on "foo" and the last 2 on "shakey". Comments in the host file start with a "#" character.

shell$ cat hosts
   # This is a sample host file
   donner:2     # The first 2 procs are scheduled to run here
   foo:3        # The next 3 procs run on this host
   shakey:2     # The last 2 procs run on this host


Environment Settings

HYDRA_HOST_FILE: This variable points to the default host file to use, when the "-f" option is not provided to mpiexec.

  For bash:
    export HYDRA_HOST_FILE=<path_to_host_file>/hosts

  For csh/tcsh:
    setenv HYDRA_HOST_FILE <path_to_host_file>/hosts

HYDRA_DEBUG: Setting this to "1" enables debug mode; set it to "0" to disable.

HYDRA_ENV: Setting this to "all" will pass all the environment to the application processes.

HYDRA_PROXY_PORT: The port to use for the proxies.