pbs_queue_attributes(7B)

๐Ÿ“ฆ version 23.06.06-unstable-2026-04, in nixos 26.05, nixpkgs unstable

๐Ÿ’… 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: -1024 to 1023
  • 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_EXECUTION or pbs.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: krb5 or dce
  • 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.
  • 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:

  1. server's resources_default
  2. queue's resources_max
  3. 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.
  • 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 seconds
    • 0 or 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 future Execution_Time can be routed from this queue.
  • 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 limit
  • u:PBS_GENERIC โ€” Generic users
  • u:<username> โ€” A specific user
  • g:PBS_GENERIC โ€” Generic groups
  • g:<group name> โ€” A specific group
  • p:PBS_GENERIC โ€” Generic projects
  • p:<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