.SH "DESCRIPTION"
\fBsacctmgr\fR is used to view or modify Slurm account information.
The account information is maintained within a database with the interface
being provided by \fBslurmdbd\fR (Slurm Database daemon).
This database can serve as a central storehouse of user and
computer information for multiple computers at a single site.
Slurm account information is recorded based upon four parameters
that form what is referred to as an \fIassociation\fR.
These parameters are \fIuser\fR, \fIcluster\fR, \fIpartition\fR, and
\fIaccount\fR. \fIuser\fR is the login name.
\fIcluster\fR is the name of a Slurm managed cluster as specified by
the \fIClusterName\fR parameter in the \fIslurm.conf\fR configuration file.
\fIpartition\fR is the name of a Slurm partition on that cluster.
\fIaccount\fR is the bank account for a job.
The intended mode of operation is to initiate the \fBsacctmgr\fR command,
add, delete, modify, and/or list \fIassociation\fR records then
commit the changes and exit.

.TP "7"
\f3Note: \fP\c
The content's of Slurm's database are maintained in lower case. This may
result in some \f3sacctmgr\fP output differing from that of other Slurm
commands.

.SH "OPTIONS"

.TP
\fB\-h\fR, \fB\-\-help\fR
Print a help message describing the usage of \fBsacctmgr\fR.
This is equivalent to the \fBhelp\fR command.

.TP
\fB\-i\fR, \fB\-\-immediate\fR
commit changes immediately without asking for confirmation.

.TP
\fB\-n\fR, \fB\-\-noheader\fR
No header will be added to the beginning of the output.

.TP
\fB\-p\fR, \fB\-\-parsable\fR
Output will be '|' delimited with a '|' at the end.

.TP
\fB\-P\fR, \fB\-\-parsable2\fR
Output will be '|' delimited without a '|' at the end.

.TP
\fB\-Q\fR, \fB\-\-quiet\fR
Print no messages other than error messages.
This is equivalent to the \fBquiet\fR command.
This is equivalent to the \fBverbose\fR command.

.TP
\fB\-V\fR , \fB\-\-version\fR
Display version number.
This is equivalent to the \fBversion\fR command.

.SH "COMMANDS"

.TP
\fBadd\fR <\fIENTITY\fR> <\fISPECS\fR>
Add an entity.
Identical to the \fBcreate\fR command.

.TP
\fBarchive\fR {\fBdump\fR|\fBload\fR} <\fISPECS\fR>
Write database information to a flat file or load information that has
previously been written to a file.

.TP
\fBclear stats\fR
Clear the server statistics.

.TP
\fBcreate\fR <\fIENTITY\fR> <\fISPECS\fR>
Add an entity.
Identical to the \fBadd\fR command.

.TP
\fBdelete\fR <\fIENTITY\fR> \fBwhere\fR <\fISPECS\fR>
Delete the specified entities.
Identical to the \fBremove\fR command.

.TP
\fBdump\fR <\fIENTITY\fR> [\fBFile\fR=\fIFILENAME\fR]
Dump cluster data to the specified file. If the filename is not specified
it uses clustername.cfg filename by default.

.TP
\fBhelp\fP
Display a description of sacctmgr options and commands.

.TP
\fBlist\fR <\fIENTITY\fR> [<\fISPECS\fR>]
Display information about the specified entity.
By default, all entries are displayed, you can narrow results by
specifying SPECS in your query.
Identical to the \fBshow\fR command.

.TP
\fBload\fR <\fIFILENAME\fR>
Load cluster data from the specified file. This is a configuration file
Identical to the \fBdelete\fR command.

.TP
\fBshow\fR <\fIENTITY\fR> [<\fISPECS\fR>]
Display information about the specified entity.
By default, all entries are displayed, you can narrow results by
specifying SPECS in your query.
Identical to the \fBlist\fR command.

.TP
\fBshutdown\fR
Shutdown the server.

.TP
\fBversion\fP
Display the version number of sacctmgr.

.SH "INTERACTIVE COMMANDS"

\fBNOTE:\fP
All commands listed below can be used in the interactive mode, but \fINOT\fP
on the initial command line.

.TP
\fBexit\fP
Terminate sacctmgr interactive mode.
Identical to the \fBquit\fR command.

.TP
\fBquiet\fP
Print no messages other than error messages.

.TP
\fBquit\fP
Terminate the execution of sacctmgr interactive mode.
Identical to the \fBexit\fR command.

.TP
\fBverbose\fP
Enable detailed logging.
This includes time\-stamps on data structures, record counts, etc.
This is an independent command with no options meant for use in
interactive mode.

.TP
\fB!!\fP
Repeat the last command.

.SH "ENTITIES"

.TP
\fBaccount\fR

.TP
\fBcluster\fR
The \fBClusterName\fR parameter in the \fBslurm.conf\fR configuration
file, used to differentiate accounts on different machines.

.TP
\fBconfiguration\fR
Used only with the \fBlist\fR or \fBshow\fR command to report current
system configuration.

.TP
\fBcoordinator\fR
A special privileged user, usually an account manager, that can
add users or sub-accounts to the account they are coordinator over.
This should be a trusted person since they can change limits on
account and user associations, as well as cancel, requeue or reassign
accounts of jobs inside their realm.

.TP
\fBevent\fR
Events like downed or draining nodes on clusters.

.TP
\fBfederation\fR
A group of clusters that work together to schedule jobs.

.TP
\fBjob\fR
Used to modify specific fields of a job: Derived Exit Code,
the Comment String, or wckey.

.TP
\fBproblem\fR
Use with \fBshow\fR or \fBlist\fR to display entity problems.

.TP
\fBqos\fR
Quality of Service.

.TP
\fBreservation\fR
A collection of resources set apart for use by a particular account, user
or group of users for a given period of time.

.TP
\fBresource\fR
Software resources for the system. Those are software licenses shared
among clusters.

.TP
\fBRunawayJobs\fR
\fBtransaction\fR
List of transactions that have occurred during a given time period.

.TP
\fBtres\fR
Used with \fBlist\fR or \fBshow\fR command to view a list of Trackable
RESources configured on the system.

.TP
\fBuser\fR
The login name. Usernames are case\-insensitive (forced to lowercase) unless
the \fBPreserveCaseUser\fR option has been set in the SlurmDBD configuration
file.

.TP
\fBwckeys\fR
Workload  Characterization  Key. An arbitrary  string  for  grouping orthogonal accounts.

.SH "GENERAL SPECIFICATIONS FOR ASSOCIATION BASED ENTITIES"
\fBNOTE:\fR The group limits (GrpJobs, GrpTRES, etc.) are tested when a job is
being considered for being allocated resources.
If starting a job would cause any of its group limit to be exceeded,
that job will not be considered for scheduling even if that job might preempt
other jobs which would release sufficient group resources for the pending
job to be initiated.

.TP
\fIDefaultQOS\fP=<default qos>
The default QOS this association and its children should have.
This is overridden if set directly on a user.
To clear a previously set value use the modify command with a new value of \-1.

.TP
\fIFairshare\fP=<fairshare number | parent>
Number used in conjunction with other accounts to determine job
priority. Can also be the string \fIparent\fR, when used on a user
this means that the parent association is used for fairshare.  If
Fairshare=parent is set on an account, that account's children will be
effectively reparented for fairshare calculations to the first parent
of their parent that is not Fairshare=parent.  Limits remain the same,
only its fairshare value is affected.  To clear a previously set
value use the modify command with a new value of \-1.

.TP
\fIGrpTRESMins\fP=<TRES=max TRES minutes,...>
The total number of TRES minutes that can possibly be used by past,
present and future jobs running from this association and its children.
To clear a previously set value use the modify command with a new
value of \-1 for each TRES id.

NOTE: This limit is not enforced if set on the root
association of a cluster.  So even though it may appear in sacctmgr
is reached no new jobs are started until other jobs finish to allow
time to free up.

.TP
\fIGrpTRES\fP=<TRES=max TRES,...>
Maximum number of TRES running jobs are able to be allocated in aggregate for
this association and all associations which are children of this association.
To clear a previously set value use the modify command with a new
value of \-1 for each TRES id.

NOTE: This limit only applies fully when using the Select Consumable
Resource plugin.

.TP
\fIGrpJobs\fP=<max jobs>
Maximum number of running jobs in aggregate for
this association and all associations which are children of this association.
To clear a previously set value use the modify command with a new value of \-1.

.TP
\fIGrpJobsAccrue\fP=<max jobs>
Maximum number of pending jobs in aggregate able to accrue age priority for this
association and all associations which are children of this association.
To clear a previously set value use the modify command with a new value of \-1.

.TP
\fIGrpSubmitJobs\fP=<max jobs>
Maximum number of jobs which can be in a pending or running state at any time
in aggregate for this association and all associations which are children of
this association.
To clear a previously set value use the modify command with a new value of \-1.

\fBNOTE\fR: This setting shows up in the sacctmgr output as \fBGrpSubmit\fR.

.TP
\fIGrpWall\fP=<max wall>
Maximum wall clock time running jobs are able to be allocated in aggregate for
this association and all associations which are children of this association.
To clear a previously set value use the modify command with a new value of \-1.

NOTE: This limit is not enforced if set on the root association of a
cluster.  So even though it may appear in sacctmgr output, it will not
be enforced.

ALSO NOTE: This limit only applies when using the Priority Multifactor
plugin.  The time is decayed using the value of PriorityDecayHalfLife
or PriorityUsageResetPeriod as set in the slurm.conf.  When this limit
is reached all associated jobs running will be killed and all future
jobs submitted with associations in the group will be delayed until
they are able to run inside the limit.

.TP
To clear a previously set value use the modify command with a new
value of \-1 for each TRES id.

\fBNOTE\fR: This setting shows up in the sacctmgr output as \fBMaxTRES\fR.

\fBNOTE\fR: This limit only applies fully when using \fBcons_res\fR or
\fBcons_tres\fR select type plugins.

.TP
\fIMaxJobs\fP=<max jobs>
Maximum number of jobs each user is allowed to run at one time in this
association.
This is overridden if set directly on a user.
Default is the cluster's limit.
To clear a previously set value use the modify command with a new value of \-1.

.TP
\fIMaxJobsAccrue\fP=<max jobs>
Maximum number of pending jobs able to accrue age priority at any given time for
the given association.
This is overridden if set directly on a user.
Default is the cluster's limit.
To clear a previously set value use the modify command with a new value of \-1.

.TP
\fIMaxSubmitJobs\fP=<max jobs>
Maximum number of jobs which can this association can have in a
pending or running state at any time.
Default is the cluster's limit.
To clear a previously set value use the modify command with a new value of \-1.

\fBNOTE\fR: This setting shows up in the sacctmgr output as \fBMaxSubmit\fR.

.TP
\fIMaxWallDurationPerJob\fP=<max wall>
Maximum wall clock time each job is able to use in this association.
This is overridden if set directly on a user.
Default is the cluster's limit.
sacctmgr show assoc format=cluster,account,user,qos
.br
   Cluster    Account  QOS
.br
.br

.br
->sacctmgr add account banana parent=G
.br

.br
->sacctmgr show assoc format=cluster,account,qos
.br
   Cluster    Account   QOS
.br
  ---------  --------  -----
.br
  zebra       root       normal
.br
  zebra       root       normal
.br
  zebra          g       expedite
.br
  zebra     banana       expedite
.br
  zebra         g1       expedite,normal
.br

An example of listing trackable resources
.br

.br
->sacctmgr show tres
.br
      Type              Name      ID
.br
---------- ----------------- --------
.br
       cpu                          1
.br
       mem                          2
.br
    energy                          3
.br
      node                          4
.br
   billing                          5
.br
      gres         gpu:tesla     1001
.br
   license               vcs     1002
.br
        bb              cray     1003
.br

.ec
.LP
Slurm is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
details.

.SH "SEE ALSO"
\fBslurm.conf\fR(5),
\fBslurmdbd\fR(8)