IBM Books

IBM LoadLeveler for AIX 5L: Using and Administering


requirements

Specifies the requirements which a machine in the LoadLeveler cluster must meet to execute any job steps. You can specify multiple requirements on a single requirements statement.

The syntax is:

requirements = Boolean_expression

When strings are used as part of a Boolean expression that must be enclosed in double quotes. Sample requirement statements are included following the descriptions of the supported requirements.

The requirements supported are:

Adapter
Specifies the pre-defined type of network you want to use to run a parallel job step. In any new job command files you create, you should use the network keyword to request adapters and types of networks. The Adapter requirement is provided for compatibility with Version 1.3 job command files. Note that you cannot specify both the Adapter requirement and the network statement in a job command file.

The pre-defined network types are:

hps_ip
Refers to an SP switch in IP mode.

hps_user
Refers to an SP switch in user space mode. If the switch in user mode is requested by the job, no other jobs using the switch in user mode will be allowed on nodes running that job.

ethernet
Refers to Ethernet.

fddi
Refers to Fiber Distributed Data Interface (FDDI).

tokenring
Refers to Token Ring.

fcs
Refers to Fiber Channel Standards.

Note that LoadLeveler converts the above network types to the network statement.

Arch
Specifies the machine architecture on which you want your job step to run. It describes the particular kind of UNIX platform for which your executable has been compiled. The default is the architecture of the submitting machine.

Disk
Specifies the amount of disk space in kilobytes you believe is required in the LoadLeveler execute directory to run the job step.
Note:The Disk variable in an expression associated with the requirements and preferences keywords are 64-bit integers.

Feature
Specifies the name of a feature defined on a machine where you want your job step to run. Be sure to specify a feature in the same way in which the feature is specified in the configuration file. To find out what features are available, use the llstatus command.

LL_Version
Specifies the LoadLeveler version, in dotted decimal format, on which you want your job step to run. For example, LoadLeveler Version 2 Release 1 (with no modification levels) is written as 2.1.0.0.

Machine
Specifies the names of machines on which you want the job step to run. Be sure to specify a machine in the same way in which it is specified in the machine configuration file.
Note:If you have a mixed LoadLeveler cluster where the OpSys values of the machines may be either AIX43 or AIX51, using the requirements keyword to specify a Machine requirement may result in an expression that always evaluates to false. If the OpSys value of the submitting machine is AIX51, the llsubmit command automatically adds (OpSys == "AIX51") to the other job requirements unless an OpSys requirement has already been explicitly specified. This means that the specification:
requirements = (Machine == "jupiter")

automatically becomes:

requirements = (Machine == "jupiter") && (OpSys == "AIX51")

This requirement can not be satisfied unless the OpSys value of "jupiter" is also AIX51. In this case, a better strategy would be to use an expression such as:

requirements = (Machine == "jupiter") && ((OpSys == "AIX43") || (OpSys == "AIX51"))

Memory
Specifies the amount of physical memory required in megabytes in the machine where you want your job step to run.
Note:The Memory variable in an expression associated with the requirements and preferences keywords are 64-bit integers.

OpSys
Specifies the operating system on the machine where you want your job step to run. It describes the particular kind of UNIX platform for which your executable has been compiled. The default is the operating system of the submitting machine. The executable must be compiled on a machine that matches these requirements.

Pool
Specifies the number of a pool where you want your job step to run.

Example 1: To specify a memory requirement and a machine architecture requirement, enter:

requirements = (Memory >=16) && (Arch == "R6000")

Example 2: To specify that your job requires multiple machines for a parallel job, enter:

requirements = (Machine == { "ll6" "ll5" "ll0" })

Example 3: You can set a machine equal to a job step name. This means that you want the job step to run on the same machine on which the previous job step ran. For example:

requirements = (Machine == machine.step_name)

Where step_name is a step name previously defined in the job command file. The use of Machine == machine.step_name is limited to serial jobs.

For example:

# @ step_name    = step1
# @ executable   = c1
# @ output       = $(executable).$(jobid).$(step_name).out
# @ queue
# @ step_name    = step2
# @ dependency   = (step1 == 0)
# @ requirements = (Machine == machine.step1)
# @ executable   = c2
# @ output       = $(executable).$(jobid).$(step_name).out
# @ queue

Example 4: To specify a requirement for a specific pool number, enter:

requirements = (Pool == 7)

Example 5: To specify a requirement that the job runs on LoadLeveler Version 2 Release 1 or any follow-on release, enter:

requirements = (LL_Version >= "2.1")

Note that the statement requirements = (LL_Version == "2.1") matches only the value 2.1.0.0.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]