Using and Administering
The information specified in a user stanza defines the
characteristics of that user. You can have one user stanza for each
user but this is not necessary. If an individual user does not have
their own user stanza, that user uses the defaults defined in the default user
stanza.
User stanzas take the following format:
Figure 26. Format of a User Stanza
label: type = user
account = list
default_class = list
default_group = group name
default_interactive_class = class name
maxidle = number
maxjobs = number
maxqueued = number
max_node = number
max_processors = number
priority = number
total_tasks = number
|
You can specify the following keywords in a user stanza:
- account =list
- where list is a blank-delimited list of account numbers that
identifies the account numbers a user may use when submitting jobs. The
default is a null list.
- default_class =
list
- where list is a blank-delimited list of class names used for jobs
which do not include a class statement in the job command
file. If you specify only one default class name, this class is
assigned to the job. If you specify a list of default class names,
LoadLeveler searches the list to find a class which satisfies the resource
limit requirements. If no class satisfies these requirements,
LoadLeveler rejects the job.
Suppose a job requests a CPU limit of 10 minutes. Also, suppose the
default class list is default_class = short long, where
short is a class for jobs up to five minutes in length and
long is a class for jobs up to one hour in length.
LoadLeveler will select the long class for this job because the
short class does not have sufficient resources.
If no default_class is specified in the user stanza, or if there
is no user stanza at all, then jobs submitted without a class
statement are assigned to the default_class that appears in the
default user stanza. If you do not define a default_class,
jobs are assigned to the class called No_Class.
- default_group = group_name
- where group_name is the default group assigned to jobs submitted
by the user. If a default_group statement does not appear in
the user stanza, or if there is no user stanza at all, then jobs submitted by
the user without a group statement are assigned to the
default_group that appears in the default user stanza. If
you do not define a default_group, jobs are assigned to the group
called No_Group.
If you specify default_group = Unix_Group, LoadLeveler sets the
user's LoadLeveler group to his or her primary UNIX group (as defined in
the /etc/passwd file).
- default_interactive_class =
class_name
- where class_name is the class to which an interactive job
submitted by this user is assigned if the user does not specify a class using
the LOADL_INTERACTIVE_CLASS environment variable. You can specify only
one default interactive class name.
If you do not set a default_interactive_class value in the user
stanza, or if there is no user stanza at all, then interactive jobs submitted
without a class statement are assigned to the
default_interactive_class that appears in the default user
stanza. If you do not define a default_interactive_class,
interactive jobs are assigned to the class called No_Class.
See Example 2 for more information on how LoadLeveler assigns a default
interactive class to jobs.
- maxidle = number
- where number is the maximum number of idle jobs this user can
have in queue. That is, number is the maximum number of jobs
which the negotiator will consider for dispatch for the user. Jobs
above this maximum are placed in the NotQueued state. This prevents
individual users from dominating the number of jobs that are either running or
are being considered to run. If the user stanza does not specify
maxidle or if there is no user stanza at all, the maximum number of
jobs that can be simultaneously in queue for the user is defined in the
default stanza. If no value is found, or the limit found is -1, then no
limit is placed on the number of jobs that can be simultaneously idle for the
user.
For more information, see Controlling the Mix of Idle and Running Jobs.
- maxjobs = number
- where number is the maximum number of jobs this user can run at
any time. If the user stanza does not specify maxjobs or if
there is no user stanza at all, the maximum jobs that can be simultaneously
run by the user is defined in the default stanza. The default is -1,
which means no limit is placed on the number of jobs that can simultaneously
run for the user. Regardless of this limit, there is no limit to the
number of jobs a user can submit.
For more information, see Controlling the Mix of Idle and Running Jobs.
- maxqueued = number
- where number is the maximum number of jobs allowed in the queue
for this user. This is the maximum number of jobs which can be either
running or being considered to be dispatched by the negotiator for that
user. Jobs above this maximum are placed in the NotQueued state.
This prevents individual users from dominating the number of jobs that are
either running or are being considered to run. If no
maxqueued is specified in the user stanza, or if there is no user
stanza, the maximum number of jobs that can simultaneously be in the queue is
defined in the default stanza. The default is -1, which means that no
limit is placed on the number of jobs that can simultaneously be in the job
queue for that user. Regardless of this limit, there is no limit to the
number of jobs a user can submit.
For more information, see Controlling the Mix of Idle and Running Jobs.
- max_node = number
- where number specifies the maximum number of nodes this user can
request for a parallel job in a job command file using the node
keyword. The default is -1, which means there is no limit. The
max_node keyword will not affect the use of the min_processors and
max_processors keywords in the job command file.
- max_processors = number
- where number specifies the maximum number of processors this user
can request for a parallel job in a job command file using the
min_processors and max_processors keywords. The
default is -1, which means there is no limit.
- priority = number
- where number is a integer that specifies the priority for jobs
submitted by the user. The default is 0. The number specified
for priority is referenced as UserSysprio in the configuration
file. UserSysprio can be used in the assignment of job
priorities. If the variable UserSysprio does not appear in the
SYSPRIO expression in the configuration file, the priority numbers for users
specified here in the administration file have no effect. See Step 6: Prioritize the Queue Maintained by the Negotiator for more information about the UserSysprio
keyword.
- total_tasks = number
- where number specifies the maximum number of tasks this user can
request for a parallel job in a job command file using the
total_tasks keyword. The default is -1, which means there is
no limit.
In this example, user fred is being provided
with a user stanza. His jobs will have a user priority of 100.
If he does not specify a job class in his job command file, the default job
class class_a will be used. In addition, he can have a
maximum of 15 jobs running at the same time.
# Define user stanzas
fred: type = user
priority = 100
default_class = class_a
maxjobs = 15
This example explains how a default interactive class for a
parallel job is set by presenting a series of user stanzas and class
stanzas. This example assumes that users do not specify the
LOADL_INTERACTIVE_CLASS environment variable.
default: type =user
default_interactive_class = red
default_class = blue
carol: type = user
default_class = single double
default_interactive_class = ijobs
steve: type = user
default_class = single double
ijobs: type = class
wall_clock_limit = 08:00:00
red: type = class
wall_clock_limit = 30:00
If the user Carol submits an interactive job, the job is assigned to the
default interactive class called ijobs. The job is assigned
a wall clock limit of 8 hours. If the user Steve submits an interactive
job, the job is assigned to the red class from the default user
stanza. The job is assigned a wall clock limit of 30
minues.
In this example, Jane's jobs have a user priority of
50, and if she does not specify a job class in her job command file the
default job class small_jobs is used. This user stanza does
not specify the maximum number of jobs that Jane can run at the same time so
this value defaults to the value defined in the default stanza. Also,
suppose Jane is a member of the primary UNIX group "staff."
Jobs submitted by Jane will use the default LoadLeveler group
"staff." Lastly, Jane can use three different account
numbers.
# Define user stanzas
jane: type = user
priority = 50
default_class = small_jobs
default_group = Unix_Group
account = dept10 user3 user4
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]