lsgrun

executes a task on a set of hosts

Synopsis

lsgrun [-i] [-p | -P | -S] [-v] -f host_file | -m host_name ... | -n num_hosts [-R "res_req"] [command [argument ...]]
lsgrun [-h | -V]

Description

Executes a task on the specified hosts. lsgrun is useful for fast global operations such as starting daemons, replicating files to or from local disks, looking for processes running on all hosts, checking who is logged in on each host, and so on. The hosts can be specified using a host file, a list of host names or by letting the system select the hosts. If LSB_DISABLE_LIMLOCK_EXCL=y (to enable preemption of exclusive jobs, for example), you can use lsgrun to start a task on hosts that are currently running exclusive jobs.

By default:
  • lsgrun is not interactive.

  • The specified task is executed sequentially on hosts with full pseudo tty support.

  • lsgrun does not create a pseudo-terminal.

  • LSF uses as many processors as available to run the specified task.

  • The resource requirement for host selection is r15s:pg.

  • The prompt Command> is displayed to allow users to type in a command (task) terminated by a CTRL-D or EOF. The command is then executed on the specified hosts.

Options

-i

Interactive operation mode. You are asked whether the task is to be executed on all hosts. If you answer y, the task is started on all specified hosts; otherwise, you are asked to specify hosts interactively.

-P

Creates a pseudo-terminal on UNIX hosts. This is necessary to run programs requiring a pseudo-terminal (for example, vi).

This option is not supported on Windows.

-p

Parallel run mode. Executes the task on all hosts simultaneously and without pseudo tty support.

If this option is specified and the -P option is specified, the -P option is ignored.

This option is useful for fast start-up of tasks. However, any output from remote tasks arrive at the terminal in arbitrary order, depending on task execution speeds on individual hosts.

-S

Creates a pseudo-terminal with shell mode support on UNIX hosts.

Shell mode support is required for running interactive shells or applications that redefine the CTRL-C and CTRL-Z keys (such as jove).

This option is not supported on Windows.

-v

Verbose mode. Displays the name of the host or hosts running the task.

-f host_file

Either -f host_file, -m host_name or -n num_processors is required.

Executes the task on all hosts listed in the host_file.

Specify a file that contains a list of host names. Host names must be separated by white space characters (for example, SPACE, TAB, and NEWLINE).

This option is exclusive of options -n, -R, and -m.

-m host_name ...

Either -f host_file, -m host_name or -n num_processors is required.

Executes the task on all specified hosts.

Specify hosts on which to execute the task. If multiple host names are specified, the host names must be enclosed by " or ' and separated by white space.

This option is exclusive of options -n, -R, and -f.

-n num_hosts

Either -f host_file, -m host_name or -n num_hosts is required.

Executes the task in a cluster with the required number of available hosts.

One host may be used to start several tasks if the host is multiprocessor. This option can be used together with option -R to select desired hosts.

This option is exclusive of options -m and -f.

-R "res_req"

Executes the task on hosts with the required resource requirements.

Specify the resource requirement expression for host selection. The resource requirement is used to choose from all hosts with the same host type as the local host, unless a "type == value" exists in res_req to specify otherwise.

This option can be used together with option -n to choose a specified number of processors to run the task.

Exclusive resources need to be explicitly specified within the resource requirement string. For example, you defined a resource called bigmem in lsf.shared and defined it as an exclusive resource for hostE in lsf.cluster.mycluster. Use the following command to submit a task to run on hostE:
lsgrun -R "bigmem" myjob
or
lsgrun -R "defined(bigmem)" myjob

If the -m option is specified with a single host name, the -R option is ignored.

command [argument ...]

Specify the command to execute. This must be the last argument on the command line.

-h

Prints command usage to stderr and exits.

-V

Prints LSF release version to stderr and exits.

Diagnostics

Exit status is 0 if all commands are executed correctly.

Otherwise, the exit status is the first non-zero status returned by a remotely executed task. lsgrun executes the task on all hosts even if some have non-zero exit status.

Exit status is -10 if a problem is detected in LSF.

See also

lsrun, lsplace