MPI Commands impi-relay (1MPI)

NAME

impi-relay - IMPI relay

SYNOPSIS

impi-relay -relay relay id address:port [-net address] [-port :port] [-fork] [-v] [-h]

DESCRIPTION

This starts the IMPI relay, which allows a private address cluster to exchange IMPI messages across the other clusters. It prints the IP address and the port number at startup, which will be given to the mpirun command as an argument to the -client option. See also mpirun(1MPI) and impi-server(1MPI).

OPTIONS

The following options are supported:

-net network-address
Specifies a private network address on which impi-relay services. It is used to establish a connection from an IMPI agent on a private address cluster.
-port port-number
Specifies a port number on which impi-relay services. It is used to establish a connection from an IMPI agent on a private address cluster. An arbitrary port is selected if it is not specified.
-fork
Forks myself and let the child process be a background process.
-v
Prints verbose messages to the stderr.
-h
Prints simple help.

ENVIRONMENT VARIABLES

IMPI_NETWORK=network-address
Specifies the network interface by the network address. It is used when the machines have multiple network interfaces and the global connection is on other than the primary interface. It is specified by the format of the address like "172.16.1.0", and it is matched after masking by the netmask.
IMPI_RELAY_SOCBUF=number
Specifies a buffer size of sockets (SNDBUF/RCVBUF) in decimal bytes. It calls sockopt with a specified value. (1) Specifying a number sets the value. If the value is non-numerical or negative, it sets the OS default. (2) Empty string or "0" sets the OS default.
IMPI_RELAY_STDERR_LOGGING=0 or 1
Specifies to redirect stderr to a log file. The file name is specified by the environment variable IMPI_RELAY_LOGFILE. The default is /tmp/impi-relay.$PID.
IMPI_RELAY_LOGFILE=filename
Specifies log file name.
IMPI_RELAY_PORT_RANGE=n0:n1
Specifies port range to listen. Port number from n0 to n1 (inclusive) is tried.

EXAMPLES

Example 1

host1% impi-server -server 2 &
addr1:port1
host1% mpirun -np 4 -client 0 addr1:port1 -c mpi_conf1 ./a.out

hostR% impi-relay -relay 0 addr1:port1
addr2:port2

host2% mpirun -np 4 -client 1 addr2:port2 -c mpi_conf2 ./a.out
This starts two sets of four processes each (total eight). Two runs of mpirun are started on different clusters. The one is a privately addressed cluster, the other is a globally addressed cluster. impi-relay must be invoked on a host which is reachable to both clusters.

Example 2: Run with gridmpirun script

host1% cat gridmpirun.conf
0 -submit ssh -target host1 -relay hostR -wdir /tmp -n 4 ./a.out
1 -submit ssh -target host2 -wdir /tmp -n 4 ./a.out

host1 gridmpirun ./gridmpirun.conf
This starts a same job of Example 1 by using gridmpirun script. See also gridmpirun -h.
($Date: 2007/08/20 10:51:42 $)