complex - Sun Grid Engine complexes configuration file for-
Complex reflects the format of the Sun Grid Engine complex
configuration. The definition of complex attributes pro-
vides all pertinent information concerning the resource
attributes a user may request for a Sun Grid Engine job via
the qsub(1) -l option and for the interpretation of these
parameters within the Sun Grid Engine system.
The Sun Grid Engine complex object defines all entries which
are used for configuring the global, the host, and queue
object. The system has a set of pre defined entries, which
are assigned to a host or queue per default. In a addition
can the user define new entries and assign them to one or
multiple objects. Each load value has to have its
corresponding complex entry object, which defines the type
and the relational operator for it.
defining resource attributes
The complex configuration should not be accessed directly.
In order to add or modify complex entries, the qconf(1)
options -Mc and -mc should be used instead. While the -Mc
option takes a complex configuration file as an argument and
overrides the current configuration, the -mc option bring up
an editor filled in with the current complex configuration.
The provided list contains all definitions of resource
attributes in the system. Adding a new entry means to pro-
vide: name, shortcut, type, relop, requestable, consumable,
default, and urgency. The fields are described below. Chang-
ing one is easily done by updating the field to change and
removing an entry by deleting its definition. An attribute
can only be removed, when it is not referenced in a host or
queue object anymore. Also does the system have a set of
default resource attributes which are always attached to a
host or queue. They cannot be deleted nor can the type of
such an attribute be changed.
working with resource attributes
Before a user can request a resource attribute it has to be
attached to the global, host, or cqueue object. The resource
attribute exists only for the objects, it got attached to (
if it is attached to the global object(qconf -me global), it
exits system wide, host object: only on that host (qconf -me
NAME): cqueue object: only on that cqueue (qconf -mq NAME)).
When the user attached a resource attribute to an object,
one also has to assign a value to it; the resource limit.
Another way to get a resource attribute value is done by
configuring a load sensor for that attribute.
Default queue resource attributes
In its default form it contains a selection of parameters in
the queue configuration as defined in queue_conf(5). The
queue configuration parameters being requestable for a job
by the user in principal are:
Default host resource attributes
The standard set of host related attributes consists of two
categories. he first category is built by several queue con-
figuration attributes which are particularly suitable to be
managed on a host basis. These attributes are:
(please refer to queue_conf(5) for details).
Note: Defining these attributes in the host complex is no
contradiction to having them also in the queue configura-
tion. It allows maintaining the corresponding resources on a
host level and at the same time on a queue level. Total vir-
tual free memory (h_vmem) can be managed for a host, for
example, and a subset of the total amount can be associated
with a queue on that host.
The second attribute category in the standard host complex
are the default load values Every sge_execd(8) periodically
reports load to sge_qmaster(8). The reported load values
are either the standard Sun Grid Engine load values such as
the CPU load average (see uptime(1)) or load values defined
by the Sun Grid Engine administration (see the load_sensor
parameter in the cluster configuration sge_conf(5) and the
Sun Grid Engine Installation and Administration for
details). The characteristics definition for the standard
load values is part of the default host complex, while
administrator defined load values require extension of the
host complex. Please refer to the file
<sge_root>/doc/load_parameters.asc for detailed information
on the standard set of load values.
One attribute can be assigned to the global object, host
object, and queue object at the same time. On the host level
it might get its value from the user defined resource limit
and a load sensor. In case that the attribute is a consum-
able, we have in addition to the resource limit and its load
report on host level also the internal usage, which the sys-
tem keeps track of. The merge is done as follows:
In general an attribute can be overridden on a lower level
- global by hosts and queues
- hosts by queues and load values or resource limits on
the same level.
We have one limitation for overriding attributes based on
its relational operator:
!=, == operators can only be overridden on the same level,
but not on a lower level. The user defined value always
overrides the load value.
>=, >, <=, < operators can only be overridden, when the new
value is more restrictive than the old one.
In the case of a consumable on host level, which has also a
load sensor, the system checks for the current usage, and if
the internal accounting is more restrictive than the load
sensor report, the internal value is kept; if the load sen-
sor report is more restrictive, that one is kept.
Note, Sun Grid Engine allows backslashes (\) be used to
escape newline (\newline) characters. The backslash and the
newline are replaced with a space (" ") character before any
The principal format of a complex configuration is that of a
tabulated list. Each line starting with a '#' character is a
comment line. Each line despite comment lines define one
element of the complex. A element definition line consists
of the following 8 column entries per line (in the order of
The name of the complex element to be used to request this
attribute for a job in the qsub(1) -l option. A complex
attribute name (see complex_name in sge_types(1)) may appear
only once across all complexes, i.e. the complex attribute
definition is unique.
A shortcut for name which may also be used to request this
attribute for a job in the qsub(1) -l option. An attribute
shortcut may appear only once across all complexes, so as to
avoid the possibility of ambiguous complex attribute refer-
This setting determines how the corresponding values are to
be treated Sun Grid Engine internally in case of comparisons
or in case of load scaling for the load complex entries:
o With INT only raw integers are allowed.
o With DOUBLE floating point numbers in double precision
(decimal and scientific notation) can be specified.
o With TIME time specifiers are allowed. Refer to
queue_conf(5) for a format description.
o With MEMORY memory size specifiers are allowed. Refer to
queue_conf(5) for a format description.
o With BOOL the strings TRUE and FALSE are allowed. When
used in a load formula (refer to sched_conf(5) ) TRUE and
FALSE get mapped into '1' and '0'.
o With STRING all strings are allowed and is used for wild-
card regular boolean expression matching. Please see
sge_types(1) manpage for expression definition.
-l arch="*x24*|sol*" :
results in "arch=lx24-x86" OR "arch=lx24-amd64"
OR "arch=sol-sparc" OR "arch=sol-sparc64"
OR "arch=sol-x86" OR ...
-l arch="sol-x??" :
results in "arch=sol-x86" OR "arch=sol-x64" OR ...
-l arch="lx2-x86" :
results in "arch=lx22-x86" OR "arch=lx24-x86"
-l arch="lx2[4-6]-x86" :
results in "arch=lx24-x86" OR "arch=lx25-x86"
-l arch="lx2[24-6]-x86" :
results in "arch=lx22-x86" OR "arch=lx24-x86"
OR "arch=lx25-x86" OR "arch=lx26-x86"
-l arch="!lx24-x86&!sol-sparc" :
results in NEITHER "arch=lx24-x86" NOR "arch=sol-sparc"
-l arch="lx2[4|6]-x86" :
results in "arch=lx2[4" OR "arch=6"
o CSTRING is like STRING except comparisons are case insen-
o RESTRING is like STRING and it will be deprecated in the
o HOST is like CSTRING but the expression must match a
The relation operator. The relation operator is used when
the value requested by the user for this parameter is com-
pared against the corresponding value configured for the
considered queues. If the result of the comparison is false,
the job cannot run in this queue. Possible relation opera-
tors are "==", "<", ">", "<=", ">=" and "EXCL". The only
valid operator for string type attributes is "==".
The "EXCL" relation operator implements exclusive scheduling
and is only valid for consumable boolean type attributes.
Exclusive means the result of the comparison is only true if
a job requests to be exclusive and no other exclusive or
non-exclusive jobs uses the complex. If the job does not
request to be exclusive and no other exclusive job uses the
complex the comparison is also true.
The entry can be used in a qsub(1) resource request if this
field is set to 'y' or 'yes'. If set to 'n' or 'no' this
entry cannot be used by a user in order to request a queue
or a class of queues. If the entry is set to 'forced' or
'f' the attribute has to be requested by a job or it is
To enable resource request enforcement the existence of the
resource has to be defined. This can be done on a cluster
global, per host and per queue basis. The definition of
resource availability is performed with the complex_values
entry in host_conf(5) and queue_conf(5).
The consumable parameter can be set to either 'yes' ('y'
abbreviated), 'no' ('n') or 'JOB' ('j'). It can be set to
'yes' and 'JOB' only for numeric attributes (INT, DOUBLE,
MEMORY, TIME - see type above). If set to 'yes' or 'JOB' the
consumption of the corresponding resource can be managed by
Sun Grid Engine internal bookkeeping. In this case Sun Grid
Engine accounts for the consumption of this resource for all
running jobs and ensures that jobs are only dispatched if
the Sun Grid Engine internal bookkeeping indicates enough
available consumable resources. Consumables are an efficient
means to manage limited resources such a available memory,
free space on a file system, network bandwidth or floating
A consumable defined by 'y' is a per slot consumables which
means the limit is multiplied by the number of slots being
used by the job before being applied. In case of 'j' the
consumable is a per job consumable. This resource is debited
as requested (without multiplication) from the allocated
master queue. The resource needs not be available for the
slave task queues.
Consumables can be combined with default or user defined
load parameters (see sge_conf(5) and host_conf(5)), i.e.
load values can be reported for consumable attributes or the
consumable flag can be set for load attributes. The Sun Grid
Engine consumable resource management takes both the load
(measuring availability of the resource) and the internal
bookkeeping into account in this case, and makes sure that
neither of both exceeds a given limit.
To enable consumable resource management the basic availa-
bility of a resource has to be defined. This can be done on
a cluster global, per host and per queue basis while these
categories may supersede each other in the given order (i.e.
a host can restrict availability of a cluster resource and a
queue can restrict host and cluster resources). The defini-
tion of resource availability is performed with the
complex_values entry in host_conf(5) and queue_conf(5). The
complex_values definition of the "global" host specifies
cluster global consumable settings. To each consumable com-
plex attribute in a complex_values list a value is assigned
which denotes the maximum available amount for that
resource. The internal bookkeeping will subtract from this
total the assumed resource consumption by all running jobs
as expressed through the jobs' resource requests.
Note: Jobs can be forced to request a resource and thus to
specify their assumed consumption via the 'force' value of
the requestable parameter (see above).
Note also: A default resource consumption value can be pre-
defined by the administrator for consumable attributes not
explicitly requested by the job (see the default parameter
below). This is meaningful only if requesting the attribute
is not enforced as explained above.
See the Sun Grid Engine Installation and Administration for
examples on the usage of the consumable resources facility.
Meaningful only for consumable complex attributes (see con-
sumable parameter above). Sun Grid Engine assumes the
resource amount denoted in the default parameter implicitly
to be consumed by jobs being dispatched to a host or queue
managing the consumable attribute. Jobs explicitly request-
ing the attribute via the -l option to qsub(1) override this
The urgency value allows influencing job priorities on a per
resource base. The urgency value effects the addend for each
resource when determining the resource request related
urgency contribution. For numeric type resource requests the
addend is the product of the urgency value, the jobs assumed
slot allocation and the per slot request as specified via -l
option to qsub(1). For string type requests the resources
urgency value is directly used as addend. Urgency values are
of type real. See under sge_priority(5) for an overview on
sge_intro(1), sge_types(1), qconf(1), qsub(1), uptime(1),
host_conf(5), queue_conf(5), sge_execd(8), sge_qmaster(8)
Sun Grid Engine Installation and Administration
See sge_intro(1) for a full statement of rights and permis-
Man(1) output converted with