-a

Specifies one or more application-specific esub executables that you want LSF to associate with the job.

Categories

schedule

Synopsis

bsub -a "esub_application [([argument[,argument...]])]..."

Description

The value of -a must correspond to the application name of an actual esub file. For example, to use bsub -a fluent, the file esub.fluent must exist in LSF_SERVERDIR.

For example, to submit a job that invokes two application-specific esub executables named esub.license and esub.fluent, enter:
bsub -a "license fluent" my_job

mesub uses the method name license to invoke the esub named LSF_SERVERDIR/esub.license, and the method name fluent to invoke the esub named LSF_SERVERDIR/esub.fluent.

The name of an application-specific esub program is passed to the master esub. The master esub program (LSF_SERVERDIR/mesub) handles job submission requirements of the application. Application-specific esub programs can specify their own job submission requirements. The value of -a is set in the LSB_SUB_ADDITIONAL environment variable.

If an LSF administrator specifies one or more mandatory esub executables using the parameter LSB_ESUB_METHOD, LSF invokes the mandatory executables first, followed by the executable named esub (without .esub_application in the file name) if it exists in LSF_SERVERDIR, and then any application-specific esub executables (with .esub_application in the file name) specified by -a.

The name of the esub program must be a valid file name. It can contain only alphanumeric characters, underscore (_) and hyphen (-).

Restriction: After LSF version 5.1, the value of -a and LSB_ESUB_METHOD must correspond to an actual esub file in LSF_SERVERDIR. For example, to use bsub -a fluent, the file esub.fluent must exist in LSF_SERVERDIR.

If you have an esub that runs an interactive or X-window job and you have SSH enabled in lsf.conf, the communication between hosts is encrypted.

esub arguments provide flexibility for filtering and modifying job submissions by letting you specify options for esub executables.

The variables you define in the esub arguments can include environment variables and command output substitution.

Valid esub arguments can contain alphanumeric characters, spaces, special characters (`"\$!) and other characters (~@#%^&*()-=_+[]|{};':,./<>?). Special patterns like variables (for example, $PATH) and program output (for example, `ls` command output) in an esub argument will also be processed.

For example, if you use bsub -a “esub1 ($PATH, `ls`)” user_job, the first argument passed to esub1 would be the value of variable PATH, and the second argument passed to esub1 would be the output of command ls.

You can include a special character in an esub argument with an escape character or a pair of apostrophes (''). The usage may vary among different shells. You can specify an esub argument containing separators ('(', ')', ',') and space characters (' ').

You can also use an escape character (\) to specify arguments containing special characters, separators and space characters. For example:

bsub –a “esubname1(var1,var2 contain \(\)\,)” user_job

For fault tolerance, extra space characters are allowed between entities including esub, separators and arguments. For example, the following is valid input:

bsub -a “ esub1 ( var1 , var2 ) ” user_job

The maximum length allowed for an esub argument is 1024 characters. The maximum number of arguments allowed for an esub is 128.

Examples

  • To specify a single argument for a single esub executable, use:

    bsub –a “esub_application(var1)” user_job

  • To specify multiple arguments for a single esub executable, use:

    bsub –a “esub_application(var1,var2,...,varN)” user_job

  • To specify multiple arguments including a string argument for a single esub executable, use:

    bsub –a “esub_application(var1,var2 is a string,...,varN)” user_job

  • To specify arguments for multiple esub, use:

    bsub –a “esub_application1(var1,var2) esubname2(var1,var2)” user_job

  • To specify no argument to an esub, use:

    bsub –a “esub_application1” user_job