pbs_queue_attributes(7B)
๐
pbs_queue_attributes(7B) ๐
PBS Professional manual page, bestie โ manual name folded in right here at the top so we can skip the boring header-line situation. This is the queue-attributes page and it is long, so we're doing it in chunks. This chunk starts at the top and goes through max_queuable ๐ซถ.
โจ NAME โจ
pbs_queue_attributes โ attributes of PBS queues. Short, sweet, iconic ๐.
๐ธ DESCRIPTION ๐ธ
Queues have the following attributes, and we are listing every single one. No skipping, no "you get the vibe" โ we keep the facts fr fr.
acl_group_enable
Controls whether group access to the queue obeys the access control list defined in the acl_groups queue attribute. It's giving gatekeeper energy ๐
.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Boolean - Python type:
bool
Behavior:
Trueโ Group access to the queue is limited according to the group access control list.Falseโ All groups are allowed access.
Default: False
acl_groups
List of groups which are allowed or denied access to this queue. The groups in the list are groups on the server host, not submitting hosts. The list is evaluated left-to-right; first match in the list is used โ iykyk ๐.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
"[+|-]<group name>[, ...]" - Python type:
pbs.acl - Default: No default
acl_host_enable
Controls whether host access to the queue obeys the access control list defined in the acl_hosts queue attribute.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Boolean - Python type:
bool
Behavior:
Trueโ Host access to the queue is limited according to the host access control list.Falseโ All hosts are allowed access.
Default: False
acl_hosts
List of hosts from which jobs may be submitted to this queue. The list is evaluated left-to-right; first match in the list is used.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
"[+|-]<hostname>[, ...]" - Python type:
pbs.acl - Default: No default
acl_user_enable
Controls whether user access to the queue obeys the access control list defined in the acl_users queue attribute.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Boolean - Python type:
bool
Behavior:
Trueโ User access to the queue is limited according to the user access control list.Falseโ All users are allowed access.
Default: False
acl_users
List of users which are allowed or denied access to this queue. The list is evaluated left-to-right; first match in the list is used.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
"[+|-]<username>[, ...]" - Python type:
pbs.acl - Default: No default
alt_router
No longer used. That's the whole section, bestie โ RIP ๐ชฆ.
backfill_depth
Modifies backfilling behavior for this queue. Sets the number of jobs to be backfilled around in this queue. It overrides the backfill_depth server attribute.
Recommendation: set this to less than 100. Lowkey important ๐.
- Applies to: execution queues.
- Readable by: all; settable by: all.
- Format:
Integer - Valid values: Must be
>=0 - Python type:
int
Behavior:
>= 0โ PBS backfills around the specified number of jobs.- Unset โ Backfill depth is set to 1.
Default: Unset (backfill depth is 1)
checkpoint_min
Minimum number of minutes of CPU time or walltime allowed between checkpoints of a job. If a user specifies a time less than this value, this value is used instead. The value given in checkpoint_min is used for both CPU minutes and walltime minutes.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Python type:
pbs.duration - Default: No default
default_chunk
The list of resources which will be inserted into each chunk of a job's select specification if the corresponding resource is not specified by the user. This provides a means for a site to be sure a given resource is properly accounted for even if not specified by the user โจ.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
default_chunk.<resource name>=<value>
[, default_chunk.<resource name>=<value>, ...]
- Python type:
pbs.pbs_resource - Syntax (Python):
default_chunk["<resource name>"]=<value>
where resource name is any built-in or custom resource.
- Default: No default
enabled
Specifies whether this queue accepts new jobs.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Boolean - Python type:
bool
Behavior:
Trueโ This queue is enabled. This queue accepts new jobs; new jobs can be enqueued.Falseโ This queue does not accept new jobs.
Default: False (disabled)
from_route_only
Specifies whether this queue accepts jobs only from routing queues, or from both execution and routing queues.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Manager.
- Format:
Boolean - Python type:
bool
Behavior:
Trueโ This queue accepts jobs only from routing queues.Falseโ This queue accepts jobs from both execution and routing queues, as well as directly from submitter.
Default: False
hasnodes
Indicates whether vnodes are associated with this queue.
- Applies to: execution queues.
- Readable by: all; set by: PBS.
- Format:
Boolean - Python type:
bool
Behavior: When True, there are vnodes associated with this queue.
Default: False
kill_delay
The time delay between sending SIGTERM and SIGKILL when a qdel command is issued against a running job. Dramatic exit sequence, honestly ๐.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Units: Seconds
- Python type:
pbs.duration - Valid values: Must be
>= 0 - Default:
10 seconds
max_array_size
The maximum number of subjobs that are allowed in an array job.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Python type:
int - Default: No default
max_group_res
๐จ Old limit attribute. Incompatible with new limit attributes. Do not mix-and-match, bestie.
The maximum amount of the specified resource that any single group may consume in a complex.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
max_group_res.<resource name>=<value> - Python type:
pbs.pbs_resource - Syntax (Python):
max_group_res["<resource name>"]=<value>
where resource name is any built-in or custom resource.
- Valid values: Any PBS resource, e.g.
"ncpus","mem","pmem" - Example:
set server max_group_res.ncpus=6
- Default: No default
max_group_res_soft
๐จ Old limit attribute. Incompatible with new limit attributes. Again: do not mix-and-match.
The soft limit on the amount of the specified resource that any single group may consume in a complex. If a group is consuming more than this amount of the specified resource, their jobs are eligible to be preempted by jobs from groups who are not over their soft limit.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
String - Syntax:
max_group_res_soft.<resource name>=<value> - Python type:
pbs.pbs_resource - Syntax (Python):
max_group_res_soft["<resource name>"]=<value>
where resource name is any built-in or custom resource.
- Valid values: Any PBS resource, e.g.
"ncpus","mem","pmem" - Example:
set queue workq max_group_res_soft.ncpus=3
- Default: No default
max_group_run
๐จ Old limit attribute. Incompatible with new limit attributes. Keep that in mind, fr fr.
The maximum number of jobs owned by a group that are allowed to be running from this queue at one time.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Python type:
int - Default: No default
max_group_run_soft
๐จ Old limit attribute. Incompatible with new limit attributes. No cap on the incompatibility warning, apparently.
The maximum number of jobs owned by users in a single group that are allowed to be running from this queue at one time. If a group has more than this number of jobs running, their jobs are eligible to be preempted by jobs from groups who are not over their soft limit.
- Applies to: execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Python type:
int - Default: No default
max_queuable
๐จ Old limit attribute. Incompatible with new limit attributes. The old-limit vibe check is not passing.
The maximum number of jobs allowed to reside in this queue at any given time.
- Applies to: routing and execution queues.
- Readable by: all; settable by: Operator and Manager.
- Format:
Integer - Python type:
int - Default: No default (no limit)
๐
max_queued
Okay so this is a Limit attribute โ it caps the max number of jobs allowed to be queued in or running from this queue. You can scope it to projects, users, groups, or literally all of them. ๐ซถ
Big heads up though: you cannot use this with old limit attributes. Pick a lane, bestie.
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Default: No default
Syntax:
max_queued["<resource name>"]=<value>
where resource name is any built-in or custom resource
๐งฎ max_queued_res
Also a Limit attribute. This one's about the maximum amount of the specified resource that's allowed to be allocated to jobs queued in or running from this queue. Same deal: projects, users, groups, or all. And same warning โ cannot be used with old limit attributes, no cap ๐ซ
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
max_queued_res.<resource name>=<value>
Python syntax:
max_queued_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq max_queued_res.ncpus=4
๐โโ๏ธ max_run
Limit attribute, and it's giving "how many can actually run". Maximum number of jobs allowed to be running from this queue โ scoped to projects, users, groups, or all. And yeah, cannot be used with old limit attributes.
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Default: No default
Syntax:
max_run["<resource name>"]=<value>
where resource name is any built-in or custom resource
๐งฌ max_run_res
Limit attribute time again โจ This is the maximum amount of the specified resource allowed to be allocated to jobs running from this queue. Projects, users, groups, or all โ your pick. Cannot be used with old limit attributes.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
max_run_res.<resource name>=<value>
Python syntax:
max_run_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq max_run_res.ncpus=4
๐ธ max_run_res_soft
Limit attribute, but make it soft ๐ซง This is a soft limit on the amount of the specified resource allowed to be allocated to jobs running from this queue. Scoped to projects, users, groups, or all. Cannot be used with old limit attributes.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
max_run_res_soft.<resource name>=<value>
Python syntax:
max_run_res_soft["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq max_run_res_soft.ncpus=2
๐ max_run_soft
Limit attribute โ the soft sibling of max_run. A soft limit on the number of jobs allowed to be running from this queue. Projects, users, groups, or all, as always. Cannot be used with old limit attributes.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification โ see FORMATS
- Python type:
pbs.pbs_resource - Default: No default
Syntax:
max_run_soft["<resource name>"]=<value>
where resource name is any built-in or custom resource
๐ max_running
Okay this one's an Old limit attribute โ and it's incompatible with new limit attributes. Choose wisely, babe.
For an execution queue, this is the largest number of jobs allowed to be running at any given time. For a routing queue, this is the largest number of jobs allowed to be transiting from this queue at any given time. Two vibes, one attribute ๐ฆ
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Integer
- Python type:
int - Default: No default
๐ง max_user_res
Old limit attribute โ incompatible with new limit attributes. This is the maximum amount of the specified resource that any single user may consume.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: String
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
max_user_res.<resource name>=<value>
Python syntax:
max_user_res["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq max_user_res.ncpus=2
๐ max_user_res_soft
Old limit attribute โ incompatible with new limit attributes. The soft limit on the amount of the specified resource that any single user may consume.
And here's the tea โ if a user is consuming more than this amount of the specified resource, their jobs are eligible to be preempted by jobs from users who are not over their soft limit. Main character energy for the good-behaviour girlies ๐
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: String
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
max_user_res_soft.<resource name>=<value>
Python syntax:
max_user_res_soft["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq max_user_res_soft.ncpus=2
๐ max_user_run
Old limit attribute โ incompatible with new limit attributes. The maximum number of jobs owned by a single user that are allowed to be running from this queue at one time.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Integer
- Python type:
int - Default: No default
โญ max_user_run_soft
Old limit attribute โ incompatible with new limit attributes. The soft limit on the number of jobs owned by any single user allowed to be running from this queue at one time.
Same preemption lore as above ๐ซ if a user has more than this number of jobs running, their jobs are eligible to be preempted by jobs from users who are not over their soft limit.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Integer
- Python type:
int - Default: No default
๐งฉ node_group_key
This one specifies the resources to use for placement sets. It overrides the server's node_group_key attribute. And the resources you list here must be of type string_array โ no exceptions, bestie ๐
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format:
string_array - Python type:
pbs.node_group_key - Default: No default
Syntax:
Comma-separated list of resource names.
When specifying multiple resources, enclose value in double quotes.
Example:
Qmgr> set queue workq node_group_key=<resource name>
๐ท๏ธ partition
The name of the partition this queue is assigned to. Cannot be set for a routing queue. And an execution queue cannot be changed to a routing queue while this attribute is set โ them's the rules ๐ซ
- Applies to: execution queues
- Readable by: all
- Settable by: Manager
- Format: String
- Python type:
str - Default: No default
๐ Priority
The priority of this queue compared to other queues of the same type in this PBS complex. Priority can even define a queue as an express queue โ see preempt_queue_prio in the pbs_sched(8B) man page. ๐ฅ
Used for execution queues only; the value of Priority has no meaning for routing queues.
- Applies to: execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Integer
- Valid values:
-1024to1023 - Python type:
int - Default: No default
๐ฆ queued_jobs_threshold
Limit attribute โ the maximum number of jobs allowed to be queued in this queue. Scoped to projects, users, groups, or all. Cannot be used with old limit attributes.
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: Limit specification; see LIMITS
- Python type:
pbs.pbs_resource - Default: No default
Syntax:
queued_jobs_threshold["<resource name>"]=<value>
where resource name is any built-in or custom resource
๐ queued_jobs_threshold_res
Limit attribute โ the maximum amount of the specified resource allowed to be allocated to jobs queued in this queue. Projects, users, groups, or all, your call. Cannot be used with old limit attributes.
- Applies to: routing and execution queues
- Readable by: all
- Settable by: Operator and Manager
- Format: limit specification โ see LIMITS
- Python type:
pbs.pbs_resource - Valid values: any PBS resource, e.g.
"ncpus","mem","pmem" - Default: No default
Syntax:
queued_jobs_threshold_res.<resource name>=<value>
Python syntax โ and yes, type it exactly like this, trailing underscore in the bracket key and all ๐:
queued_jobs_threshold_res_["<resource name>"]=<value>
where resource name is any built-in or custom resource
Example:
set queue workq queued_jobs_threshold_res.ncpus=8
๐ queue_type
The โจtypeโจ of the queue, bestie. And listen โ this one must be explicitly set at queue creation, like you literally cannot skip it, no cap.
- Applies to: routing queues and execution queues
- Readable by all; settable by Operator and Manager
- Format:
String - Python type: PBS queue type constant โ
pbs.QUEUETYPE_EXECUTIONorpbs.QUEUETYPE_ROUTE - Valid values:
"e","execution","r","route" - Default: No default ๐
๐ฆ require_cred
Specifies the credential type that's required. Every single job submitted to the named queue without the specified credential gets rejected โ like, denied, blocked, not today. ๐
- Applies to: routing and execution queues
- Readable by all; settable by Manager
- Format:
String - Python type:
str - Valid values:
krb5ordce - Default: Unset
๐ธ require_cred_enable
Tells you whether the credential authentication method named in the require_cred queue attribute is actually required for this queue. It's the on/off switch for the whole vibe check. ๐
- Applies to: routing and execution queues
- Readable by all; settable by Manager
- Format:
Boolean - Python type:
bool - Behavior:
- When set to
True, the credential authentication method is required.
- When set to
- Default:
False
๐ resources_assigned
The total for each kind of resource that's been allocated to running and exiting jobs in this queue. It's the "what's already been handed out" count. ๐
- Applies to: execution queues
- Readable by all; set by PBS (not you, bestie โ it does it itself)
- Format:
String - Syntax:
resources_assigned.<resource name>=<value><newline>
resources_assigned.<resource name>=<value><newline> ...
- Python type:
pbs.pbs_resource - Syntax:
resources_assigned["<resource name>"]=<value>
where resource name is any built-in or custom resource
- Default value: No default
โญ resources_available
The list of resources and how much of each is available to jobs running in this queue. The sum of each resource type used by all jobs running from this queue can't exceed the total listed here โ that's the ceiling, periodt. See the qmgr(1B) man page for the deets. ๐ซถ
- Applies to: execution queues
- Readable by all; settable by Operator and Manager
- Format:
String - Syntax:
resources_available.<resource name>=<value><newline>
resources_available.<resource name>=<value><newline> ...
- Python type:
pbs.pbs_resource - Syntax:
resources_available["<resource name>"]=<value>
where resource name is any built-in or custom resource
- Default value: No default
๐ง resources_default
The list of default resource values that get set as limits for a job sitting in this queue and that the job didn't specify a limit for. Basically the "you didn't ask, so here's the house default" situation. ๐
If it's not explicitly set, the default limit for a job is determined by the first of the following attributes that is set:
- server's
resources_default - queue's
resources_max - server's
resources_max
If none of these are set, the job gets unlimited resource usage โ which, okay, iconic, but also be careful. ๐ญ
- Applies to: routing and execution queues
- Readable by all; settable by Operator and Manager
- Format:
String - Syntax:
resources_default.<resource name>=<value>,
resources_default.<resource name>=<value>, ...
- Python type:
pbs.pbs_resource - Syntax:
resources_default["<resource name>"]=<value>
where resource name is any built-in or custom resource
- Default value: No default
๐ฅ resources_max
The maximum amount of each resource that a single job in this queue can request. And the queue value supersedes any server-wide maximum limit โ queue says jump, server says how high, basically. ๐
- Applies to: routing and execution queues
- Readable by all; settable by Operator and Manager
- Format:
String - Syntax:
resources_max.<resource name>=<value>,
resources_max.<resource name>=<value>, ...
- Python type:
pbs.pbs_resource - Syntax:
resources_max["<resource name>"]=<value>
where resource name is any built-in or custom resource
- Default value: No default (infinite usage)
๐ resources_min
The minimum amount of each resource that a single job in this queue can request. The floor, the bare minimum, the "don't even bother below this" line. โจ
- Applies to: routing and execution queues
- Readable by all; settable by Operator and Manager
- Format:
String - Syntax:
resources_min.<resource name>=<value>,
resources_min.<resource name>=<value>, ...
- Python type:
pbs.pbs_resource - Syntax:
resources_min["<resource name>"]=<value>
where resource name is any built-in or custom resource
- Default value: No default (zero usage)
๐ route_destinations
The list of destinations that jobs are allowed to be routed to. Must be set to at least one valid destination โ an empty list is not the move, bestie.
- Applies to: routing queues
- Readable by all; settable by Manager
- Format:
String - Syntax โ a list of comma-separated strings:
<queue name>[@<server host>[:<port>]]
- Python type:
pbs.route_destinations - Example:
Q1,Q2@remote,Q3@remote:15501 - Default: No default
๐ซ route_held_jobs
Specifies whether jobs in the held state can be routed from this queue. Like, are the on-hold girlies allowed to travel? โ๏ธ
- Applies to: routing queues
- Readable by all; settable by Operator and Manager
- Format:
Boolean - Python type:
bool - Behavior:
- When
True, jobs with a hold can be routed from this queue.
- When
- Default:
False
๐ route_lifetime
The maximum time a job is allowed to reside in this routing queue. If a job can't be routed within that amount of time, the job is aborted. Yeah. Sad but true. ๐
- Applies to: routing queues
- Readable by all; settable by Operator and Manager
- Format:
Integer - Units: Seconds
- Python type:
pbs.duration - Behavior:
>0โ jobs can reside for specified number of seconds0or unset โ jobs can reside for infinite time
- Default: Unset
๐ฆ route_retry_time
Time delay between routing retries. Typically used when the network between servers is down โ you know, the classic "have you tried again in a sec" energy. ๐ก
- Applies to: routing queues
- Readable by all; settable by Operator and Manager
- Format:
Integer - Units: Seconds
- Python type:
pbs.duration - Default:
30 seconds
๐ route_waiting_jobs
Specifies whether jobs whose Execution_Time attribute value is in the future can be routed from this queue. Time travellers welcome? ๐ฐ๏ธ
- Applies to: routing queues
- Readable by all; settable by Operator and Manager
- Format:
Boolean - Python type:
bool - Behavior:
- When
True, jobs with a futureExecution_Timecan be routed from this queue.
- When
- Default:
False
๐ started
If this is an execution queue, this specifies whether jobs in this queue can be scheduled for execution. If this is a routing queue, it specifies whether jobs can be routed. Either way it's the big "go" button. ๐ข
- Applies to: routing and execution queues
- Readable by all; settable by Operator and Manager
- Format:
Boolean - Python type:
bool - Behavior: When
True, jobs in this queue can run or be routed. - Default:
False
๐ state_count
The total number of jobs in each state currently residing in this queue. A little census of your queue's population. ๐งฎ
- Applies to: routing and execution queues
- Readable by all; set by PBS
- Format:
String - Syntax:
transiting=<value>,exiting=<value>, ... - Python type:
pbs.state_count - Default: No default
๐ธ total_jobs
The number of jobs currently residing in this queue. That's it, that's the whole thing. One number, one vibe. ๐ข
- Applies to: routing and execution queues
- Readable by all; set by PBS
- Format:
Integer - Python type:
int - Default: No default
โจ FORMATS โจ
okay bestie, here's where we get into the format of things โ literally! ๐
๐ Limit specification ๐
Limit attributes can be set, added to, or removed from. (yes, all three! choose your fighter ๐ฅ)
Format for setting a limit specification:
set server <limit attribute> = "<limit specification>=<limit>[, <limit specification>=<limit>] ..."
Format for adding to a limit specification:
set server <limit attribute> += "<limit specification>=<limit>[, <limit specification>=<limit>] ..."
Format for removing from a limit specification:
set server <limit attribute> -= "<limit specification>=<limit>[, [<limit specification>=<limit>] ..."
or
set server <limit attribute> -= "<limit specification>[, <limit specification>] ..."
Where limit specification is:
o:PBS_ALLโ Overall limitu:PBS_GENERICโ Generic usersu:<username>โ A specific userg:PBS_GENERICโ Generic groupsg:<group name>โ A specific groupp:PBS_GENERICโ Generic projectsp:<project name>โ A specific project
The limit specification can contain spaces anywhere except after the colon (:). ๐
If there are comma-separated limit specifications, the entire string must be enclosed in double quotes.
A username, groupname, or project name containing spaces must be enclosed in quotes.
If a username, groupname, or project name is quoted using double quotes, and the entire string requires quotes, the outer enclosing quotes must be single quotes. Similarly, if the inner quotes are single quotes, the outer quotes must be double quotes. (quote-ception, but make it fashion ๐โโ๏ธ)
PBS_ALL is a keyword which indicates that this limit applies to the usage total.
PBS_GENERIC is a keyword which indicates that this limit applies to generic users, groups, or projects.
When removing a limit, the limit value does not need to be specified. (you can just yeet it ๐๏ธ)
For example, to set the max_queued limit on QueueA to 5 for total usage, and to limit user bill to 3:
s q QueueA max_queued = "[o:PBS_ALL=5], [u:bill =3]"
Examples of setting, adding, and removing:
set server max_run="[u:PBS_GENERIC=2], [g:group1=10],
[o:PBS_ALL = 100]"
set server max_run+="[u:user1=3], [g:PBS_GENERIC=8]"
set server max_run-="[u:user2], [g:group3]"
set server max_run_res.ncpus="[u:PBS_GENERIC=2],
[g:group1=8], [o:PBS_ALL = 64]"
๐ซ Incompatible Limit Attributes ๐ซ
โ ๏ธ The old and new limit attributes are incompatible. ๐ฑ If any of one kind is set, none of the other kind can be set. All of one kind must be unset in order to set any of the other kind. (no mixing, bestie โ it's giving strict boundaries ๐)
๐ SEE ALSO ๐
qmgr(1B)โ the whole vibe, check it out! ๐ซถ
that's a wrap! this iconic page is from the Local manual, dated 6 May 2020, for pbs_queue_attributes(7B). stay slay, and may your limits always be iconic! ๐โจ๐
๐ฆ where this page comes from
- nixos 26.05: openpbs 23.06.06-unstable-2026-04-02
- nixpkgs unstable: openpbs 23.06.06-unstable-2026-04-02
- Copyright (C) 1994-2021 Altair Engineering, Inc
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms