IBM Books

IBM LoadLeveler for AIX 5L: Using and Administering

Configuration file structure and syntax

The information in both the LoadL_config and the LoadL_config.local files is in the form of a statement. These statements are made up of keywords and values. There are three types of configuration file keywords:

Configuration file statements take one of the following formats:

keyword=value
keyword:value

Statements in the form keyword=value are used primarily to customize an environment. Statements in the form keyword:value are used by LoadLeveler to characterize the machine and are known as part of the machine description. Every machine in LoadLeveler has its own machine description which is read by the central manager when LoadLeveler is started.

To continue configuration file statements, use the back-slash character (\).

In the configuration file, comments must be on a separate line from keyword statements.

You can use the following types of constants and operators in the configuration file.

Numerical and alphabetical constants

Constants may be represented as:

Mathematical operators

You can use the following C operators. The operators are listed in order of precedence. All of these operators are evaluated from left to right:

!
* /
- +
< <= > >=
== !=
&&
||

User-defined variables

This type of variable, which is generally created and defined by the user, can be named using any combination of letters and numbers. A user-defined variable is set equal to values, where the value defines conditions, names files, or sets numeric values. For example, you can create a variable named MY_MACHINE and set it equal to the name of your machine named iron as follows:

  MY_MACHINE = iron.ore.met.com

You can then identify the keyword using a dollar sign ($) and parenthesis. For example, the literal $(MY_MACHINE) following the definition in the previous example results in the automatic substitution of iron.ore.met.com in place of $(MY_MACHINE).

User-defined definitions may contain references, enclosed in parenthesis, to previously defined keywords. Therefore:

  A = xxx
  C = $(A)

is a valid expression and the resulting value of C is xxx. Note that C is actually bound to A, not to its value, so that

  A = xxx
  C = $(A)
  A = yyy

is also legal and the resulting value of C is yyy.

The sample configuration file shipped with the product defines and uses some "user-defined" variables.

LoadLeveler variables

The LoadLeveler product includes variables that you can use in the configuration file. LoadLeveler variables are evaluated by the LoadLeveler daemons at various stages. They do not require you to use any special characters (such as a parenthesis or a dollar sign) to identify them.

LoadLeveler provides the following variables that you can use in your configuration file statements.

Arch
Indicates the system architecture. Note that Arch is a special case of a LoadLeveler variable called a machine variable. You specify a machine variable using the following format:
  variable : $(value)

ConsumableCpus
The number of ConsumableCpus currently available on the machine, if ConsumableCpus is defined in the configuration file keyword, SCHEDULE_BY_RESOURCES. If it is not defined in SCHEDULE_BY_RESOURCES, then it is equivalent to Cpus.

ConsumableMemory
The amount of ConsumableMemory currently available on the machine, if ConsumableMemory is defined in the configuration file keyword, SCHEDULE_BY_RESOURCES. If it is not defined in SCHEDULE_BY_RESOURCES, then it is equivalent to Memory.

ConsumableVirtualMemory
The amount of ConsumableVirtualMemory currently available on the machine, if ConsumableVirtualMemory is defined in the configuration file keyword, SCHEDULE_BY_RESOURCES. If it is not defined in SCHEDULE_BY_RESOURCES, then it is equivalent to VirtualMemory.

Cpus
The number of CPU's installed.

CurrentTime

The UNIX date; the current system time, in seconds, since January 1, 1970, as returned by the time() function.

CustomMetric

Sets a relative machine priority.

Disk
The free disk space in kilobytes on the file system where the executables for the LoadLeveler jobs assigned to this machine are stored. This refers to the file system that is defined by the execute keyword.

domain  or  domainname
Dynamically indicates the official name of the domain of the current host machine where the program is running. Whenever a machine name can be specified or one is assumed, a domain name is assigned if none is present.

EnteredCurrentState
The value of CurrentTime when the current state (START, SUSPEND, etc) was entered.

FreeRealMemory
The amount of free real memory (in megabytes) on the machine. This value should track very closely with the "fre" value of the vmstat command and the "free" value of the svmon -G command (units are 4K blocks).

host  or  hostname
Dynamically indicates the official name of the host machine where the program is running. host returns the machine name without the domain name; hostname returns the machine and the domain.

KeyboardIdle
The number of seconds since the keyboard or mouse was last used. It also includes any telnet or interactive activity from any remote machine.

LoadAvg
The Berkely one-minute load average, a measure of the CPU load on the system. The load average is the average of the number of processes ready to run or waiting for disk I/O to complete. The load average does not map to CPU time.

Machine
Indicates the name of the current machine. Note that Machine is a special case of a LoadLeveler variable called a machine variable. See the description of the Arch variable for more information.

Memory
The physical memory installed on the machine in megabytes.

MasterMachPriority
A value that is equal to 1 for nodes which are master nodes, and is equal to 0 otherwise.

OpSys
Indicates the operating system on the host where the program is running. This value is automatically determined and need not be defined in the configuration file. Note that OpSys is a special case of a LoadLeveler variable called a machine variable. See the description of the Arch variable for more information.

PagesFreed
The number of pages freed per second by the page replacement algorithm of the virtual memory manager.

PagesScanned
The number of pages scanned per second by the page replacement algorithm of the virtual memory manager.

QDate
The difference in seconds between when LoadLeveler (specifically the negotiator daemon) comes up and when the job is submitted using llsubmit.

Speed
The relative speed of a machine.

State
The state of the startd daemon.

tilde
The home directory for the LoadLeveler userid.

UserPrio
The user defined priority of the job. The priority ranges from 0 to 100, with higher numbers corresponding to greater priority.

VirtualMemory
The size of available swap space (free paging space) on the machine in kilobytes.

Time

You can use the following time variables in the START, SUSPEND, CONTINUE, VACATE, and KILL expressions. If you use these variables in the START expression and you are operating across multiple time zones, unexpected results may occur. This is because the negotiator daemon evaluates the START expressions and this evaluation is done in the time zone in which the negotiator resides. Your executing machine also evaluates the START expression and if your executing machine is in a different time zone, the results you may receive may be inconsistent. To prevent this inconsistency from occurring, ensure that both your negotiator daemon and your executing machine are in the same time zone.

tm_hour
The number of hours since midnight (0-23).

tm_min
Number of minutes after the hour (0-59).

tm_sec
Number of seconds after the minute (0-59).

tm_isdst
Daylight Savings Time flag: positive when in effect, zero when not in effect, negative when information is unavailable. For example, to start jobs between 5 PM and 8 AM during the month of October, factoring in an adjustment for Daylight Savings Time, you can issue:
START: (tm_mon == 9) && (tm_hour < 8) && (tm_hour > 17) && (tm_isdst = 1)

Date

tm_mday
The number of the day of the month (1-31).

tm_wday
Number of days since Sunday (0-6).

tm_yday
Number of days since January 1 (0-365).

tm_mon
Number of months since January (0-11).

tm_year
The number of years since 1900 (0-9999). For example:
tm_year == 100

Denotes the year 2000.

tm4_year
The integer representation of the current year. For example:
tm4_year == 2010

Denotes the year 2010.


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