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:
The pre-defined network types are:
Note that LoadLeveler converts the above network types to the network statement.
| Note: | The Disk variable in an expression associated with the requirements and preferences keywords are 64-bit integers. |
| 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")) |
| Note: | The Memory variable in an expression associated with the requirements and preferences keywords are 64-bit integers. |
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.