Provided by: slurm-llnl_2.6.5-1_amd64 bug

NAME

       slurm.conf - Slurm configuration file

DESCRIPTION

       slurm.conf  is  an ASCII file which describes general SLURM configuration information, the
       nodes to be managed, information about how those nodes are grouped  into  partitions,  and
       various  scheduling  parameters  associated  with  those  partitions.  This file should be
       consistent across all nodes in the cluster.

       The file location can be modified  at  system  build  time  using  the  DEFAULT_SLURM_CONF
       parameter  or  at execution time by setting the SLURM_CONF environment variable. The SLURM
       daemons also allow you to override both the  built-in  and  environment-provided  location
       using the "-f" option on the command line.

       The  contents  of  the  file  are  case  insensitive  except  for  the  names of nodes and
       partitions. Any text following a "#" in the configuration file is  treated  as  a  comment
       through  the end of that line.  Changes to the configuration file take effect upon restart
       of SLURM daemons, daemon receipt of  the  SIGHUP  signal,  or  execution  of  the  command
       "scontrol reconfigure" unless otherwise noted.

       If a line begins with the word "Include" followed by whitespace and then a file name, that
       file will be included inline with the current configuration file.

       Note on file permissions:

       The slurm.conf file must be readable by all users of SLURM, since it is used  by  many  of
       the  SLURM  commands.   Other  files  that are defined in the slurm.conf file, such as log
       files and job accounting files, may need to be created/owned by the user "SlurmUser" to be
       successfully  accessed.   Use  the  "chown"  and "chmod" commands to set the ownership and
       permissions appropriately.  See the section FILE AND DIRECTORY PERMISSIONS for information
       about the various files and directories used by SLURM.

PARAMETERS

       The overall configuration parameters available include:

       AccountingStorageBackupHost
              The  name  of  the backup machine hosting the accounting storage database.  If used
              with the accounting_storage/slurmdbd plugin, this  is  where  the  backup  slurmdbd
              would be running.  Only used for database type storage plugins, ignored otherwise.

       AccountingStorageEnforce
              This  controls  what  level  of  association-based  enforcement  to  impose  on job
              submissions.  Valid options are any combination of  associations,  limits,  nojobs,
              nosteps, qos, safe, and wckeys, or all for all things.

              If limits, qos, or wckeys are set, associations will automatically be set.

              If wckeys is set, TrackWCKey will automatically be set.

              If safe is set, limits and associations will automatically be set.

              If nojobs is set nosteps will automatically be set.

              By  enforcing  Associations  no  new  job  is allowed to run unless a corresponding
              association exists in the system.  If limits are enforced users can be  limited  by
              association to whatever job size or run time limits are defined.

              If  nojobs  is set Slurm will not account for any jobs or steps on the system, like
              wise if nosteps is set Slurm will not account for any steps ran limits  will  still
              be enforced.

              If  safe is enforced a job will only be launched against an association or qos that
              has a GrpCPUMins limit set if the job will be able to run to  completion.   Without
              this  option  set,  jobs will be launched as long as their usage hasn't reached the
              cpu-minutes limit which can lead to jobs being launched but then  killed  when  the
              limit is reached.

              With  qos  and/or  wckeys  enforced  jobs  will not be scheduled unless a valid qos
              and/or workload characterization key is specified.

              When AccountingStorageEnforce is changed, a restart  of  the  slurmctld  daemon  is
              required (not just a "scontrol reconfig").

       AccountingStorageHost
              The  name  of  the  machine hosting the accounting storage database.  Only used for
              database type storage plugins, ignored otherwise.  Also see DefaultStorageHost.

       AccountingStorageLoc
              The fully qualified file  name  where  accounting  records  are  written  when  the
              AccountingStorageType  is  "accounting_storage/filetxt"  or  else  the  name of the
              database where accounting records are stored when the  AccountingStorageType  is  a
              database.  Also see DefaultStorageLoc.

       AccountingStoragePass
              The  password  used  to  gain  access to the database to store the accounting data.
              Only used for database type storage plugins, ignored otherwise.   In  the  case  of
              SLURM DBD (Database Daemon) with MUNGE authentication this can be configured to use
              a MUNGE daemon specifically configured to provide authentication  between  clusters
              while  the  default MUNGE daemon provides authentication within a cluster.  In that
              case,  AccountingStoragePass  should  specify  the  named  port  to  be  used   for
              communications       with      the      alternate      MUNGE      daemon      (e.g.
              "/var/run/munge/global.socket.2").  The  default   value   is   NULL.    Also   see
              DefaultStoragePass.

       AccountingStoragePort
              The  listening  port  of  the  accounting  storage  database server.  Only used for
              database type storage plugins, ignored otherwise.  Also see DefaultStoragePort.

       AccountingStorageType
              The accounting storage  mechanism  type.   Acceptable  values  at  present  include
              "accounting_storage/filetxt",                           "accounting_storage/mysql",
              "accounting_storage/none",             "accounting_storage/pgsql",              and
              "accounting_storage/slurmdbd".   The  "accounting_storage/filetxt"  value indicates
              that  accounting  records  will  be  written  to  the   file   specified   by   the
              AccountingStorageLoc  parameter.   The  "accounting_storage/mysql"  value indicates
              that accounting records will be written  to  a  MySQL  database  specified  by  the
              AccountingStorageLoc  parameter.   The  "accounting_storage/pgsql"  value indicates
              that accounting records will be written to a PostgreSQL database specified  by  the
              AccountingStorageLoc  parameter.  The "accounting_storage/slurmdbd" value indicates
              that accounting records will  be  written  to  the  SLURM  DBD,  which  manages  an
              underlying  MySQL  or PostgreSQL database. See "man slurmdbd" for more information.
              The default value is "accounting_storage/none" and indicates that  account  records
              are  not  maintained.   Note:  The  filetxt plugin records only a limited subset of
              accounting information and will prevent some sacct options from  proper  operation.
              Note:  The  PostgreSQL  plugin is not complete and should not be used if wanting to
              use associations.  It will however work with  basic  accounting  of  jobs  and  job
              steps.   If interested in completing, please email slurm-dev@schedmd.com.  Also see
              DefaultStorageType.

       AccountingStorageUser
              The user account for accessing the accounting  storage  database.   Only  used  for
              database type storage plugins, ignored otherwise.  Also see DefaultStorageUser.

       AccountingStoreJobComment
              If  set  to  "YES" then include the job's comment field in the job complete message
              sent to the Accounting Storage database.  The default is "YES".

       AcctGatherNodeFreq
              The AcctGather plugins sampling  interval  for  node  accounting.   For  AcctGather
              plugin  values  of  none,  this  parameter  is  ignored.  For all other values this
              parameter is the number  of  seconds  between  node  accounting  samples.  For  the
              acct_gather_energy/rapl  plugin, set a value less than 300 because the counters may
              overflow beyond this  rate.   The  default  value  is  zero.  This  value  disables
              accounting  sampling  for nodes. Note: The accounting sampling interval for jobs is
              determined by the value of JobAcctGatherFrequency.

       AcctGatherEnergyType
              Identifies  the  plugin  to  be  used  for  energy  consumption  accounting.    The
              jobacct_gather  plugin  and  slurmd  daemon  call  this  plugin  to  collect energy
              consumption data for jobs and nodes. The  collection  of  energy  consumption  data
              takes  place  on  node  level,  hence  only in case of exclusive job allocation the
              energy consumption measurements will reflect the jobs real consumption. In case  of
              node  sharing  between  jobs the reported consumed energy per job (through sstat or
              sacct) will not reflect the real energy consumed by the jobs.

              Configurable values at present are:

              acct_gather_energy/none
                                  No energy consumption data is collected.

              acct_gather_energy/ipmi
                                  Energy  consumption  data  is  collected  from  the   Baseboard
                                  Management  Controller  (BMC)  using  the  Intelligent Platform
                                  Management Interface (IPMI).

              acct_gather_energy/rapl
                                  Energy consumption data  is  collected  from  hardware  sensors
                                  using  the  Running  Average Power Limit (RAPL) mechanism. Note
                                  that enabling RAPL may require the  execution  of  the  command
                                  "sudo modprobe msr".

       AcctGatherInfinibandType
              Identifies  the  plugin  to be used for infiniband network traffic accounting.  The
              plugin is activated only when profiling on hdf5 files is  activated  and  the  user
              asks  for network data collection for jobs through --profile=Network (or =All). The
              collection of network traffic data takes place on node level, hence only in case of
              exclusive  job  allocation the collected values will reflect the jobs real traffic.
              All network traffic data are logged on hdf5 files per job on each node. No  storage
              on the Slurm database takes place.

              Configurable values at present are:

              acct_gather_infiniband/none
                                  No infiniband network data are collected.

              acct_gather_infiniband/ofed
                                  Infiniband network traffic data are collected from the hardware
                                  monitoring counters of  Infiniband  devices  through  the  OFED
                                  library.

       AcctGatherFilesystemType
              Identifies  the plugin to be used for filesystem traffic accounting.  The plugin is
              activated only when profiling on hdf5 files is activated  and  the  user  asks  for
              filesystem  data  collection  for  jobs  through  --profile=Network  (or =All). The
              collection of filesystem traffic data takes place on node level, hence only in case
              of  exclusive  job  allocation  the  collected  values  will  reflect the jobs real
              traffic. All filesystem traffic data are logged on hdf5 files per job on each node.
              No storage on the Slurm database takes place.

              Configurable values at present are:

              acct_gather_filesystem/none
                                  No filesystem data are collected.

              acct_gather_filesystem/lustre
                                  Lustre  filesystem traffic data are collected from the counters
                                  found in /proc/fs/lustre/.

       AcctGatherProfileType
              Identifies the plugin to be used for detailed job  profiling.   The  jobacct_gather
              plugin  and  slurmd  daemon  call  this plugin to collect detailed data such as I/O
              counts, memory  usage,  or  energy  consumption  for  jobs  and  nodes.  There  are
              interfaces  in this plugin to collect data as step start and completion, task start
              and completion, and at the account gather frequency. The data collected at the node
              level is related to jobs only in case of exclusive job allocation.

              Configurable values at present are:

              acct_gather_profile/none
                                  No profile data is collected.

              acct_gather_profile/hdf5
                                  This  enables  the HDF5 plugin. The directory where the profile
                                  files are stored and which values are collected are  configured
                                  in the acct_gather.conf file.

       AuthType
              The  authentication method for communications between SLURM components.  Acceptable
              values at present include "auth/none", "auth/authd", and "auth/munge".  The default
              value  is "auth/munge".  "auth/none" includes the UID in each communication, but it
              is not verified.  This may be fine for testing purposes, but do not use "auth/none"
              if  you  desire any security.  "auth/authd" indicates that Brett Chun's authd is to
              be used (see "http://www.theether.org/authd/" for more information. Note that authd
              is  no  longer actively supported).  "auth/munge" indicates that LLNL's MUNGE is to
              be used (this is  the  best  supported  authentication  mechanism  for  SLURM,  see
              "http://munge.googlecode.com/"  for  more  information).   All  SLURM  daemons  and
              commands must be terminated prior to changing  the  value  of  AuthType  and  later
              restarted (SLURM jobs can be preserved).

       BackupAddr
              The   name   that   BackupController  should  be  referred  to  in  establishing  a
              communications path. This name will be used as an argument to  the  gethostbyname()
              function  for identification. For example, "elx0000" might be used to designate the
              Ethernet address for node "lx0000".  By default the BackupAddr will be identical in
              value to BackupController.

       BackupController
              The  name  of  the  machine where SLURM control functions are to be executed in the
              event that ControlMachine fails. This node may also be used as a compute server  if
              so  desired.  It  will  come  into service as a controller only upon the failure of
              ControlMachine and will revert to a "standby" mode when the ControlMachine  becomes
              available  once  again.   This  should be a node name without the full domain name.
              I.e., the hostname returned by the gethostname() function  cut  at  the  first  dot
              (e.g.  use  "tux001"  rather  than  "tux001.my.com").   While  not essential, it is
              recommended that you specify a backup controller.  See  the RELOCATING  CONTROLLERS
              section if you change this.

       BatchStartTimeout
              The  maximum  time  (in seconds) that a batch job is permitted for launching before
              being considered missing and releasing the allocation.  The  default  value  is  10
              (seconds).  Larger  values  may be required if more time is required to execute the
              Prolog, load user environment variables (for Moab spawned jobs), or if  the  slurmd
              daemon gets paged from memory.

       CacheGroups
              If  set  to  1, the slurmd daemon will cache /etc/groups entries.  This can improve
              performance for highly parallel jobs if NIS servers are used and unable to  respond
              very quickly.  The default value is 0 to disable caching group data.

       CheckpointType
              The  system-initiated  checkpoint  method  to be used for user jobs.  The slurmctld
              daemon must be restarted for a change in CheckpointType to take effect.   Supported
              values presently include:

              checkpoint/aix    for IBM AIX systems only

              checkpoint/blcr   Berkeley Lab Checkpoint Restart (BLCR).  NOTE: If a file is found
                                at sbin/scch (relative to the SLURM  installation  location),  it
                                will be executed upon completion of the checkpoint. This can be a
                                script used for managing the  checkpoint  files.   NOTE:  SLURM's
                                BLCR logic only supports batch jobs.

              checkpoint/none   no checkpoint support (default)

              checkpoint/ompi   OpenMPI (version 1.3 or higher)

              checkpoint/poe    for use with IBM POE (Parallel Operating Environment) only

       ClusterName
              The  name  by which this SLURM managed cluster is known in the accounting database.
              This is needed distinguish accounting records when multiple clusters report to  the
              same  database. Because of limitations in some databases, any upper case letters in
              the name will be silently mapped to lower case. In order to avoid confusion, it  is
              recommended that the name be lower case.

       CompleteWait
              The  time,  in  seconds,  given  for a job to remain in COMPLETING state before any
              additional jobs are scheduled.  If set to zero, pending jobs  will  be  started  as
              soon as possible.  Since a COMPLETING job's resources are released for use by other
              jobs as soon as the Epilog completes on each individual node, this  can  result  in
              very  fragmented  resource  allocations.  To provide jobs with the minimum response
              time, a value of zero is recommended (no waiting).  To  minimize  fragmentation  of
              resources,  a  value  equal  to  KillWait  plus  two is recommended.  In that case,
              setting KillWait to a  small  value  may  be  beneficial.   The  default  value  of
              CompleteWait is zero seconds.  The value may not exceed 65533.

       ControlAddr
              Name  that  ControlMachine  should  be referred to in establishing a communications
              path. This name will be used as an argument to  the  gethostbyname()  function  for
              identification.  For  example,  "elx0000"  might  be used to designate the Ethernet
              address for node "lx0000".  By default the ControlAddr will be identical  in  value
              to ControlMachine.

       ControlMachine
              The  short hostname of the machine where SLURM control functions are executed (i.e.
              the  name  returned  by  the  command  "hostname  -s",  use  "tux001"  rather  than
              "tux001.my.com").   This  value  must  be specified.  In order to support some high
              availability architectures, multiple hostnames may be listed with comma  separators
              and  one  ControlAddr  must  be specified. The high availability system must insure
              that the slurmctld daemon is running on only one of these hosts at a time.  See the
              RELOCATING CONTROLLERS section if you change this.

       CryptoType
              The  cryptographic  signature  tool  to  be  used  in  the  creation  of  job  step
              credentials.  The slurmctld daemon must be restarted for a change in CryptoType  to
              take   effect.    Acceptable   values   at   present   include  "crypto/munge"  and
              "crypto/openssl".  The default value is "crypto/munge".

       DebugFlags
              Defines specific subsystems which  should  provide  more  detailed  event  logging.
              Multiple  subsystems  can  be  specified  with  comma separators.  Valid subsystems
              available today (with more to come) include:

              Backfill         Backfill scheduler details

              BGBlockAlgo      BlueGene block selection details

              BGBlockAlgoDeep  BlueGene block selection, more details

              BGBlockPick      BlueGene block selection for jobs

              BGBlockWires     BlueGene block wiring (switch state details)

              CPU_Bind         CPU binding details for jobs and steps

              Energy           AcctGatherEnergy debug info

              ExtSensors       External Sensors debug info

              FrontEnd         Front end node details

              Gres             Generic resource details

              Gang             Gang scheduling details

              NO_CONF_HASH     Do not log when the slurm.conf files differs between SLURM daemons

              Priority         Job prioritization

              Reservation      Advanced reservations

              SelectType       Resource selection plugin

              Steps            Slurmctld resource allocation for job steps

              Switch           Switch plugin

              Triggers         Slurmctld triggers

              Wiki             Sched/wiki and wiki2 communications

              ThreadID         Prints the thread ID in the log file

       DefMemPerCPU
              Default real memory size available per allocated CPU in MegaBytes.  Used  to  avoid
              over-subscribing  memory  and causing paging.  DefMemPerCPU would generally be used
              if individual processors are allocated to jobs  (SelectType=select/cons_res).   The
              default   value  is  0  (unlimited).   Also  see  DefMemPerNode  and  MaxMemPerCPU.
              DefMemPerCPU and DefMemPerNode are mutually exclusive.  NOTE: Enforcement of memory
              limits  currently  requires  enabling  of accounting, which samples memory use on a
              periodic basis (data need not be stored, just collected).

       DefMemPerNode
              Default real memory size available per allocated node in MegaBytes.  Used to  avoid
              over-subscribing  memory and causing paging.  DefMemPerNode would generally be used
              if whole nodes are allocated to jobs (SelectType=select/linear) and  resources  are
              shared (Shared=yes or Shared=force).  The default value is 0 (unlimited).  Also see
              DefMemPerCPU  and  MaxMemPerNode.   DefMemPerCPU  and  DefMemPerNode  are  mutually
              exclusive.   NOTE:  Enforcement  of  memory  limits  currently requires enabling of
              accounting, which samples memory use on a periodic basis (data need not be  stored,
              just collected).

       DefaultStorageHost
              The  default  name of the machine hosting the accounting storage and job completion
              databases.   Only  used  for  database  type   storage   plugins   and   when   the
              AccountingStorageHost and JobCompHost have not been defined.

       DefaultStorageLoc
              The  fully  qualified  file  name  where  accounting  records and/or job completion
              records are written when the DefaultStorageType is "filetxt" or  the  name  of  the
              database where accounting records and/or job completion records are stored when the
              DefaultStorageType is a database.  Also see AccountingStorageLoc and JobCompLoc.

       DefaultStoragePass
              The password used to gain access to the database to store the  accounting  and  job
              completion  data.   Only used for database type storage plugins, ignored otherwise.
              Also see AccountingStoragePass and JobCompPass.

       DefaultStoragePort
              The listening port of the accounting storage and/or job completion database server.
              Only  used  for  database  type  storage  plugins,  ignored  otherwise.   Also  see
              AccountingStoragePort and JobCompPort.

       DefaultStorageType
              The accounting and job completion storage mechanism  type.   Acceptable  values  at
              present  include  "filetxt",  "mysql",  "none", "pgsql", and "slurmdbd".  The value
              "filetxt" indicates that records will be written to  a  file.   The  value  "mysql"
              indicates that accounting records will be written to a mysql database.  The default
              value is "none", which means that records are not maintained.   The  value  "pgsql"
              indicates  that  records  will  be  written  to  a  PostgreSQL database.  The value
              "slurmdbd" indicates that records will be written to the SLURM DBD, which maintains
              its   own   database.   See   "man   slurmdbd"  for  more  information.   Also  see
              AccountingStorageType and JobCompType.

       DefaultStorageUser
              The user account  for  accessing  the  accounting  storage  and/or  job  completion
              database.   Only  used  for database type storage plugins, ignored otherwise.  Also
              see AccountingStorageUser and JobCompUser.

       DisableRootJobs
              If set to "YES" then user root will  be  prevented  from  running  any  jobs.   The
              default   value  is  "NO",  meaning  user  root  will  be  able  to  execute  jobs.
              DisableRootJobs may also be set by partition.

       DynallocPort
              Socket port used for MapReduce dynamic allocation communications.  Used only by the
              slurmctld/dynalloc plugin.

       EnforcePartLimits
              If  set  to "YES" then jobs which exceed a partition's size and/or time limits will
              be rejected at submission time. If set to "NO" then the job will  be  accepted  and
              remain  queued  until the partition limits are altered.  The default value is "NO".
              NOTE: If set, then a job's QOS can not be used to exceed partition limits.

       Epilog Fully qualified pathname of a script to execute as user root on every node  when  a
              user's job completes (e.g. "/usr/local/slurm/epilog"). A glob pattern (See glob(7))
              may also be used to run more than one epilog script (e.g. "/etc/slurm/epilog.d/*").
              The  Epilog  script or scripts may be used to purge files, disable user login, etc.
              By default there is no epilog.  See Prolog and Epilog Scripts for more information.

       EpilogMsgTime
              The number of microseconds that the slurmctld daemon requires to process an  epilog
              completion message from the slurmd dameons. This parameter can be used to prevent a
              burst of epilog completion messages from being sent at the same time  which  should
              help  prevent  lost  messages  and  improve throughput for large jobs.  The default
              value is 2000  microseconds.   For  a  1000  node  job,  this  spreads  the  epilog
              completion messages out over two seconds.

       EpilogSlurmctld
              Fully qualified pathname of a program for the slurmctld to execute upon termination
              of a job  allocation  (e.g.   "/usr/local/slurm/epilog_controller").   The  program
              executes as SlurmUser, which gives it permission to drain nodes and requeue the job
              if a failure occurs or cancel the job if appropriate.   Exactly  what  the  program
              does  and  how  it  accomplishes this is completely at the discretion of the system
              administrator.  Information about the job being initiated,  it's  allocated  nodes,
              etc.  are passed to the program using environment variables.  See Prolog and Epilog
              Scripts for more information.

       ExtSensorsFreq
              The external sensors plugin sampling interval.  If ExtSensorsType=ext_sensors/none,
              this  parameter is ignored.  For all other values of ExtSensorsType, this parameter
              is the number of seconds between external sensors samples for  hardware  components
              (nodes,  switches,  etc.)  The  default value is zero. This value disables external
              sensors sampling. Note: This  parameter  does  not  affect  external  sensors  data
              collection for jobs/steps.

       ExtSensorsType
              Identifies  the  plugin to be used for external sensors data collection.  Slurmctld
              calls this plugin to collect external sensors  data  for  jobs/steps  and  hardware
              components.  In  case of node sharing between jobs the reported values per job/step
              (through sstat or sacct) may not be accurate.  See also "man ext_sensors.conf".

              Configurable values at present are:

              ext_sensors/none    No external sensors data is collected.

              ext_sensors/rrd     External sensors data is collected from the RRD database.

       FastSchedule
              Controls how a node's configuration specifications in slurm.conf are used.  If  the
              number  of  node  configuration  entries in the configuration file is significantly
              lower than the number of nodes, setting FastSchedule to 1 will permit  much  faster
              scheduling decisions to be made.  (The scheduler can just check the values in a few
              configuration records instead of possibly thousands of node records.)  Note that on
              systems  with  hyper-threading,  the  processor  count reported by the node will be
              twice the actual processor count.  Consider which value you want  to  be  used  for
              scheduling purposes.

              1 (default)
                   Consider the configuration of each node to be that specified in the slurm.conf
                   configuration file and any node with less than the configured  resources  will
                   be set DOWN.

              0    Base  scheduling  decisions  upon  the actual configuration of each individual
                   node except that the node's processor  count  in  SLURM's  configuration  must
                   match   the  actual  hardware  configuration  if  SchedulerType=sched/gang  or
                   SelectType=select/cons_res are configured  (both  of  those  plugins  maintain
                   resource  allocation information using bitmaps for the cores in the system and
                   must remain static, while the node's memory and disk space can be  established
                   later).

              2    Consider the configuration of each node to be that specified in the slurm.conf
                   configuration file and any node with less than the configured  resources  will
                   not be set DOWN.  This can be useful for testing purposes.

       FirstJobId
              The job id to be used for the first submitted to SLURM without a specific requested
              value. Job id values generated will incremented by 1 for each subsequent job.  This
              may  be used to provide a meta-scheduler with a job id space which is disjoint from
              the interactive jobs.  The default value is 1.  Also see MaxJobId

       GetEnvTimeout
              Used for Moab scheduled jobs only. Controls how long job should wait in seconds for
              loading  the  user's  environment  before  attempting to load it from a cache file.
              Applies when the srun or sbatch --get-user-env option is used. If  set  to  0  then
              always  load  the  user's  environment from the cache file.  The default value is 2
              seconds.

       GresTypes
              A comma delimited list of generic resources to be managed.  These generic resources
              may  have  an  associated plugin available to provide additional functionality.  No
              generic resources are managed by default.   Insure  this  parameter  is  consistent
              across all nodes in the cluster for proper operation.  The slurmctld daemon must be
              restarted for changes to this parameter to become effective.

       GroupUpdateForce
              If set to a non-zero value, then information  about  which  users  are  members  of
              groups  allowed  to  use  a partition will be updated periodically, even when there
              have been no changes to the /etc/group file.  Otherwise  group  member  information
              will  be updated periodically only after the /etc/group file is updated The default
              value is 0.  Also see the GroupUpdateTime parameter.

       GroupUpdateTime
              Controls how frequently information about which users are members of groups allowed
              to  use  a partition will be updated.  The time interval is given in seconds with a
              default value of 600 seconds and a maximum value of 4095 seconds.  A value of  zero
              will  prevent  periodic  updating  of  group  membership information.  Also see the
              GroupUpdateForce parameter.

       HealthCheckInterval
              The interval in seconds between  executions  of  HealthCheckProgram.   The  default
              value is zero, which disables execution.

       HealthCheckNodeState
              Identify  what  node  states should execute the HealthCheckProgram.  Multiple state
              values may be specified with a comma  separator.   The  default  value  is  ANY  to
              execute on nodes in any state.

              ALLOC       Run on nodes in the ALLOC state (all CPUs allocated).

              ANY         Run on nodes in any state.

              IDLE        Run on nodes in the IDLE state.

              MIXED       Run  on  nodes  in  the  MIXED  state  (some  CPUs  idle and other CPUs
                          allocated).

       HealthCheckProgram
              Fully qualified pathname of a script to execute as user root  periodically  on  all
              compute nodes that are not in the NOT_RESPONDING state. This program may be used to
              verify the node is fully operational and DRAIN the node or send email if a  problem
              is  detected.   Any  action to be taken must be explicitly performed by the program
              (e.g.      execute      "scontrol       update       NodeName=foo       State=drain
              Reason=tmp_file_system_full"   to   drain  a  node).   The  execution  interval  is
              controlled   using   the   HealthCheckInterval   parameter.     Note    that    the
              HealthCheckProgram  will  be executed at the same time on all nodes to minimize its
              impact upon parallel programs.  This program is will  be  killed  if  it  does  not
              terminate normally within 60 seconds.  By default, no program will be executed.

       InactiveLimit
              The interval, in seconds, after which a non-responsive job allocation command (e.g.
              srun or salloc) will result in the job being terminated. If the node on  which  the
              command is executed fails or the command abnormally terminates, this will terminate
              its job allocation.  This option has no effect upon batch  jobs.   When  setting  a
              value,  take into consideration that a debugger using srun to launch an application
              may leave the srun command in a stopped state for extended periods of  time.   This
              limit  is  ignored  for  jobs running in partitions with the RootOnly flag set (the
              scheduler running as root will be responsible for the job).  The default  value  is
              unlimited (zero) and may not exceed 65533 seconds.

       JobAcctGatherType
              The   job   accounting  mechanism  type.   Acceptable  values  at  present  include
              "jobacct_gather/aix" (for AIX operating system), "jobacct_gather/linux" (for  Linux
              operating system), "jobacct_gather/cgroup" (experimental) and "jobacct_gather/none"
              (no accounting  data  collected).   The  default  value  is  "jobacct_gather/none".
              "jobacct_gather/cgroup"  is  an  experimental plugin for the Linux operating system
              that uses cgroups  to  collect  accounting  statistics.  The  plugin  collects  the
              following  statistics:  From  the  cgroup  memory  subsystem: memory.usage_in_bytes
              (reported as 'pages') and rss from memory.stat (reported as 'rss'). From the cgroup
              cpuacct  subsystem:  user  cpu  time  and  system cpu time. No value is provided by
              cgroups for virtual memory size  ('vsize').   In  order  to  use  the  sstat  tool,
              "jobacct_gather/aix",  "jobacct_gather/linux",  or  "jobacct_gather/cgroup" must be
              configured.
              NOTE: Changing this configuration parameter changes the contents  of  the  messages
              between Slurm daemons. Any previously running job steps are managed by a slurmstepd
              daemon that will persist through the lifetime of that job step and not change  it's
              communication  prototol. Only change this configuration parameter when there are no
              running job steps.

       JobAcctGatherFrequency
              The job accounting and profiling  sampling  intervals.   The  supported  format  is
              follows:

              JobAcctGatherFrequency=<datatype>=<interval>
                          where  <datatype>=<interval>  specifies  the task sampling interval for
                          the jobacct_gather plugin or a sampling interval for a  profiling  type
                          by    the   acct_gather_profile   plugin.   Multiple,   comma-separated
                          <datatype>=<interval> intervals may be specified.  Supported  datatypes
                          are as follows:

                          task=<interval>
                                 where  <interval>  is  the task sampling interval in seconds for
                                 the  jobacct_gather  plugins  and  for  task  profiling  by  the
                                 acct_gather_profile plugin.

                          energy=<interval>
                                 where  <interval> is the sampling interval in seconds for energy
                                 profiling using the acct_gather_energy plugin

                          network=<interval>
                                 where  <interval>  is  the  sampling  interval  in  seconds  for
                                 infiniband profiling using the acct_gather_infiniband plugin.

                          filesystem=<interval>
                                 where  <interval>  is  the  sampling  interval  in  seconds  for
                                 filesystem profiling using the acct_gather_filesystem plugin.

              The default value for task sampling interval
              is 30 seconds. The default value for all other intervals is 0.  An  interval  of  0
              disables  sampling  of  the  specified  type.   If the task sampling interval is 0,
              accounting information  is  collected  only  at  job  termination  (reducing  SLURM
              interference with the job).
              Smaller  (non-zero)  values have a greater impact upon job performance, but a value
              of 30 seconds is not likely to be noticeable  for  applications  having  less  than
              10,000 tasks.
              Users  can  independently  override  each  interval  on  a  per job basis using the
              --acctg-freq option when submitting the job.

       JobCheckpointDir
              Specifies the default directory for storing or reading job checkpoint  information.
              The  data stored here is only a few thousand bytes per job and includes information
              needed to resubmit the job request, not job's memory image. The directory  must  be
              readable  and  writable  by  SlurmUser,  but not writable by regular users. The job
              memory images may be in a  different  location  as  specified  by  --checkpoint-dir
              option at job submit time or scontrol's ImageDir option.

       JobCompHost
              The  name  of  the  machine  hosting  the  job  completion database.  Only used for
              database type storage plugins, ignored otherwise.  Also see DefaultStorageHost.

       JobCompLoc
              The fully qualified file name where job completion records  are  written  when  the
              JobCompType  is  "jobcomp/filetxt" or the database where job completion records are
              stored when the JobCompType is a database.  Also see DefaultStorageLoc.

       JobCompPass
              The password used to gain access to the database to store the job completion  data.
              Only  used  for  database  type  storage  plugins,  ignored  otherwise.   Also  see
              DefaultStoragePass.

       JobCompPort
              The listening port of the job completion database server.  Only used  for  database
              type storage plugins, ignored otherwise.  Also see DefaultStoragePort.

       JobCompType
              The  job  completion  logging mechanism type.  Acceptable values at present include
              "jobcomp/none",   "jobcomp/filetxt",    "jobcomp/mysql",    "jobcomp/pgsql",    and
              "jobcomp/script"".   The default value is "jobcomp/none", which means that upon job
              completion the record of  the  job  is  purged  from  the  system.   If  using  the
              accounting  infrastructure this plugin may not be of interest since the information
              here is redundant.  The value "jobcomp/filetxt" indicates that a record of the  job
              should  be written to a text file specified by the JobCompLoc parameter.  The value
              "jobcomp/mysql" indicates that a record of the job should be  written  to  a  mysql
              database   specified  by  the  JobCompLoc  parameter.   The  value  "jobcomp/pgsql"
              indicates that a record of the job should  be  written  to  a  PostgreSQL  database
              specified by the JobCompLoc parameter.  The value "jobcomp/script" indicates that a
              script specified by the JobCompLoc parameter is to  be  executed  with  environment
              variables indicating the job information.

       JobCompUser
              The user account for accessing the job completion database.  Only used for database
              type storage plugins, ignored otherwise.  Also see DefaultStorageUser.

       JobCredentialPrivateKey
              Fully qualified pathname of a file containing a private key used for authentication
              by SLURM daemons.  This parameter is ignored if CryptoType=crypto/munge.

       JobCredentialPublicCertificate
              Fully  qualified pathname of a file containing a public key used for authentication
              by SLURM daemons.  This parameter is ignored if CryptoType=crypto/munge.

       JobFileAppend
              This option controls what to do if a job's output or error file exist when the  job
              is  started.   If JobFileAppend is set to a value of 1, then append to the existing
              file.  By default, any existing file is truncated.

       JobRequeue
              This option controls what to do by default after a node failure.  If JobRequeue  is
              set to a value of 1, then any batch job running on the failed node will be requeued
              for execution on different nodes.  If JobRequeue is set to a value of 0,  then  any
              job  running on the failed node will be terminated.  Use the sbatch --no-requeue or
              --requeue option to change the default behavior for individual jobs.   The  default
              value is 1.

       JobSubmitPlugins
              A comma delimited list of job submission plugins to be used.  The specified plugins
              will be executed in the order listed.   These  are  intended  to  be  site-specific
              plugins  which  can  be  used  to set default job parameters and/or logging events.
              Sample plugins available in the  distribution  include  "all_partitions",  "cnode",
              "defaults",  "logging", "lua", and "partition".  For examples of use, see the SLURM
              code in "src/plugins/job_submit" and "contribs/lua/job_submit*.lua" then modify the
              code  to  satisfy  your  needs.  SLURM can be configured to use multiple job_submit
              plugins if desired, however the lua plugin will only execute one lua  script  named
              "job_submit.lua"   and   located   in   default  script  directory  (typically  the
              subdirectory "etc" of the installation directory).  No job submission  plugins  are
              used by default.

       KeepAliveTime
              Specifies  how  long  sockets  communications used between the srun command and its
              slurmstepd process are kept alive after disconnect.  Longer values can be  used  to
              improve  reliability  of  communications  in  the  event  of network failures.  The
              default value leaves the system default value.  The value may not exceed 65533.

       KillOnBadExit
              If set to 1, the job will be terminated immediately when one of  the  processes  is
              crashed or aborted. With the default value of 0, if one of the processes is crashed
              or aborted the other processes will continue to run. The  user  can  override  this
              configuration parameter by using srun's -K, --kill-on-bad-exit.

       KillWait
              The  interval,  in  seconds,  given  to  a  job's processes between the SIGTERM and
              SIGKILL signals upon reaching its time  limit.   If  the  job  fails  to  terminate
              gracefully  in the interval specified, it will be forcibly terminated.  The default
              value is 30 seconds.  The value may not exceed 65533.

       LaunchType
              Identifies the mechanism to be used to launch application tasks.  Acceptable values
              include  "launch/aprun"  for  use with Cray systems with ALPS, "launch/poe" for use
              with IBM Parallel Environment (PE), "launch/runjob" for  use  with  IBM  BlueGene/Q
              systems,   and  "launch/slurm"  for  all  other  systems.   The  default  value  is
              "launch/aprun" for Cray systems, "launch/poe" for systems with the IBM NRT  library
              installed,  "launch/runjob"  for IBM BlueGene/Q systems, and "launch/slurm" for all
              other systems.

       Licenses
              Specification of licenses (or  other  resources  available  on  all  nodes  of  the
              cluster)  which can be allocated to jobs.  License names can optionally be followed
              by a colon and count with a default count of one.  Multiple license names should be
              comma  separated  (e.g.  "Licenses=foo:4,bar").  Note that SLURM prevents jobs from
              being scheduled if their required license specification is  not  available.   SLURM
              does not prevent jobs from using licenses that are not explicitly listed in the job
              submission specification.

       MailProg
              Fully qualified pathname to the program used to send email per user  request.   The
              default value is "/usr/bin/mail".

       MaxArraySize
              The  maximum  job  array  size.  The maximum job array task index value will be one
              less than MaxArraySize to allow for an index value of zero.  Configure MaxArraySize
              to  0  in order to disable job array use.  The value may not exceed 65533.  Default
              value is 1001.

       MaxJobCount
              The maximum number of jobs SLURM can have in its active database at one  time.  Set
              the  values  of  MaxJobCount  and MinJobAge to insure the slurmctld daemon does not
              exhaust its memory or other resources. Once this  limit  is  reached,  requests  to
              submit additional jobs will fail. The default value is 10000 jobs.  Performance can
              suffer with more than a couple hundred thousand jobs.   Setting  per  MaxSubmitJobs
              per  user  is  generally  valuable to prevent a single user from filling the system
              with jobs.  This is accomplished using Slurm's database and configuring enforcement
              of  resource limits.  This value may not be reset via "scontrol reconfig".  It only
              takes effect upon restart of the slurmctld daemon.

       MaxJobId
              The maximum job id to be used for  jobs  submitted  to  SLURM  without  a  specific
              requested  value. Job id values generated will incremented by 1 for each subsequent
              job. This may be used to provide a meta-scheduler with a  job  id  space  which  is
              disjoint from the interactive jobs.  Once MaxJobId is reached, the next job will be
              assigned FirstJobId.  The default  value  is  4294901760  (0xffff0000).   Also  see
              FirstJobId.

       MaxMemPerCPU
              Maximum  real  memory size available per allocated CPU in MegaBytes.  Used to avoid
              over-subscribing memory and causing paging.  MaxMemPerCPU would generally  be  used
              if  individual  processors are allocated to jobs (SelectType=select/cons_res).  The
              default  value  is  0  (unlimited).   Also  see  DefMemPerCPU  and   MaxMemPerNode.
              MaxMemPerCPU and MaxMemPerNode are mutually exclusive.  NOTE: Enforcement of memory
              limits currently requires enabling of accounting, which samples  memory  use  on  a
              periodic basis (data need not be stored, just collected).

       MaxMemPerNode
              Maximum  real memory size available per allocated node in MegaBytes.  Used to avoid
              over-subscribing memory and causing paging.  MaxMemPerNode would generally be  used
              if  whole  nodes are allocated to jobs (SelectType=select/linear) and resources are
              shared (Shared=yes or Shared=force).  The default value is 0 (unlimited).  Also see
              DefMemPerNode  and  MaxMemPerCPU.   MaxMemPerCPU  and  MaxMemPerNode  are  mutually
              exclusive.  NOTE: Enforcement of  memory  limits  currently  requires  enabling  of
              accounting,  which samples memory use on a periodic basis (data need not be stored,
              just collected).

       MaxStepCount
              The maximum number of steps that any job can initiate. This parameter  is  intended
              to limit the effect of bad batch scripts.  The default value is 40000 steps.

       MaxTasksPerNode
              Maximum  number of tasks SLURM will allow a job step to spawn on a single node. The
              default MaxTasksPerNode is 128.  May not exceed 65533.

       MessageTimeout
              Time permitted for a round-trip communication to complete in seconds. Default value
              is  10 seconds. For systems with shared nodes, the slurmd daemon could be paged out
              and necessitate higher values.

       MinJobAge
              The minimum age of a completed job before its record is purged from SLURM's  active
              database. Set the values of MaxJobCount and
                to  insure  the  slurmctld daemon does not exhaust its memory or other resources.
              The default value is 300 seconds.  A value of zero prevents any job record purging.
              In order to eliminate some possible race conditions, the minimum non-zero value for
              MinJobAge recommended is 2.  May not exceed 65533.

       MpiDefault
              Identifies  the  default  type  of  MPI  to  be  used.   Srun  may  override   this
              configuration  parameter  in  any case.  Currently supported versions include: lam,
              mpich1_p4, mpich1_shmem, mpichgm, mpichmx, mvapich, none (default, which works  for
              many  other  versions of MPI) and openmpi.  pmi2, More information about MPI use is
              available here <http://slurm.schedmd.com/mpi_guide.html>.

       MpiParams
              MPI parameters.  Used to identify ports used by OpenMPI only and the  input  format
              is "ports=12000-12999" to identify a range of communication ports to be used.

       OverTimeLimit
              Number  of  minutes by which a job can exceed its time limit before being canceled.
              The configured job time limit is treated as a soft limit.  Adding OverTimeLimit  to
              the  soft limit provides a hard limit, at which point the job is canceled.  This is
              particularly useful for backfill scheduling, which bases upon each job's soft  time
              limit.   The  default value is zero.  May not exceed exceed 65533 minutes.  A value
              of "UNLIMITED" is also supported.

       PluginDir
              Identifies  the  places  in  which  to  look  for  SLURM  plugins.    This   is   a
              colon-separated  list  of  directories,  like  the  PATH environment variable.  The
              default value is "/usr/local/lib/slurm".

       PlugStackConfig
              Location of the config file for SLURM stackable  plugins  that  use  the  Stackable
              Plugin  Architecture  for Node job (K)control (SPANK).  This provides support for a
              highly configurable set of plugins to be called before and/or  after  execution  of
              each   task   spawned   as  part  of  a  user's  job  step.   Default  location  is
              "plugstack.conf"  in  the  same  directory  as  the  system  slurm.conf.  For  more
              information on SPANK plugins, see the spank(8) manual.

       PreemptMode
              Enables  gang  scheduling and/or controls the mechanism used to preempt jobs.  When
              the PreemptType parameter is set to enable preemption, the PreemptMode selects  the
              default  mechanism  used  to  preempt  the  lower  priority  jobs  for the cluster.
              PreemptMode may be specified on a per partition basis to  over  ride  this  default
              value  if PreemptType=preempt/partition_prio, but a valid default PreemptMode value
              must be specified for the cluster as a whole when preemption is enabled.  The  GANG
              option  is  used  to  enable  gang  scheduling independent of whether preemption is
              enabled (the PreemptType setting).  The GANG option can be specified in addition to
              a  PreemptMode  setting  with  the two options comma separated.  The SUSPEND option
              requires that gang scheduling be enabled (i.e, "PreemptMode=SUSPEND,GANG").

              OFF         is the default value and disables job preemption and  gang  scheduling.
                          This  is  the  only  option compatible with SchedulerType=sched/wiki or
                          SchedulerType=sched/wiki2 (used by Maui and  Moab  respectively,  which
                          provide their own job preemption functionality).

              CANCEL      always cancel the job.

              CHECKPOINT  preempts jobs by checkpointing them (if possible) or canceling them.

              GANG        enables  gang  scheduling (time slicing) of jobs in the same partition.
                          NOTE: Gang scheduling is performed independently for each partition, so
                          configuring  partitions  with  overlapping nodes and gang scheduling is
                          generally not recommended.

              REQUEUE     preempts jobs by requeuing them (if possible) or canceling them.

              SUSPEND     preempts  jobs  by  suspending  them.   A  suspended  job  will  resume
                          execution  once  the  high  priority  job preempting it completes.  The
                          SUSPEND may only be used with  the  GANG  option  (the  gang  scheduler
                          module    performs    the    job    resume    operation)    and    with
                          PreemptType=preempt/partition_prio (the logic  to  suspend  and  resume
                          jobs current only has the data structures to support partitions).

       PreemptType
              This  specifies the plugin used to identify which jobs can be preempted in order to
              start a pending job.

              preempt/none
                     Job preemption is disabled.  This is the default.

              preempt/partition_prio
                     Job preemption is based upon partition priority.  Jobs  in  higher  priority
                     partitions  (queues)  may preempt jobs from lower priority partitions.  This
                     is not compatible with PreemptMode=OFF.

              preempt/qos
                     Job  preemption  rules  are  specified   by   Quality   Of   Service   (QOS)
                     specifications  in  the  SLURM  database a database.  This is not compatible
                     with PreemptMode=OFF or PreemptMode=SUSPEND (i.e.  preempted  jobs  must  be
                     removed from the resources).

       PriorityDecayHalfLife
              This controls how long prior resource use is considered in determining how over- or
              under-serviced an association is (user, bank account and  cluster)  in  determining
              job  priority.   If set to 0 no decay will be applied.  This is helpful if you want
              to enforce hard time limits per association.  If set to 0  PriorityUsageResetPeriod
              must      be      set     to     some     interval.      Applicable     only     if
              PriorityType=priority/multifactor.  The unit is a time string (i.e. min, hr:min:00,
              days-hr:min:00, or days-hr).  The default value is 7-0 (7 days).

       PriorityCalcPeriod
              The  period  of time in minutes in which the half-life decay will be re-calculated.
              Applicable only if  PriorityType=priority/multifactor.   The  default  value  is  5
              (minutes).

       PriorityFavorSmall
              Specifies  that  small  jobs  should  be  given  preferential  scheduling priority.
              Applicable only if PriorityType=priority/multifactor.  Supported values  are  "YES"
              and "NO".  The default value is "NO".

       PriorityFlags
              Flags      to      modify      priority     behavior     Applicable     only     if
              PriorityType=priority/multifactor.  The keywords below  have  no  associated  value
              (e.g. "PriorityFlags=ACCRUE_ALWAYS,SMALL_RELATIVE_TO_TIME").

              ACCRUE_ALWAYS    If  set,  priority  age  factor  will  be  increased  despite  job
                               dependencies or holds.

              SMALL_RELATIVE_TO_TIME
                               If set, the job's size component will be based upon  not  the  job
                               size alone, but the job's size divided by it's time limit.

              TICKET_BASED     If set, priority will be calculated based on the ticket system.

       PriorityMaxAge
              Specifies  the  job  age  which  will  be given the maximum age factor in computing
              priority. For example, a value of 30 minutes would  result  in  all  jobs  over  30
              minutes   old   would   get  the  same  age-based  priority.   Applicable  only  if
              PriorityType=priority/multifactor.  The unit is a time string (i.e. min, hr:min:00,
              days-hr:min:00, or days-hr).  The default value is 7-0 (7 days).

       PriorityUsageResetPeriod
              At this interval the usage of associations will be reset to 0.  This is used if you
              want   to   enforce   hard   limits   of   time   usage   per   association.     If
              PriorityDecayHalfLife  is set to be 0 no decay will happen and this is the only way
              to reset the usage accumulated by running jobs.  By default this is turned off  and
              it  is advised to use the PriorityDecayHalfLife option to avoid not having anything
              running on your cluster, but if your schema is set up to only allow certain amounts
              of   time  on  your  system  this  is  the  way  to  do  it.   Applicable  only  if
              PriorityType=priority/multifactor.

              NONE        Never clear historic usage. The default value.

              NOW         Clear the historic usage now.  Executed at startup and  reconfiguration
                          time.

              DAILY       Cleared every day at midnight.

              WEEKLY      Cleared every week on Sunday at time 00:00.

              MONTHLY     Cleared on the first day of each month at time 00:00.

              QUARTERLY   Cleared on the first day of each quarter at time 00:00.

              YEARLY      Cleared on the first day of each year at time 00:00.

       PriorityType
              This  specifies  the plugin to be used in establishing a job's scheduling priority.
              Supported values are "priority/basic" (jobs are prioritized by  order  of  arrival,
              also  suitable  for  sched/wiki  and sched/wiki2), "priority/multifactor" (jobs are
              prioritized based upon  size,  age,  fair-share  of  allocation,  etc).   Also  see
              PriorityFlags for configuration options.  The default value is "priority/basic".

       PriorityWeightAge
              An  integer  value  that  sets  the  degree  to which the queue wait time component
              contributes     to     the     job's     priority.      Applicable     only      if
              PriorityType=priority/multifactor.  The default value is 0.

       PriorityWeightFairshare
              An integer value that sets the degree to which the fair-share component contributes
              to the job's priority.  Applicable only if PriorityType=priority/multifactor.   The
              default value is 0.

       PriorityWeightJobSize
              An  integer  value that sets the degree to which the job size component contributes
              to the job's priority.  Applicable only if PriorityType=priority/multifactor.   The
              default value is 0.

       PriorityWeightPartition
              An  integer  value  that  sets  the  degree  to  which the node partition component
              contributes     to     the     job's     priority.      Applicable     only      if
              PriorityType=priority/multifactor.  The default value is 0.

       PriorityWeightQOS
              An  integer  value  that  sets the degree to which the Quality Of Service component
              contributes     to     the     job's     priority.      Applicable     only      if
              PriorityType=priority/multifactor.  The default value is 0.

       PrivateData
              This  controls  what type of information is hidden from regular users.  By default,
              all information is visible to all users.  User SlurmUser and root can  always  view
              all  information.   Multiple  values  may  be  specified  with  a  comma separator.
              Acceptable values include:

              accounts
                     (NON-SLURMDBD ACCOUNTING ONLY)  Prevents  users  from  viewing  any  account
                     definitions unless they are coordinators of them.

              jobs   Prevents  users  from  viewing  jobs  or job steps belonging to other users.
                     (NON-SLURMDBD ACCOUNTING ONLY)  Prevents  users  from  viewing  job  records
                     belonging  to  other  users  unless they are coordinators of the association
                     running the job when using sacct.

              nodes  Prevents users from viewing node state information.

              partitions
                     Prevents users from viewing partition state information.

              reservations
                     Prevents regular users from viewing reservations.

              usage  Prevents users from viewing usage of any other user, this applies to sshare.
                     (NON-SLURMDBD  ACCOUNTING  ONLY)  Prevents  users  from viewing usage of any
                     other user, this applies to sreport.

              users  (NON-SLURMDBD ACCOUNTING ONLY) Prevents users from  viewing  information  of
                     any  user  other  than  themselves, this also makes it so users can only see
                     associations they deal with.  Coordinators can see associations of all users
                     they are coordinator of, but can only see themselves when listing users.

       ProctrackType
              Identifies the plugin to be used for process tracking.  The slurmd daemon uses this
              mechanism to identify all processes which are children of processes it spawns for a
              user  job.   The  slurmd  daemon must be restarted for a change in ProctrackType to
              take effect.  NOTE: "proctrack/linuxproc" and "proctrack/pgid" can fail to identify
              all  processes associated with a job since processes can become a child of the init
              process (when the parent process terminates) or change  their  process  group.   To
              reliably  track  all  processes,  one  of  the  other  mechanisms  utilizing kernel
              modifications is preferable.  NOTE: "proctrack/linuxproc" is  not  compatible  with
              "switch/elan."  Acceptable values at present include:

              proctrack/aix       which  uses  an AIX kernel extension and is the default for AIX
                                  systems

              proctrack/cgroup    which uses linux cgroups  to  constrain  and  track  processes.
                                  NOTE:  see  "man  cgroup.conf"  for configuration details NOTE:
                                  This plugin writes to disk often and  can  impact  performance.
                                  If  you  are  running  lots  of short running jobs (less than a
                                  couple  of  seconds)  this  plugin   slows   down   performance
                                  dramatically.    It  should  probably  be  avoided  in  an  HTC
                                  environment.

              proctrack/linuxproc which uses linux process tree using parent process IDs

              proctrack/lua       which uses a site-specific LUA script to track processes

              proctrack/sgi_job   which uses SGI's Process Aggregates (PAGG) kernel  module,  see
                                  http://oss.sgi.com/projects/pagg/ for more information

              proctrack/pgid      which  uses  process group IDs and is the default for all other
                                  systems

       Prolog Fully qualified pathname of a program for the slurmd  to  execute  whenever  it  is
              asked    to    run    a    job    step    from   a   new   job   allocation   (e.g.
              "/usr/local/slurm/prolog").  A glob pattern (See  glob(7))  may  also  be  used  to
              specify  more  than  one program to run (e.g.  "/etc/slurm/prolog.d/*"). The slurmd
              executes the prolog before starting the first  job  step.   The  prolog  script  or
              scripts may be used to purge files, enable user login, etc.  By default there is no
              prolog. Any configured script is expected to complete execution  quickly  (in  less
              time  than  MessageTimeout).   If  the prolog fails (returns a non-zero exit code),
              this will result in the node being set to a DOWN state  and  the  job  requeued  to
              executed on another node.  See Prolog and Epilog Scripts for more information.

       PrologSlurmctld
              Fully  qualified  pathname  of a program for the slurmctld daemon to execute before
              granting a new job allocation  (e.g.   "/usr/local/slurm/prolog_controller").   The
              program executes as SlurmUser on the same node where the slurmctld daemon executes,
              giving it permission to drain nodes and requeue the job  if  a  failure  occurs  or
              cancel  the job if appropriate.  The program can be used to reboot nodes or perform
              other work to prepare resources for use.  Exactly what the program does and how  it
              accomplishes  this  is  completely  at  the discretion of the system administrator.
              Information about the job being initiated, it's allocated nodes, etc. are passed to
              the  program using environment variables.  While this program is running, the nodes
              associated with the job will be have  a  POWER_UP/CONFIGURING  flag  set  in  their
              state,  which  can  be readily viewed.  The slurmctld daemon will wait indefinitely
              for this program to complete.  Once the program completes  with  an  exit  code  of
              zero,  the  nodes will be considered ready for use and the program will be started.
              If some node can not be made available for use, the program should drain  the  node
              (typically  using the scontrol command) and terminate with a non-zero exit code.  A
              non-zero exit code will result in  the  job  being  requeued  (where  possible)  or
              killed.  Note  that only batch jobs can be requeued.  See Prolog and Epilog Scripts
              for more information.

       PropagatePrioProcess
              Controls the scheduling priority (nice value) of user spawned tasks.

              0    The tasks will inherit the scheduling priority from the slurm daemon.  This is
                   the default value.

              1    The  tasks  will inherit the scheduling priority of the command used to submit
                   them (e.g. srun or sbatch).  Unless the job is submitted  by  user  root,  the
                   tasks will have a scheduling priority no higher than the slurm daemon spawning
                   them.

              2    The tasks will inherit the scheduling priority of the command used  to  submit
                   them  (e.g.  srun  or  sbatch) with the restriction that their nice value will
                   always be one higher  than  the  slurm  daemon  (i.e.   the  tasks  scheduling
                   priority will be lower than the slurm daemon).

       PropagateResourceLimits
              A list of comma separated resource limit names.  The slurmd daemon uses these names
              to obtain the associated (soft) limit values from the users process environment  on
              the  submit  node.   These  limits are then propagated and applied to the jobs that
              will run on the compute nodes.  This parameter can be  useful  when  system  limits
              vary  among  nodes.   Any  resource  limits  that do not appear in the list are not
              propagated.  However, the user can  override  this  by  specifying  which  resource
              limits to propagate with the srun commands "--propagate" option.  If neither of the
              'propagate resource limit' parameters are specified, then the default action is  to
              propagate  all  limits.  Only one of the parameters, either PropagateResourceLimits
              or PropagateResourceLimitsExcept, may be specified.  The following limit names  are
              supported by SLURM (although some options may not be supported on some systems):

              ALL       All limits listed below

              NONE      No limits listed below

              AS        The maximum address space for a process

              CORE      The maximum size of core file

              CPU       The maximum amount of CPU time

              DATA      The maximum size of a process's data segment

              FSIZE     The  maximum  size  of files created. Note that if the user sets FSIZE to
                        less than the current size of the slurmd.log, job launches will fail with
                        a 'File size limit exceeded' error.

              MEMLOCK   The maximum size that may be locked into memory

              NOFILE    The maximum number of open files

              NPROC     The maximum number of processes available

              RSS       The maximum resident set size

              STACK     The maximum stack size

       PropagateResourceLimitsExcept
              A  list  of  comma separated resource limit names.  By default, all resource limits
              will be propagated, (as described by the PropagateResourceLimits parameter), except
              for  the  limits appearing in this list.   The user can override this by specifying
              which resource limits to propagate with the  srun  commands  "--propagate"  option.
              See PropagateResourceLimits above for a list of valid limit names.

       RebootProgram
              Program to be executed on each compute node to reboot it. Invoked on each node once
              it becomes idle after  the  command  "scontrol  reboot_nodes"  is  executed  by  an
              authorized user. After being rebooting, the node is returned to normal use.

       ReconfigFlags
              Flags  to  control  various  actions  that may be taken when an "scontrol reconfig"
              command is issued. Currently the only option defined is:

              KeepPartInfo     If set, an "scontrol reconfig" command will maintain the in-memory
                               value of partition "state" and other parameters that may have been
                               dynamically updated by "scontrol update".   Partition  information
                               in  the  slurm.conf file will be merged with in-memory data.  This
                               flag supersedes the KeepPartState flag.

              KeepPartState    If set, an "scontrol reconfig"  command  will  preserve  only  the
                               current  "state"  value of in-memory partitions and will reset all
                               other parameters of the partitions that may have been  dynamically
                               updated  by  "scontrol  update"  to the values from the slurm.conf
                               file.  Partition information in the slurm.conf file will be merged
                               with in-memory data.
              The  default  for  the  above  flags  is  not set, and the "scontrol reconfig" will
              rebuild the partition information using only  the  definitions  in  the  slurm.conf
              file.

       ResumeProgram
              SLURM  supports  a  mechanism to reduce power consumption on nodes that remain idle
              for an extended period of time.  This is typically accomplished by reducing voltage
              and frequency or powering the node down.  ResumeProgram is the program that will be
              executed when a node in power save mode is assigned work to perform.   For  reasons
              of  reliability,  ResumeProgram  may  execute  more  than  once for a node when the
              slurmctld daemon crashes and is restarted.  If ResumeProgram is unable to restore a
              node  to  service,  it should requeue any node associated with the node and set the
              node state to DRAIN.  The program executes  as  SlurmUser.   The  argument  to  the
              program  will  be  the  names of nodes to be removed from power savings mode (using
              SLURM's hostlist expression format).   By  default  no  program  is  run.   Related
              configuration  options include ResumeTimeout, ResumeRate, SuspendRate, SuspendTime,
              SuspendTimeout,  SuspendProgram,  SuspendExcNodes,   and   SuspendExcParts.    More
              information      is      available      at     the     SLURM     web     site     (
              http://slurm.schedmd.com/power_save.html ).

       ResumeRate
              The rate at which nodes in power save mode are  returned  to  normal  operation  by
              ResumeProgram.   The  value  is  number  of  nodes per minute and it can be used to
              prevent power surges if a large number of nodes in power  save  mode  are  assigned
              work  at  the  same  time (e.g. a large job starts).  A value of zero results in no
              limits being imposed.   The  default  value  is  300  nodes  per  minute.   Related
              configuration    options   include   ResumeTimeout,   ResumeProgram,   SuspendRate,
              SuspendTime, SuspendTimeout, SuspendProgram, SuspendExcNodes, and SuspendExcParts.

       ResumeTimeout
              Maximum time permitted (in second) between when a node is resume request is  issued
              and  when  the  node is actually available for use.  Nodes which fail to respond in
              this time frame may be marked DOWN and the jobs scheduled  on  the  node  requeued.
              The   default   value   is  60  seconds.   Related  configuration  options  include
              ResumeProgram,    ResumeRate,     SuspendRate,     SuspendTime,     SuspendTimeout,
              SuspendProgram, SuspendExcNodes and SuspendExcParts.  More information is available
              at the SLURM web site ( http://slurm.schedmd.com/power_save.html ).

       ResvEpilog
              Fully qualified pathname  of  a  program  for  the  slurmctld  to  execute  when  a
              reservation  ends.  The  program  can  be  used  to  cancel  jobs, modify partition
              configuration, etc.  The reservation named will be passed as  an  argument  to  the
              program.  By default there is no epilog.

       ResvOverRun
              Describes  how  long  a job already running in a reservation should be permitted to
              execute after the end time of the reservation has been reached.  The time period is
              specified  in  minutes  and the default value is 0 (kill the job immediately).  The
              value may not exceed 65533 minutes, although a value of "UNLIMITED" is supported to
              permit a job to run indefinitely after its reservation is terminated.

       ResvProlog
              Fully  qualified  pathname  of  a  program  for  the  slurmctld  to  execute when a
              reservation begins. The program can  be  used  to  cancel  jobs,  modify  partition
              configuration,  etc.   The  reservation  named will be passed as an argument to the
              program.  By default there is no prolog.

       ReturnToService
              Controls when a DOWN node will be returned to service.  The  default  value  is  0.
              Supported values include

              0   A  node  will  remain in the DOWN state until a system administrator explicitly
                  changes  its  state  (even  if  the  slurmd  daemon   registers   and   resumes
                  communications).

              1   A  DOWN  node  will  become  available  for  use upon registration with a valid
                  configuration only if it was set DOWN due to being non-responsive.  If the node
                  was  set DOWN for any other reason (low memory, prolog failure, epilog failure,
                  unexpected reboot, etc.), its state will not automatically be changed.

              2   A DOWN node will become available  for  use  upon  registration  with  a  valid
                  configuration.  The node could have been set DOWN for any reason.  (Disabled on
                  Cray systems.)

       SallocDefaultCommand
              Normally, salloc(1) will run the user's default shell when a command to execute  is
              not  specified  on  the salloc command line.  If SallocDefaultCommand is specified,
              salloc will instead run the configured command. The command is passed  to  '/bin/sh
              -c',  so  shell  metacharacters  are  allowed, and commands with multiple arguments
              should be quoted. For instance:

                  SallocDefaultCommand = "$SHELL"

              would run the shell in the user's $SHELL environment variable.  and

                  SallocDefaultCommand = "srun -n1 -N1 --mem-per-cpu=0 --pty --preserve-env --mpi=none $SHELL"

              would run spawn the user's default  shell  on  the  allocated  resources,  but  not
              consume  any of the CPU or memory resources, configure it as a pseudo-terminal, and
              preserve all of the job's environment variables (i.e. and not over-write them  with
              the job step's allocation information).

       SchedulerParameters
              The interpretation of this parameter varies by SchedulerType.  Multiple options may
              be comma separated.

              default_queue_depth=#
                     The default number of jobs to attempt scheduling (i.e. the queue depth) when
                     a running job completes or other routine actions occur.  The full queue will
                     be tested on a less frequent basis.  The default value is 100.  In the  case
                     of  large  clusters  (more  than 1000 nodes), configuring a relatively small
                     value may be desirable.  Specifying a large value (say 1000 or  higher)  can
                     be  expected  to  result in poor system responsiveness since this scheduling
                     logic will not release locks for other events to occur.  It would be  better
                     to  let  the  backfill  scheduler  process  a  larger  number  of  jobs (see
                     max_job_bf, bf_continue  and other options here for more information).

              defer  Setting this option will avoid attempting to schedule each job  individually
                     at job submit time, but defer it until a later time when scheduling multiple
                     jobs simultaneously  may  be  possible.   This  option  may  improve  system
                     responsiveness  when  large numbers of jobs (many hundreds) are submitted at
                     the same time, but it will delay the initiation  time  of  individual  jobs.
                     Also see default_queue_depth above.

              bf_continue
                     The  backfill scheduler periodically releases locks in order to permit other
                     operations to proceed rather than blocking all activity for what could be an
                     extended  period  of  time.   Setting  this  option  will cause the backfill
                     scheduler to continue processing pending jobs from  its  original  job  list
                     after releasing locks even if job or node state changes.  This can result in
                     lower priority jobs from being backfill scheduled instead of  newly  arrived
                     higher  priority jobs, but will permit more queued jobs to be considered for
                     backfill scheduling.

              bf_interval=#
                     The number of seconds between iterations.   Higher  values  result  in  less
                     overhead  and better responsiveness.  The default value is 30 seconds.  This
                     option applies only to SchedulerType=sched/backfill.

              bf_max_job_part=#
                     The maximum number of jobs per partition to attempt backfill scheduling for,
                     not  counting  jobs  which  cannot be started due to an association resource
                     limit. This can be especially helpful for  systems  with  large  numbers  of
                     partitions  and  jobs.   The default value is 0, which means no limit.  This
                     option applies only to SchedulerType=sched/backfill.

              bf_max_job_user=#
                     The maximum number of jobs per user to attempt backfill scheduling for,  not
                     counting  jobs which cannot be started due to an association resource limit.
                     One can set this limit to prevent users from  flooding  the  backfill  queue
                     with jobs that cannot start and that prevent jobs from other users to start.
                     This is similar to the MAXIJOB limit in Maui.  The default value is 0, which
                     means no limit.  This option applies only to SchedulerType=sched/backfill.

              bf_resolution=#
                     The  number  of seconds in the resolution of data maintained about when jobs
                     begin  and  end.   Higher  values  result  in  less  overhead   and   better
                     responsiveness.   The default value is 60 seconds.  This option applies only
                     to SchedulerType=sched/backfill.

              bf_window=#
                     The number of minutes into the future  to  look  when  considering  jobs  to
                     schedule.   Higher  values  result in more overhead and less responsiveness.
                     The default value is 1440 minutes (one day).  A value at least  as  long  as
                     the  highest  allowed  time  limit  is  generally  advisable  to prevent job
                     starvation.  In order limit the amount  of  data  managed  by  the  backfill
                     scheduler,  if  the  value  of  bf_window is increased, then it is generally
                     advisable to also increase bf_resolution.  if This option  applies  only  to
                     SchedulerType=sched/backfill.

              max_job_bf=#
                     The  maximum  number  of  jobs  to attempt backfill scheduling for (i.e. the
                     queue  depth).   Higher  values   result   in   more   overhead   and   less
                     responsiveness.   Until  an  attempt is made to backfill schedule a job, its
                     expected initiation time value will not be set.  The default  value  is  50.
                     This option applies only to SchedulerType=sched/backfill.

              max_depend_depth=#
                     Maximum  number  of jobs to test for a circular job dependency. Stop testing
                     after this number of job dependencies have been tested. The default value is
                     10 jobs.

              max_switch_wait=#
                     Maximum  number  of  seconds  that a job can delay execution waiting for the
                     specified desired switch count. The default value is 300 seconds.

       SchedulerPort
              The port number on which slurmctld should listen  for  connection  requests.   This
              value is only used by the Maui Scheduler (see SchedulerType).  The default value is
              7321.

       SchedulerRootFilter
              Identifies whether or not RootOnly partitions should be filtered from any  external
              scheduling  activities.  If set to 0, then RootOnly partitions are treated like any
              other partition. If set to 1, then RootOnly partitions are exempt from any external
              scheduling  activities. The default value is 1. Currently only used by the built-in
              backfill scheduling module "sched/backfill" (see SchedulerType).

       SchedulerTimeSlice
              Number  of  seconds  in  each  time  slice  when   gang   scheduling   is   enabled
              (PreemptMode=GANG).   The  value  must be between 5 seconds and 65533 seconds.  The
              default value is 30 seconds.

       SchedulerType
              Identifies the type of scheduler to be used.  Note the  slurmctld  daemon  must  be
              restarted  for  a  change  in  scheduler  type to become effective (reconfiguring a
              running daemon has no effect for this parameter).  The scontrol command can be used
              to manually change job priorities if desired.  Acceptable values include:

              sched/backfill
                     For  a  backfill  scheduling  module to augment the default FIFO scheduling.
                     Backfill scheduling will initiate lower-priority jobs if doing so  does  not
                     delay   the   expected   initiation   time   of  any  higher  priority  job.
                     Effectiveness of backfill scheduling is dependent upon users specifying  job
                     time  limits,  otherwise  all  jobs  will  have  the  same  time  limit  and
                     backfilling is impossible.  Note documentation for  the  SchedulerParameters
                     option above.  This is the default configuration.

              sched/builtin
                     This  is  the FIFO scheduler which initiates jobs in priority order.  If any
                     job in the partition can not be scheduled, no lower  priority  job  in  that
                     partition  will be scheduled.  An exception is made for jobs can not run due
                     to partition constraints (e.g. the time limit) or  down/drained  nodes.   In
                     that  case,  lower  priority jobs can be initiated and not impact the higher
                     priority job.

              sched/gang
                     Defunct option. See PreemptType and PreemptMode options.

              sched/hold
                     To hold all newly arriving jobs if a file "/etc/slurm.hold" exists otherwise
                     use the built-in FIFO scheduler

              sched/wiki
                     For the Wiki interface to the Maui Scheduler

              sched/wiki2
                     For the Wiki interface to the Moab Cluster Suite

       SelectType
              Identifies  the  type  of  resource  selection algorithm to be used.  Changing this
              value can only be done by restarting the slurmctld daemon and will  result  in  the
              loss  of  all job information (running and pending) since the job state save format
              used by each plugin is different.  Acceptable values include

              select/linear
                     for allocation of entire nodes assuming a one-dimensional array of nodes  in
                     which  sequentially ordered nodes are preferable.  This is the default value
                     for non-BlueGene systems.

              select/cons_res
                     The resources  within  a  node  are  individually  allocated  as  consumable
                     resources.   Note  that  whole  nodes  can be allocated to jobs for selected
                     partitions by using the Shared=Exclusive option.  See the  partition  Shared
                     parameter for more information.

              select/serial
                     for  allocating  resources  to  single  CPU jobs only.  Highly optimized for
                     maximum throughput.  NOTE: SPANK environment variables are NOT propagated to
                     the job's Epilog program.

              select/bluegene
                     for   a   three-dimensional   BlueGene   system.    The   default  value  is
                     "select/bluegene" for BlueGene systems.

              select/cray
                     for a Cray system.  The default value is "select/cray" for all Cray systems.

       SelectTypeParameters
              The permitted values of SelectTypeParameters depend upon the  configured  value  of
              SelectType.  SelectType=select/bluegene supports no SelectTypeParameters.  The only
              supported  option  for  SelectType=select/linear   are   CR_ONE_TASK_PER_CORE   and
              CR_Memory,  which  treats  memory as a consumable resource and prevents memory over
              subscription with job preemption or gang  scheduling.   The  following  values  are
              supported for SelectType=select/cons_res:

              CR_ALLOCATE_FULL_SOCKET
                     Jobs are allocated whole sockets rather than individual cores.  Must be used
                     with CR_Socket or CR_Socket_Memory option.

              CR_CPU CPUs are consumable resources.  Configure the number of CPUs on  each  node,
                     which  may  be  equal  to  the  count  of cores or hyper-threads on the node
                     depending upon the desired minimum resource allocation. The node's  Sockets,
                     CoresPerSocket  and ThreadsPerCore may also be configured if desired and may
                     result in job allocations which have improved locality.

              CR_CPU_Memory
                     CPUs and memory are consumable resources.  Configure the number of  CPUs  on
                     each  node, which may be equal to the count of cores or hyper-threads on the
                     node depending upon the desired  minimum  resource  allocation.  The  node's
                     Sockets, CoresPerSocket and ThreadsPerCore may also be configured if desired
                     and may result in job allocations which have improved locality.   Setting  a
                     value for DefMemPerCPU is strongly recommended.

              CR_Core
                     Cores are consumable resources.  On nodes with hyper-threads, each thread is
                     counted as a CPU to satisfy a job's resource requirement, but multiple  jobs
                     are  not allocated threads on the same core.  The count of CPUs allocated to
                     a job may be rounded up to account for every CPU on an allocated core.

              CR_Core_Memory
                     Cores and memory are consumable resources.   On  nodes  with  hyper-threads,
                     each thread is counted as a CPU to satisfy a job's resource requirement, but
                     multiple jobs are not allocated threads on the same core.  The count of CPUs
                     allocated  to  a  job  may  be  rounded  up  to  account for every CPU on an
                     allocated core.  Setting a value for DefMemPerCPU is strongly recommended.

              CR_ONE_TASK_PER_CORE
                     Allocate one task per core by default.  Without this option, by default  one
                     task will be allocated per thread on nodes with more than one ThreadsPerCore
                     configured.

              CR_CORE_DEFAULT_DIST_BLOCK
                     Allocate cores within a node using block distribution by default.  This is a
                     pseudo-best-fit  algorithm that minimizes the number of boards and minimizes
                     the number of sockets (within minimum boards) used for the allocation.  This
                     default  behavior  can  be overridden specifying a particular "-m" parameter
                     with srun/salloc/sbatch.  Without  this  option,  cores  will  be  allocated
                     cyclicly across the sockets.

              CR_Socket
                     Sockets  are  consumable resources.  On nodes with multiple cores, each core
                     or thread is counted as a CPU to satisfy a job's resource  requirement,  but
                     multiple  jobs are not allocated resources on the same socket.  The count of
                     CPUs allocated to a job may be rounded up to account for  every  CPU  on  an
                     allocated socket.

              CR_Socket_Memory
                     Memory  and sockets are consumable resources.  On nodes with multiple cores,
                     each core or thread is  counted  as  a  CPU  to  satisfy  a  job's  resource
                     requirement,  but  multiple  jobs  are  not  allocated resources on the same
                     socket.  The count of CPUs allocated to a job may be rounded up  to  account
                     for  every  CPU on an allocated socket.  Setting a value for DefMemPerCPU is
                     strongly recommended.

              CR_Memory
                     Memory  is  a  consumable  resource.   NOTE:  This  implies  Shared=YES   or
                     Shared=FORCE  for  all  partitions.   Setting  a  value  for DefMemPerCPU is
                     strongly recommended.

       SlurmUser
              The name of the user that the slurmctld daemon executes as.  For security purposes,
              a  user other than "root" is recommended.  This user must exist on all nodes of the
              cluster for authentication of communications between SLURM components.  The default
              value is "root".

       SlurmdUser
              The  name  of the user that the slurmd daemon executes as.  This user must exist on
              all nodes of  the  cluster  for  authentication  of  communications  between  SLURM
              components.  The default value is "root".

       SlurmctldDebug
              The level of detail to provide slurmctld daemon's logs.  The default value is info.
              If the slurmctld daemon is initiated with -v or --verbose options, that debug level
              will be preserve or restored upon reconfiguration.

              quiet     Log nothing

              fatal     Log only fatal errors

              error     Log only errors

              info      Log errors and general informational messages

              verbose   Log errors and verbose informational messages

              debug     Log errors and verbose informational messages and debugging messages

              debug2    Log errors and verbose informational messages and more debugging messages

              debug3    Log  errors  and  verbose  informational messages and even more debugging
                        messages

              debug4    Log errors and verbose informational messages  and  even  more  debugging
                        messages

              debug5    Log  errors  and  verbose  informational messages and even more debugging
                        messages

       SlurmctldLogFile
              Fully qualified pathname of a file into  which  the  slurmctld  daemon's  logs  are
              written.  The default value is none (performs logging via syslog).
              See the section LOGGING if a pathname is specified.

       SlurmctldPidFile
              Fully  qualified  pathname of a file into which the  slurmctld daemon may write its
              process id. This may be used for automated signal processing.  The default value is
              "/var/run/slurmctld.pid".

       SlurmctldPlugstack
              A  comma  delimited  list of SLURM controller plugins to be started when the daemon
              begins and terminated when it ends.  Only the plugin's init and fini functions  are
              called.

       SlurmctldPort
              The  port  number  that  the  SLURM controller, slurmctld, listens to for work. The
              default value is SLURMCTLD_PORT as established at system build  time.  If  none  is
              explicitly specified, it will be set to 6817.  SlurmctldPort may also be configured
              to support a range of port numbers in order to accept  larger  bursts  of  incoming
              messages    by    specifying    two    numbers    separated   by   a   dash   (e.g.
              SlurmctldPort=6817-6818).  NOTE: Either  slurmctld  and  slurmd  daemons  must  not
              execute  on  the  same  nodes or the values of SlurmctldPort and SlurmdPort must be
              different.

       SlurmctldTimeout
              The interval, in  seconds,  that  the  backup  controller  waits  for  the  primary
              controller  to  respond before assuming control.  The default value is 120 seconds.
              May not exceed 65533.

       SlurmdDebug
              The level of detail to provide slurmd daemon's logs.  The default value is info.

              quiet     Log nothing

              fatal     Log only fatal errors

              error     Log only errors

              info      Log errors and general informational messages

              verbose   Log errors and verbose informational messages

              debug     Log errors and verbose informational messages and debugging messages

              debug2    Log errors and verbose informational messages and more debugging messages

              debug3    Log errors and verbose informational messages  and  even  more  debugging
                        messages

              debug4    Log  errors  and  verbose  informational messages and even more debugging
                        messages

              debug5    Log errors and verbose informational messages  and  even  more  debugging
                        messages

       SlurmdLogFile
              Fully  qualified  pathname  of  a  file  into  which  the  slurmd daemon's logs are
              written.  The default value is none (performs logging via syslog).  Any "%h" within
              the  name  is  replaced with the hostname on which the slurmd is running.  Any "%n"
              within the name is replaced with the  SLURM  node  name  on  which  the  slurmd  is
              running.
              See the section LOGGING if a pathname is specified.

       SlurmdPidFile
              Fully  qualified  pathname  of  a  file into which the  slurmd daemon may write its
              process id. This may be used for automated signal processing.  Any "%h" within  the
              name is replaced with the hostname on which the slurmd is running.  Any "%n" within
              the name is replaced with the SLURM node name on which the slurmd is running.   The
              default value is "/var/run/slurmd.pid".

       SlurmdPort
              The  port  number  that the SLURM compute node daemon, slurmd, listens to for work.
              The default value is SLURMD_PORT as established at system build time.  If  none  is
              explicitly  specified,  its  value will be 6818.  NOTE: Either slurmctld and slurmd
              daemons must not execute on the same nodes  or  the  values  of  SlurmctldPort  and
              SlurmdPort must be different.

       SlurmdSpoolDir
              Fully  qualified  pathname  of  a  directory  into  which the slurmd daemon's state
              information and batch job script information are written. This  must  be  a  common
              pathname  for  all  nodes,  but should represent a directory which is local to each
              node (reference a local file system). The  default  value  is  "/var/spool/slurmd".
              Any  "%h"  within  the  name  is  replaced with the hostname on which the slurmd is
              running.  Any "%n" within the name is replaced with the SLURM node  name  on  which
              the slurmd is running.

       SlurmdTimeout
              The  interval,  in  seconds,  that the SLURM controller waits for slurmd to respond
              before configuring that node's state to DOWN.  A value of zero indicates  the  node
              will  not  be tested by slurmctld to confirm the state of slurmd, the node will not
              be automatically set to a DOWN state indicating a non-responsive slurmd,  and  some
              other  tool  will take responsibility for monitoring the state of each compute node
              and its slurmd daemon.  SLURM's hierarchical communication  mechanism  is  used  to
              ping  the  slurmd  daemons  in  order  to  minimize system noise and overhead.  The
              default value is 300 seconds.  The value may not exceed 65533 seconds.

       SlurmSchedLogFile
              Fully qualified pathname of the scheduling event logging file.  The syntax of  this
              parameter  is  the  same  as for SlurmctldLogFile.  In order to configure scheduler
              logging, set both the SlurmSchedLogFile and SlurmSchedLogLevel parameters.

       SlurmSchedLogLevel
              The initial level  of  scheduling  event  logging,  similar  to  the  SlurmctlDebug
              parameter used to control the initial level of slurmctld logging.  Valid values for
              SlurmSchedLogLevel are "0" (scheduler logging disabled) and "1" (scheduler  logging
              enabled).   If this parameter is omitted, the value defaults to "0" (disabled).  In
              order  to  configure  scheduler  logging,  set  both  the   SlurmSchedLogFile   and
              SlurmSchedLogLevel   parameters.   The  scheduler  logging  level  can  be  changed
              dynamically using scontrol.

       SrunEpilog
              Fully qualified pathname  of  an  executable  to  be  run  by  srun  following  the
              completion  of  a  job step.  The command line arguments for the executable will be
              the command and arguments of the job step.  This  configuration  parameter  may  be
              overridden  by  srun's  --epilog  parameter.  Note  that  while  the other "Epilog"
              executables (e.g., TaskEpilog) are run by slurmd on the  compute  nodes  where  the
              tasks are executed, the SrunEpilog runs on the node where the "srun" is executing.

       SrunProlog
              Fully  qualified pathname of an executable to be run by srun prior to the launch of
              a job step.  The command line arguments for the executable will be the command  and
              arguments  of  the  job  step.   This  configuration parameter may be overridden by
              srun's --prolog parameter. Note that while the other  "Prolog"  executables  (e.g.,
              TaskProlog)  are  run  by slurmd on the compute nodes where the tasks are executed,
              the SrunProlog runs on the node where the "srun" is executing.

       StateSaveLocation
              Fully qualified pathname of a directory into which the SLURM controller, slurmctld,
              saves  its state (e.g. "/usr/local/slurm/checkpoint").  SLURM state will saved here
              to recover from system failures.  SlurmUser must be able to create  files  in  this
              directory.   If  you  have  a  BackupController configured, this location should be
              readable and  writable  by  both  systems.   Since  all  running  and  pending  job
              information  is  stored  here,  the  use  of  a reliable file system (e.g. RAID) is
              recommended.  The default value is "/var/spool".  If any  slurm  daemons  terminate
              abnormally, their core files will also be written into this directory.

       SuspendExcNodes
              Specifies the nodes which are to not be placed in power save mode, even if the node
              remains idle for an extended period of time.  Use SLURM's  hostlist  expression  to
              identify  nodes.   By default no nodes are excluded.  Related configuration options
              include  ResumeTimeout,  ResumeProgram,  ResumeRate,  SuspendProgram,  SuspendRate,
              SuspendTime, SuspendTimeout, and SuspendExcParts.

       SuspendExcParts
              Specifies  the partitions whose nodes are to not be placed in power save mode, even
              if the node remains idle for an extended period of time.  Multiple  partitions  can
              be  identified and separated by commas.  By default no nodes are excluded.  Related
              configuration   options   include   ResumeTimeout,    ResumeProgram,    ResumeRate,
              SuspendProgram, SuspendRate, SuspendTime SuspendTimeout, and SuspendExcNodes.

       SuspendProgram
              SuspendProgram is the program that will be executed when a node remains idle for an
              extended period of time.  This program is expected to  place  the  node  into  some
              power save mode.  This can be used to reduce the frequency and voltage of a node or
              completely power the node off.  The program executes as SlurmUser.  The argument to
              the  program will be the names of nodes to be placed into power savings mode (using
              SLURM's hostlist expression format).  By  default,  no  program  is  run.   Related
              configuration    options    include   ResumeTimeout,   ResumeProgram,   ResumeRate,
              SuspendRate, SuspendTime, SuspendTimeout, SuspendExcNodes, and SuspendExcParts.

       SuspendRate
              The rate at which nodes are place into power  save  mode  by  SuspendProgram.   The
              value  is  number of nodes per minute and it can be used to prevent a large drop in
              power power consumption (e.g. after a  large  job  completes).   A  value  of  zero
              results  in  no  limits  being  imposed.  The default value is 60 nodes per minute.
              Related configuration options  include  ResumeTimeout,  ResumeProgram,  ResumeRate,
              SuspendProgram, SuspendTime, SuspendTimeout, SuspendExcNodes, and SuspendExcParts.

       SuspendTime
              Nodes  which  remain idle for this number of seconds will be placed into power save
              mode by SuspendProgram.  A value of -1 disables power save mode and is the default.
              Related  configuration  options  include  ResumeTimeout, ResumeProgram, ResumeRate,
              SuspendProgram, SuspendRate, SuspendTimeout, SuspendExcNodes, and SuspendExcParts.

       SuspendTimeout
              Maximum time permitted (in second) between when a node suspend  request  is  issued
              and  when the node shutdown.  At that time the node must ready for a resume request
              to be issued as needed for new work.  The default value  is  30  seconds.   Related
              configuration    options    include   ResumeProgram,   ResumeRate,   ResumeTimeout,
              SuspendRate,  SuspendTime,  SuspendProgram,  SuspendExcNodes  and  SuspendExcParts.
              More     information     is     available    at    the    SLURM    web    site    (
              http://slurm.schedmd.com/power_save.html ).

       SwitchType
              Identifies the type of switch or interconnect used for application  communications.
              Acceptable   values  include  "switch/none"  for  switches  not  requiring  special
              processing for job launch or termination (Myrinet, Ethernet,  and  InfiniBand)  and
              "switch/nrt"   for  IBM's  Network  Resource  Table  API.   The  default  value  is
              "switch/none".  All SLURM daemons, commands and running jobs must be restarted  for
              a change in SwitchType to take effect.  If running jobs exist at the time slurmctld
              is restarted with a new value of SwitchType, records of all jobs in any  state  may
              be lost.

       TaskEpilog
              Fully  qualified pathname of a program to be execute as the slurm job's owner after
              termination of each task.  See TaskProlog for execution order details.

       TaskPlugin
              Identifies the type of task launch  plugin,  typically  used  to  provide  resource
              management within a node (e.g. pinning tasks to specific processors). More than one
              task plugin can be specified in a comma separated list. The prefix  of  "task/"  is
              optional. Acceptable values include:

              task/affinity  enables  resource  containment  using  CPUSETs.   This  enables  the
                             --cpu_bind   and/or   --mem_bind   srun   options.    If   you   use
                             "task/affinity" and encounter problems, it may be due to the variety
                             of system  calls  used  to  implement  task  affinity  on  different
                             operating  systems.   If  that  is the case, you may want to install
                             Portable  Linux  Process  Affinity   (PLPA,   see   http://www.open-
                             mpi.org/software/plpa), which is supported by SLURM.

              task/cgroup    enables  resource  containment  using  Linux  control cgroups.  This
                             enables the --cpu_bind and/or --mem_bind srun  options.   NOTE:  see
                             "man  cgroup.conf"  for  configuration  details.   NOTE: This plugin
                             writes to disk and can slightly  impact  performance.   If  you  are
                             running  lots  of short running jobs (less than a couple of seconds)
                             this plugin slows down performance slightly.  It should probably  be
                             avoided in an HTC environment.

              task/none      for  systems  requiring  no  special  handling of user tasks.  Lacks
                             support for the --cpu_bind  and/or  --mem_bind  srun  options.   The
                             default value is "task/none".

       TaskPluginParam
              Optional  parameters  for  the  task  plugin.   Multiple  options  should  be comma
              separated If None, Sockets, Cores, Threads, and/or Verbose are specified, they will
              override  the  --cpu_bind  option specified by the user in the srun command.  None,
              Sockets,  Cores  and  Threads  are  mutually  exclusive  and  since  they  decrease
              scheduling  flexibility  are  not generally recommended (select no more than one of
              them).  Cpusets and Sched are mutually exclusive (select only one of them).

              Cores     Always bind to cores.  Overrides user options or automatic binding.

              Cpusets   Use cpusets to perform task affinity functions.  By default,  Sched  task
                        binding is performed.

              None      Perform no task binding.  Overrides user options or automatic binding.

              Sched     Use  sched_setaffinity  or  plpa_sched_setaffinity (if available) to bind
                        tasks to processors.

              Sockets   Always bind to sockets.  Overrides user options or automatic binding.

              Threads   Always bind to threads.  Overrides user options or automatic binding.

              Verbose   Verbosely report binding before tasks run.  Overrides user options.

       TaskProlog
              Fully qualified pathname of a program to be execute as the slurm job's owner  prior
              to  initiation  of  each  task.  Besides the normal environment variables, this has
              SLURM_TASK_PID available to identify the process ID  of  the  task  being  started.
              Standard  output from this program can be used to control the environment variables
              and output for the user program.

              export NAME=value   Will set environment variables  for  the  task  being  spawned.
                                  Everything  after the equal sign to the end of the line will be
                                  used as the value for the environment variable.   Exporting  of
                                  functions is not currently supported.

              print ...           Will  cause  that  line  (without  the  leading "print ") to be
                                  printed to the job's standard output.

              unset NAME          Will clear environment variables for the task being spawned.

              The order of task prolog/epilog execution is as follows:

              1. pre_launch_priv()
                                  Function in TaskPlugin

              1. pre_launch()     Function in TaskPlugin

              2. TaskProlog       System-wide per task program defined in slurm.conf

              3. user prolog      Job  step  specific   task   program   defined   using   srun's
                                  --task-prolog option or SLURM_TASK_PROLOG environment variable

              4. Execute the job step's task

              5. user epilog      Job   step   specific   task   program   defined  using  srun's
                                  --task-epilog option or SLURM_TASK_EPILOG environment variable

              6. TaskEpilog       System-wide per task program defined in slurm.conf

              7. post_term()      Function in TaskPlugin

       TmpFS  Fully qualified pathname of the file system available to user  jobs  for  temporary
              storage.  This  parameter  is  used  in  establishing  a node's TmpDisk space.  The
              default value is "/tmp".

       TopologyPlugin
              Identifies the  plugin  to  be  used  for  determining  the  network  topology  and
              optimizing  job  allocations  to minimize network contention.  See NETWORK TOPOLOGY
              below for details.  Additional plugins may be provided in the future  which  gather
              topology information directly from the network.  Acceptable values include:

              topology/3d_torus    default  for  Sun  Constellation  systems, best-fit logic over
                                   three-dimensional topology

              topology/node_rank   orders nodes based upon information a node_rank field  in  the
                                   node  record as generated by a select plugin. SLURM performs a
                                   best-fit algorithm over those ordered nodes

              topology/none        default for other systems, best-fit logic over one-dimensional
                                   topology

              topology/tree        used   for   a   hierarchical   network   as  described  in  a
                                   topology.conf file

       TrackWCKey
              Boolean yes or no.  Used to set display and track of the Workload  Characterization
              Key.  Must be set to track wckey usage.

       TreeWidth
              Slurmd  daemons use a virtual tree network for communications.  TreeWidth specifies
              the width of the tree (i.e. the fanout).  On architectures with a  front  end  node
              running  the  slurmd  daemon, the value must always be equal to or greater than the
              number of front end nodes which eliminates the need for message forwarding  between
              the  slurmd  daemons.  On other architectures the default value is 50, meaning each
              slurmd daemon can communicate with up to 50 other  slurmd  daemons  and  over  2500
              nodes can be contacted with two message hops.  The default value will work well for
              most clusters.  Optimal system performance can typically be achieved  if  TreeWidth
              is  set to the square root of the number of nodes in the cluster for systems having
              no more than 2500 nodes or the cube root for larger  systems.  The  value  may  not
              exceed 65533.

       UnkillableStepProgram
              If the processes in a job step are determined to be unkillable for a period of time
              specified  by  the  UnkillableStepTimeout  variable,  the  program   specified   by
              UnkillableStepProgram  will  be executed.  This program can be used to take special
              actions to clean up the unkillable processes and/or notify computer administrators.
              The program will be run SlurmdUser (usually "root").  By default no program is run.

       UnkillableStepTimeout
              The length of time, in seconds, that SLURM will wait before deciding that processes
              in a job step are unkillable (after they  have  been  signaled  with  SIGKILL)  and
              execute  UnkillableStepProgram as described above.  The default timeout value is 60
              seconds.

       UsePAM If set to 1, PAM (Pluggable Authentication Modules for Linux) will be enabled.  PAM
              is  used  to  establish  the  upper  bounds  for  resource limits. With PAM support
              enabled, local system administrators  can  dynamically  configure  system  resource
              limits.  Changing  the upper bound of a resource limit will not alter the limits of
              running jobs, only jobs started after a change has been made will pick up  the  new
              limits.   The  default  value  is 0 (not to enable PAM support).  Remember that PAM
              also needs to be configured to support SLURM as a service.  For sites  using  PAM's
              directory  based  configuration  option, a configuration file named slurm should be
              created. The module-type, control-flags,  and  module-path  names  that  should  be
              included in the file are:
              auth        required      pam_localuser.so
              auth        required      pam_shells.so
              account     required      pam_unix.so
              account     required      pam_access.so
              session     required      pam_unix.so
              For  sites configuring PAM with a general configuration file, the appropriate lines
              (see above), where slurm is the service-name, should be added.

       VSizeFactor
              Memory specifications in job requests apply to real  memory  size  (also  known  as
              resident  set  size). It is possible to enforce virtual memory limits for both jobs
              and job steps by limiting their virtual memory to some  percentage  of  their  real
              memory  allocation.  The  VSizeFactor  parameter  specifies the job's or job step's
              virtual memory limit as a percentage of its real memory limit. For  example,  if  a
              job's real memory limit is 500MB and VSizeFactor is set to 101 then the job will be
              killed if its real memory exceeds 500MB or its virtual memory  exceeds  505MB  (101
              percent  of  the  real  memory  limit).   The  default  valus  is 0, which disables
              enforcement of virtual memory limits.  The value may not exceed 65533 percent.

       WaitTime
              Specifies how many seconds the srun command should by default wait after the  first
              task  terminates before terminating all remaining tasks. The "--wait" option on the
              srun command line overrides this value.  The default value  is  0,  which  disables
              this feature.  May not exceed 65533 seconds.

       The  configuration  of  nodes  (or  machines)  to be managed by SLURM is also specified in
       /etc/slurm.conf.  Changes  in  node  configuration  (e.g.  adding  nodes,  changing  their
       processor  count,  etc.)  require  restarting  both  the  slurmctld  daemon and the slurmd
       daemons.  All slurmd daemons must know each node in the  system  to  forward  messages  in
       support  of  hierarchical  communications.   Only  the  NodeName  must  be supplied in the
       configuration file.   All  other  node  configuration  information  is  optional.   It  is
       advisable  to  establish  baseline  node  configurations,  especially  if  the  cluster is
       heterogeneous.  Nodes which register to the system with less than the configured resources
       (e.g.  too  little memory), will be placed in the "DOWN" state to avoid scheduling jobs on
       them.  Establishing baseline configurations will also speed SLURM's scheduling process  by
       permitting  it  to  compare  job requirements against these (relatively few) configuration
       parameters and possibly avoid having to check job requirements  against  every  individual
       node's  configuration.   The  resources  checked  at  node  registration  time  are: CPUs,
       RealMemory and TmpDisk.  While baseline values for each of these can be established in the
       configuration file, the actual values upon node registration are recorded and these actual
       values may be used for scheduling purposes (depending upon the value  of  FastSchedule  in
       the configuration file.

       Default values can be specified with a record in which NodeName is "DEFAULT".  The default
       entry values will apply only to lines following it  in  the  configuration  file  and  the
       default values can be reset multiple times in the configuration file with multiple entries
       where "NodeName=DEFAULT".  Each line where NodeName is "DEFAULT" will replace  or  add  to
       previous  default  values  and  not  a  reinitialize  the default values.  The "NodeName="
       specification must be placed on every line  describing  the  configuration  of  nodes.   A
       single  node name can not appear as a NodeName value in more than one line (duplicate node
       name records will be ignored).  In fact, it is generally possible and desirable to  define
       the  configurations of all nodes in only a few lines.  This convention permits significant
       optimization in the scheduling of larger clusters.  In order to  support  the  concept  of
       jobs  requiring  consecutive  nodes  on  some architectures, node specifications should be
       place in this file in consecutive order.  No single node name may be listed more than once
       in  the  configuration  file.   Use  "DownNodes="  to  record the state of nodes which are
       temporarily in a DOWN, DRAIN or FAILING state  without  altering  permanent  configuration
       information.   A  job step's tasks are allocated to nodes in order the nodes appear in the
       configuration file. There is presently no capability within SLURM to arbitrarily  order  a
       job step's tasks.

       Multiple  node names may be comma separated (e.g. "alpha,beta,gamma") and/or a simple node
       range expression may optionally be used to  specify  numeric  ranges  of  nodes  to  avoid
       building  a  configuration  file with large numbers of entries.  The node range expression
       can contain one  pair of square brackets with a sequence of comma separated numbers and/or
       ranges of numbers separated by a "-" (e.g. "linux[0-64,128]", or "lx[15,18,32-33]").  Note
       that the numeric ranges can include one or more leading  zeros  to  indicate  the  numeric
       portion  has a fixed number of digits (e.g. "linux[0000-1023]").  Up to two numeric ranges
       can be included in the expression (e.g. "rack[0-63]_blade[0-41]").  If one or more numeric
       expressions   are   included,  one  of  them  must  be  at  the  end  of  the  name  (e.g.
       "unit[0-31]rack" is invalid), but arbitrary names can always be used in a comma  separated
       list.

       On  BlueGene systems only, the square brackets should contain pairs of three digit numbers
       separated by a "x".  These numbers indicate the boundaries of a  rectangular  prism  (e.g.
       "bgl[000x144,400x544]").    See   BlueGene  documentation  for  more  details.   The  node
       configuration specified the following information:

       NodeName
              Name that SLURM uses to refer to a node (or base partition for  BlueGene  systems).
              Typically this would be the string that "/bin/hostname -s" returns.  It may also be
              the  fully  qualified  domain  name  as  returned  by  "/bin/hostname   -f"   (e.g.
              "foo1.bar.com"), or any valid domain name associated with the host through the host
              database (/etc/hosts) or DNS, depending on the resolver settings.  Note that if the
              short  form of the hostname is not used, it may prevent use of hostlist expressions
              (the numeric portion in brackets must be at the end of  the  string).   Only  short
              hostname   forms   are  compatible  with  the  switch/elan,  switch/federation  and
              switch/nrt  plugins  at  this  time.   It  may  also  be  an  arbitrary  string  if
              NodeHostname is specified.  If the NodeName is "DEFAULT", the values specified with
              that record will apply to subsequent node specifications unless explicitly  set  to
              other  values  in  that  node  record  or  replaced with a different set of default
              values.  Each line where NodeName is "DEFAULT" will  replace  or  add  to  previous
              default  values  and  not  a reinitialize the default values.  For architectures in
              which the node order is significant, nodes will be considered  consecutive  in  the
              order   defined.    For   example,  if  the  configuration  for  "NodeName=charlie"
              immediately follows the configuration for "NodeName=baker" they will be  considered
              adjacent in the computer.

       NodeHostname
              Typically this would be the string that "/bin/hostname -s" returns.  It may also be
              the  fully  qualified  domain  name  as  returned  by  "/bin/hostname   -f"   (e.g.
              "foo1.bar.com"), or any valid domain name associated with the host through the host
              database (/etc/hosts) or DNS, depending on the resolver settings.  Note that if the
              short  form of the hostname is not used, it may prevent use of hostlist expressions
              (the numeric portion in brackets must be at the end of  the  string).   Only  short
              hostname   forms   are  compatible  with  the  switch/elan,  switch/federation  and
              switch/nrt plugins at this time.  A node range expression can be used to specify  a
              set  of  nodes.   If  an  expression  is  used,  the  number of nodes identified by
              NodeHostname on a line in the configuration file must be identical to the number of
              nodes  identified  by  NodeName.  By default, the NodeHostname will be identical in
              value to NodeName.

       NodeAddr
              Name that a node should be referred to in establishing a communications path.  This
              name   will   be   used   as  an  argument  to  the  gethostbyname()  function  for
              identification.  If a node range expression is used to  designate  multiple  nodes,
              they  must  exactly  match  the  entries  in  the  NodeName (e.g. "NodeName=lx[0-7]
              NodeAddr="elx[0-7]").  NodeAddr may also contain IP  addresses.   By  default,  the
              NodeAddr will be identical in value to NodeHostname.

       Boards Number  of  Baseboards in nodes with a baseboard controller.  Note that when Boards
              is  specified,  SocketsPerBoard,  CoresPerSocket,  and  ThreadsPerCore  should   be
              specified.  Boards and CPUs are mutually exclusive.  The default value is 1.

       CoresPerSocket
              Number   of   cores  in  a  single  physical  processor  socket  (e.g.  "2").   The
              CoresPerSocket value describes physical cores, not the logical number of processors
              per  socket.   NOTE:  If  you  have  multi-core processors, you will likely need to
              specify this parameter in order to optimize scheduling.  The default value is 1.

       CPUs   Number of logical processors on the node (e.g. "2").  If CPUs is omitted,  it  will
              set  equal to the product of Sockets, CoresPerSocket, and ThreadsPerCore.  CPUs and
              Boards are mutually exclusive.  The default value is 1.

       Feature
              A comma delimited list of  arbitrary  strings  indicative  of  some  characteristic
              associated  with  the  node.   There  is no value associated with a feature at this
              time, a node either has a feature or it does not.  If desired a feature may contain
              a  numeric  component  indicating, for example, processor speed.  By default a node
              has no features.  Also see Gres.

       Gres   A comma delimited list of  generic  resources  specifications  for  a  node.   Each
              resource  specification  consists  of  a  name followed by an optional colon with a
              numeric value (default value is one) (e.g. "Gres=bandwidth:10000,gpu:2").  A suffix
              of  "K",  "M"  or  "G"  may  be  used  to  multiply  the number by 1024, 1048576 or
              1073741824 respectively (e.g. "Gres=bandwidth:4G,gpu:4")..  By default a  node  has
              no generic resources and its maximum count is 4,294,967,295.  Also see Feature.

       Port   The  port number that the SLURM compute node daemon, slurmd, listens to for work on
              this particular node. By default there is a  single  port  number  for  all  slurmd
              daemons  on all compute nodes as defined by the SlurmdPort configuration parameter.
              Use of this option is not generally recommended except for development  or  testing
              purposes.  If multiple slurmd daemons execute on a node this can specify a range of
              ports

       Procs  See CPUs.

       RealMemory
              Size of real memory on the node in MegaBytes (e.g. "2048").  The default  value  is
              1.

       Reason Identifies  the  reason  for  a  node  being in state "DOWN", "DRAINED" "DRAINING",
              "FAIL" or "FAILING".  Use quotes to enclose a reason having more than one word.

       Sockets
              Number of physical processor sockets/chips on the node (e.g. "2").  If  Sockets  is
              omitted,  it will be inferred from CPUs, CoresPerSocket, and ThreadsPerCore.  NOTE:
              If  you  have  multi-core  processors,  you  will  likely  need  to  specify  these
              parameters.   Sockets  and  SocketsPerBoard  are mutually exclusive.  If Sockets is
              specified when Boards is also  used,  Sockets  is  interpreted  as  SocketsPerBoard
              rather than total sockets.  The default value is 1.

       SocketsPerBoard
              Number   of   physical   processor  sockets/chips  on  a  baseboard.   Sockets  and
              SocketsPerBoard are mutually exclusive.  The default value is 1.

       State  State of the node with respect to the initiation of user jobs.   Acceptable  values
              are  "DOWN",  "DRAIN",  "FAIL", "FAILING" and "UNKNOWN".  "DOWN" indicates the node
              failed and is unavailable to be allocated work.   "DRAIN"  indicates  the  node  is
              unavailable  to  be  allocated work.  "FAIL" indicates the node is expected to fail
              soon, has no jobs allocated to it, and will not  be  allocated  to  any  new  jobs.
              "FAILING"  indicates  the  node  is  expected  to  fail  soon, has one or more jobs
              allocated to it, but will not be allocated to any new  jobs.   "UNKNOWN"  indicates
              the  node's  state  is  undefined  (BUSY or IDLE), but will be established when the
              slurmd daemon on that node registers.  The default value is  "UNKNOWN".   Also  see
              the DownNodes parameter below.

       ThreadsPerCore
              Number  of  logical  threads  in  a single physical core (e.g. "2").  Note that the
              SLURM can allocate resources to jobs down to the resolution  of  a  core.  If  your
              system  is  configured with more than one thread per core, execution of a different
              job    on    each    thread    is    not    supported    unless    you    configure
              SelectTypeParameters=CR_CPU  plus CPUs; do not configure Sockets, CoresPerSocket or
              ThreadsPerCore.  A job can execute a one task per thread from within one  job  step
              or  execute  a  distinct  job  step  on  each of the threads.  Note also if you are
              running with more than 1 thread per core and running the select/cons_res plugin you
              will  want  to set the SelectTypeParameters variable to something other than CR_CPU
              to avoid unexpected results.  The default value is 1.

       TmpDisk
              Total size of temporary disk storage in TmpFS in MegaBytes  (e.g.  "16384").  TmpFS
              (for  "Temporary  File  System")  identifies the location which jobs should use for
              temporary storage.  Note this does not indicate the amount of free space  available
              to the user on the node, only the total file system size. The system administration
              should insure this file system is purged as needed so that user jobs have access to
              most  of  this  space.   The  Prolog  and/or  Epilog  programs  (specified  in  the
              configuration file) might be used to insure the file system  is  kept  clean.   The
              default value is 0.

       Weight The  priority  of  the  node for scheduling purposes.  All things being equal, jobs
              will  be  allocated  the  nodes  with  the  lowest  weight  which  satisfies  their
              requirements.   For  example,  a  heterogeneous collection of nodes might be placed
              into  a  single  partition  for  greater  system  utilization,  responsiveness  and
              capability.  It  would  be  preferable to allocate smaller memory nodes rather than
              larger memory nodes if either will satisfy a  job's  requirements.   The  units  of
              weight  are  arbitrary,  but  larger  weights should be assigned to nodes with more
              processors, memory, disk space, higher processor speed, etc.  Note that  if  a  job
              allocation request can not be satisfied using the nodes with the lowest weight, the
              set of nodes with the next lowest weight  is  added  to  the  set  of  nodes  under
              consideration  for  use  (repeat  as  needed  for  higher  weight  values).  If you
              absolutely want to minimize the number of higher weight nodes allocated  to  a  job
              (at  a  cost of higher scheduling overhead), give each node a distinct Weight value
              and they will be added to  the  pool  of  nodes  being  considered  for  scheduling
              individually.  The default value is 1.

       The  "DownNodes="  configuration  permits  you  to mark certain nodes as in a DOWN, DRAIN,
       FAIL, or FAILING state without altering the  permanent  configuration  information  listed
       under a "NodeName=" specification.

       DownNodes
              Any node name, or list of node names, from the "NodeName=" specifications.

       Reason Identifies  the  reason  for  a  node  being  in  state  "DOWN", "DRAIN", "FAIL" or
              "FAILING.  Use quotes to enclose a reason having more than one word.

       State  State of the node with respect to the initiation of user jobs.   Acceptable  values
              are "BUSY", "DOWN", "DRAIN", "FAIL", "FAILING, "IDLE", and "UNKNOWN".

              CLOUD     Indicates  the  node  exists  in  the  cloud.  It's initial state will be
                        treated as powered down.  The node will be available for use  after  it's
                        state  is  recovered  from  SLURM's  state save file or the slurmd daemon
                        starts on the compute node.

              DOWN      Indicates the node failed and is unavailable to be allocated work.

              DRAIN     Indicates the node is unavailable to be allocated work.on.

              FAIL      Indicates the node is expected to fail soon, has no jobs allocated to it,
                        and will not be allocated to any new jobs.

              FAILING   Indicates  the  node  is  expected  to  fail  soon,  has one or more jobs
                        allocated to it, but will not be allocated to any new jobs.

              FUTURE    Indicates the node is defined for future use and need not exist when  the
                        SLURM  daemons  are  started.  These  nodes can be made available for use
                        simply by updating the node state using the scontrol command rather  than
                        restarting  the  slurmctld  daemon. After these nodes are made available,
                        change their State in the slurm.conf file. Until  these  nodes  are  made
                        available, they will not be seen using any SLURM commands or nor will any
                        attempt be made to contact them.

              UNKNOWN   Indicates the node's state is undefined  (BUSY  or  IDLE),  but  will  be
                        established  when  the slurmd daemon on that node registers.  The default
                        value is "UNKNOWN".

       On computers where frontend nodes are used to execute batch scripts  rather  than  compute
       nodes  (BlueGene  or Cray systems), one may configure one or more frontend nodes using the
       configuration parameters defined below. These options are very similar to  those  used  in
       configuring  compute nodes. These options may only be used on systems configured and built
       with the  appropriate  parameters  (--have-front-end,  --enable-bluegene-emulation)  or  a
       system  determined  to have the appropriate architecture by the configure script (BlueGene
       or Cray systems).  The front end configuration specifies the following information:

       AllowGroups
              Comma separated list of group names which may execute jobs on this front end  node.
              By  default,  all  groups  may  use  this front end node.  May not be used with the
              DenyGroups option.

       AllowUsers
              Comma separated list of user names which may execute jobs on this front  end  node.
              By  default,  all  users  may  use  this  front end node.  May not be used with the
              DenyUsers option.

       DenyGroups
              Comma separated list of group names which are prevented from executing jobs on this
              front end node.  May not be used with the AllowGroups option.

       DenyUsers
              Comma  separated list of user names which are prevented from executing jobs on this
              front end node.  May not be used with the AllowUsers option.

       FrontendName
              Name that SLURM uses to refer to a frontend node.   Typically  this  would  be  the
              string  that "/bin/hostname -s" returns.  It may also be the fully qualified domain
              name as returned by "/bin/hostname -f" (e.g. "foo1.bar.com"), or any  valid  domain
              name  associated  with  the  host  through  the  host database (/etc/hosts) or DNS,
              depending on the resolver settings.  Note that if the short form of the hostname is
              not  used,  it  may  prevent  use  of  hostlist expressions (the numeric portion in
              brackets must be at the end of the string).  If the FrontendName is "DEFAULT",  the
              values  specified  with  that  record  will apply to subsequent node specifications
              unless explicitly set to other values in that frontend node record or replaced with
              a  different set of default values.  Each line where FrontendName is "DEFAULT" will
              replace or add to previous default  values  and  not  a  reinitialize  the  default
              values.   Note  that since the naming of front end nodes would typically not follow
              that of the compute nodes (e.g. lacking X, Y and Z coordinates found in the compute
              node  naming  scheme),  each  front  end  node name should be listed separately and
              without  a   hostlist   expression   (i.e.   frontend00,frontend01"   rather   than
              "frontend[00-01]").</p>

       FrontendAddr
              Name  that  a  frontend node should be referred to in establishing a communications
              path. This name will be used as an argument to  the  gethostbyname()  function  for
              identification.   As  with  FrontendName, list the individual node addresses rather
              than using a hostlist expression.  The number of FrontendAddr records per line must
              equal the number of FrontendName records per line (i.e. you can't map to node names
              to one address).  FrontendAddr may also contain  IP  addresses.   By  default,  the
              FrontendAddr will be identical in value to FrontendName.

       Port   The  port number that the SLURM compute node daemon, slurmd, listens to for work on
              this particular frontend node. By default there is a single  port  number  for  all
              slurmd  daemons  on  all  frontend nodes as defined by the SlurmdPort configuration
              parameter. Use of this option is not generally recommended except  for  development
              or testing purposes.

       Reason Identifies  the  reason  for  a  frontend  node  being  in  state "DOWN", "DRAINED"
              "DRAINING", "FAIL" or "FAILING".  Use quotes to enclose a reason having  more  than
              one word.

       State  State of the frontend node with respect to the initiation of user jobs.  Acceptable
              values are "DOWN", "DRAIN", "FAIL", "FAILING" and "UNKNOWN".  "DOWN" indicates  the
              frontend  node  has  failed  and  is  unavailable  to  be  allocated work.  "DRAIN"
              indicates the frontend node is unavailable to be allocated work.  "FAIL"  indicates
              the  frontend  node is expected to fail soon, has no jobs allocated to it, and will
              not be allocated to any  new  jobs.   "FAILING"  indicates  the  frontend  node  is
              expected  to  fail  soon,  has  one  or  more jobs allocated to it, but will not be
              allocated to any new jobs.   "UNKNOWN"  indicates  the  frontend  node's  state  is
              undefined  (BUSY  or  IDLE), but will be established when the slurmd daemon on that
              node registers.  The default value is "UNKNOWN".  Also see the DownNodes  parameter
              below.

              For     example:     "FrontendName=frontend[00-03]    FrontendAddr=efrontend[00-03]
              State=UNKNOWN" is used to define four front end nodes for running slurmd daemons.

       The partition configuration permits you  to  establish  different  job  limits  or  access
       controls  for  various  groups  (or  partitions)  of nodes.  Nodes may be in more than one
       partition, making partitions serve as general purpose queues.  For example one may put the
       same  set  of  nodes  into two different partitions, each with different constraints (time
       limit, job sizes, groups  allowed  to  use  the  partition,  etc.).   Jobs  are  allocated
       resources  within  a  single  partition.  Default values can be specified with a record in
       which PartitionName is "DEFAULT".  The default entry  values  will  apply  only  to  lines
       following  it in the configuration file and the default values can be reset multiple times
       in the configuration  file  with  multiple  entries  where  "PartitionName=DEFAULT".   The
       "PartitionName="  specification  must be placed on every line describing the configuration
       of partitions.  Each line where PartitionName is "DEFAULT" will replace or add to previous
       default values and not a reinitialize the default values.  A single partition name can not
       appear as a PartitionName value in more than one line (duplicate  partition  name  records
       will  be  ignored).   If  a partition that is in use is deleted from the configuration and
       slurm is restarted or reconfigured (scontrol reconfigure), jobs using  the  partition  are
       canceled.   NOTE:  Put  all  parameters for each partition on a single line.  Each line of
       partition configuration information should represent a different partition.  The partition
       configuration file contains the following information:

       AllocNodes
              Comma  separated  list  of nodes from which users can submit jobs in the partition.
              Node names may be specified using the node range expression syntax described above.
              The default value is "ALL".

       AllowGroups
              Comma separated list of group names which may execute jobs in the partition.  If at
              least one group associated with the user  attempting  to  execute  the  job  is  in
              AllowGroups,  he  will  be  permitted to use this partition.  Jobs executed as user
              root can use any partition without regard to the value  of  AllowGroups.   If  user
              root  attempts  to  execute a job as another user (e.g. using srun's --uid option),
              this other user must be in one of groups identified by AllowGroups for the  job  to
              successfully  execute.  The default value is "ALL".  NOTE: For performance reasons,
              SLURM maintains a list of user IDs allowed  to  use  each  partition  and  this  is
              checked  at  job  submission  time.   This  list  of  user  IDs is updated when the
              slurmctld daemon is restarted,  reconfigured  (e.g.  "scontrol  reconfig")  or  the
              partition's  AllowGroups  value  is  reset,  even  if  is  value is unchanged (e.g.
              "scontrol update PartitionName=name AllowGroups=group").  For a user's access to  a
              partition  to  change,  both  his group membership must change and SLURM's internal
              user ID list must change using one of the methods described above.

       Alternate
              Partition name of alternate partition to be used if the state of this partition  is
              "DRAIN" or "INACTIVE."

       Default
              If  this  keyword  is  set,  jobs  submitted without a partition specification will
              utilize this partition.  Possible values are "YES" and "NO".  The default value  is
              "NO".

       DefMemPerCPU
              Default  real  memory size available per allocated CPU in MegaBytes.  Used to avoid
              over-subscribing memory and causing paging.  DefMemPerCPU would generally  be  used
              if  individual  processors  are allocated to jobs (SelectType=select/cons_res).  If
              not set, the DefMemPerCPU value for the entire cluster  will  be  used.   Also  see
              DefMemPerNode  and  MaxMemPerCPU.   DefMemPerCPU  and  DefMemPerNode  are  mutually
              exclusive.  NOTE: Enforcement of  memory  limits  currently  requires  enabling  of
              accounting,  which samples memory use on a periodic basis (data need not be stored,
              just collected).

       DefMemPerNode
              Default real memory size available per allocated node in MegaBytes.  Used to  avoid
              over-subscribing  memory and causing paging.  DefMemPerNode would generally be used
              if whole nodes are allocated to jobs (SelectType=select/linear) and  resources  are
              shared  (Shared=yes  or Shared=force).  If not set, the DefMemPerNode value for the
              entire  cluster  will  be  used.   Also   see   DefMemPerCPU   and   MaxMemPerNode.
              DefMemPerCPU and DefMemPerNode are mutually exclusive.  NOTE: Enforcement of memory
              limits currently requires enabling of accounting, which samples  memory  use  on  a
              periodic basis (data need not be stored, just collected).

       DefaultTime
              Run  time  limit  used for jobs that don't specify a value. If not set then MaxTime
              will be used.  Format is the same as for MaxTime.

       DisableRootJobs
              If set to "YES" then user root will be prevented from  running  any  jobs  on  this
              partition.  The default value will be the value of DisableRootJobs set outside of a
              partition specification (which is "NO", allowing user root to execute jobs).

       GraceTime
              Specifies, in units of seconds, the preemption grace time to be extended to  a  job
              which  has  been selected for preemption.  The default value is zero, no preemption
              grace time is allowed on this partition.  (Meaningful only for PreemptMode=CANCEL)

       Hidden Specifies if the partition and its jobs  are  to  be  hidden  by  default.   Hidden
              partitions will by default not be reported by the SLURM APIs or commands.  Possible
              values are "YES" and "NO".  The default value is "NO".  Note that partitions that a
              user  lacks access to by virtue of the AllowGroups parameter will also be hidden by
              default.

       MaxCPUsPerNode
              Maximum number of CPUs on any node available to all jobs from this partition.  This
              can  be  especially  useful  to schedule GPUs. For example a node can be associated
              with two Slurm partitions (e.g. "cpu" and  "gpu")  and  the  partition/queue  "cpu"
              could  be  limited  to  only a subset of the node's CPUs, insuring that one or more
              CPUs would be available to jobs in the "gpu" partition/queue.

       MaxMemPerCPU
              Maximum real memory size available per allocated CPU in MegaBytes.  Used  to  avoid
              over-subscribing  memory  and causing paging.  MaxMemPerCPU would generally be used
              if individual processors are allocated to  jobs  (SelectType=select/cons_res).   If
              not  set,  the  MaxMemPerCPU  value  for the entire cluster will be used.  Also see
              DefMemPerCPU  and  MaxMemPerNode.   MaxMemPerCPU  and  MaxMemPerNode  are  mutually
              exclusive.   NOTE:  Enforcement  of  memory  limits  currently requires enabling of
              accounting, which samples memory use on a periodic basis (data need not be  stored,
              just collected).

       MaxMemPerNode
              Maximum  real memory size available per allocated node in MegaBytes.  Used to avoid
              over-subscribing memory and causing paging.  MaxMemPerNode would generally be  used
              if  whole  nodes are allocated to jobs (SelectType=select/linear) and resources are
              shared (Shared=yes or Shared=force).  If not set, the MaxMemPerNode value  for  the
              entire   cluster   will   be   used.   Also  see  DefMemPerNode  and  MaxMemPerCPU.
              MaxMemPerCPU and MaxMemPerNode are mutually exclusive.  NOTE: Enforcement of memory
              limits  currently  requires  enabling  of accounting, which samples memory use on a
              periodic basis (data need not be stored, just collected).

       MaxNodes
              Maximum count of nodes which may be allocated to  any  single  job.   For  BlueGene
              systems  this  will  be  a  c-nodes count and will be converted to a midplane count
              with a reduction in  resolution.   The  default  value  is  "UNLIMITED",  which  is
              represented  internally  as  -1.   This  limit  does  not apply to jobs executed by
              SlurmUser or user root.

       MaxTime
              Maximum  run  time  limit  for   jobs.    Format   is   minutes,   minutes:seconds,
              hours:minutes:seconds,  days-hours,  days-hours:minutes, days-hours:minutes:seconds
              or "UNLIMITED".  Time resolution is one minute and second values are rounded up  to
              the  next  minute.  This limit does not apply to jobs executed by SlurmUser or user
              root.

       MinNodes
              Minimum count of nodes which may be allocated to  any  single  job.   For  BlueGene
              systems  this  will  be  a  c-nodes count and will be converted to a midplane count
              with a reduction in resolution.  The default value is 1.  This limit does not apply
              to jobs executed by SlurmUser or user root.

       Nodes  Comma  separated  list of nodes (or base partitions for BlueGene systems) which are
              associated with this partition.  Node names may be specified using the  node  range
              expression  syntax  described  above. A blank list of nodes (i.e. "Nodes= ") can be
              used if one wants a partition to exist,  but  have  no  resources  (possibly  on  a
              temporary basis).

       PartitionName
              Name  by which the partition may be referenced (e.g. "Interactive").  This name can
              be specified by users when submitting jobs.  If the PartitionName is "DEFAULT", the
              values specified with that record will apply to subsequent partition specifications
              unless explicitly set to other values in that partition record or replaced  with  a
              different  set  of default values.  Each line where PartitionName is "DEFAULT" will
              replace or add to previous default  values  and  not  a  reinitialize  the  default
              values.

       PreemptMode
              Mechanism     used     to     preempt     jobs    from    this    partition    when
              PreemptType=preempt/partition_prio  is   configured.    This   partition   specific
              PreemptMode  configuration  parameter  will  override the PreemptMode configuration
              parameter set for the cluster as  a  whole.   The  cluster-level  PreemptMode  must
              include  the GANG option if PreemptMode is configured to SUSPEND for any partition.
              The cluster-level PreemptMode must not be OFF if PreemptMode  is  enabled  for  any
              partition.   See  the  description  of  the cluster-level PreemptMode configuration
              parameter above for further information.

       Priority
              Jobs submitted to a higher priority partition will  be  dispatched  before  pending
              jobs  in  lower  priority partitions and if possible they will preempt running jobs
              from lower priority partitions.  Note that a partition's priority takes  precedence
              over a job's priority.  The value may not exceed 65533.

       ReqResv
              Specifies  users  of  this  partition  are required to designate a reservation when
              submitting a job. This option can be useful in restricting  usage  of  a  partition
              that  may  have higher priority or additional resources to be allowed only within a
              reservation.  Possible values are "YES" and "NO".  The default value is "NO".

       RootOnly
              Specifies if only user ID zero (i.e. user root)  may  allocate  resources  in  this
              partition.  User  root  may  allocate resources for any other user, but the request
              must be initiated by user root.  This option can be useful for a  partition  to  be
              managed  by  some  external  entity  (e.g. a higher-level job manager) and prevents
              users from directly using those resources.  Possible values  are  "YES"  and  "NO".
              The default value is "NO".

       SelectTypeParameters
              Partition-specific  resource  allocation  type.   Supported  values are CR_Core and
              CR_Socket.  Use requires the system-wide SelectTypeParameters  value  be  set  plus
              CR_ALLOCATE_FULL_SOCKET.

       Shared Controls  the  ability  of  the partition to execute more than one job at a time on
              each   resource   (node,   socket   or   core   depending   upon   the   value   of
              SelectTypeParameters).    If   resources   are   to   be  shared,  avoiding  memory
              over-subscription is very important.  SelectTypeParameters should be configured  to
              treat  memory  as a consumable resource and the --mem option should be used for job
              allocations.  Sharing of  resources  is  typically  useful  only  when  using  gang
              scheduling  (PreemptMode=suspend  or PreemptMode=kill).  Possible values for Shared
              are "EXCLUSIVE", "FORCE", "YES", and "NO".  Note that a value of "YES"  or  "FORCE"
              can  negatively impact performance for systems with many thousands of running jobs.
              The default value is "NO".  For more information see the following web pages:
              http://slurm.schedmd.com/cons_res.html,
              http://slurm.schedmd.com/cons_res_share.html,
              http://slurm.schedmd.com/gang_scheduling.html, and
              http://slurm.schedmd.com/preempt.html.

              EXCLUSIVE   Allocates entire nodes to jobs even  with  select/cons_res  configured.
                          Jobs that run in partitions with "Shared=EXCLUSIVE" will have exclusive
                          access to all allocated nodes.

              FORCE       Makes all resources in the partition available for sharing without  any
                          means  for  users  to  disable  it.   May  be followed with a colon and
                          maximum number of jobs in running  or  suspended  state.   For  example
                          "Shared=FORCE:4"  enables  each  node,  socket or core to execute up to
                          four jobs at once.  Recommended only for  BlueGene  systems  configured
                          with   small  blocks  or  for  systems  running  with  gang  scheduling
                          (SchedulerType=sched/gang).

              YES         Makes all resources in the partition available for sharing upon request
                          by  the  job.   Resources  will only be over-subscribed when explicitly
                          requested by the user using the "--share"  option  on  job  submission.
                          May  be  followed with a colon and maximum number of jobs in running or
                          suspended state.  For example "Shared=YES:4" enables each node,  socket
                          or  core  to  execute  up  to  four jobs at once.  Recommended only for
                          systems running with gang scheduling (SchedulerType=sched/gang).

              NO          Selected resources are allocated to a single job. No resource  will  be
                          allocated to more than one job.

       State  State  of  partition  or  availability  for use.  Possible values are "UP", "DOWN",
              "DRAIN"  and  "INACTIVE".  The  default  value  is  "UP".   See  also  the  related
              "Alternate" keyword.

              UP        Designates  that  new jobs may queued on the partition, and that jobs may
                        be allocated nodes and run from the partition.

              DOWN      Designates that new jobs may be queued on the partition, but queued  jobs
                        may  not  be  allocated  nodes  and  run from the partition. Jobs already
                        running on the partition continue to run. The  jobs  must  be  explicitly
                        canceled to force their termination.

              DRAIN     Designates  that  no  new  jobs  may  be  queued  on  the  partition (job
                        submission requests will be denied  with  an  error  message),  but  jobs
                        already queued on the partition may be allocated nodes and run.  See also
                        the "Alternate" partition specification.

              INACTIVE  Designates that no new jobs may be queued  on  the  partition,  and  jobs
                        already  queued  may  not  be  allocated  nodes  and  run.   See also the
                        "Alternate" partition specification.

Prolog and Epilog Scripts

       There are a variety of prolog  and  epilog  program  options  that  execute  with  various
       permissions and at various times.  The four options most likely to be used are: Prolog and
       Epilog (executed once on  each  compute  node  for  each  job)  plus  PrologSlurmctld  and
       EpilogSlurmctld (executed once on the ControlMachine for each job).

       NOTE:   Standard  output  and error messages are normally not preserved.  Explicitly write
       output and error messages to  an  appropriate  location  if  you  wish  to  preserve  that
       information.

       NOTE:   The Prolog script is ONLY run on any individual node when it first sees a job step
       from a new allocation; it does not run  the  Prolog  immediately  when  an  allocation  is
       granted.   If  no  job  steps  from an allocation are run on a node, it will never run the
       Prolog for that allocation.  The Epilog, on the other hand, always runs on every  node  of
       an allocation when the allocation is released.

       If the Epilog fails (returns a non-zero exit code), this will result in the node being set
       to a DOWN state.  If the EpilogSlurmctld fails (returns a non-zero exit code),  this  will
       only  be  logged.  If the Prolog fails (returns a non-zero exit code), this will result in
       the node being set to a DOWN state and the job requeued to executed on another  node.   If
       the  PrologSlurmctld  fails  (returns  a  non-zero exit code), this will result in the job
       requeued to executed on another node  if  possible.  Only  batch  jobs  can  be  requeued.
       Interactive jobs (salloc and srun) will be cancelled if the PrologSlurmctld fails.

       Information  about  the  job  is passed to the script using environment variables.  Unless
       otherwise specified, these environment variables are available to all of the programs.

       BASIL_RESERVATION_ID
              Basil reservation ID.  Available on Cray XT/XE systems only.

       MPIRUN_PARTITION
              BlueGene partition name.  Available on BlueGene systems only.

       SLURM_JOB_ACCOUNT
              Account name used for the job.  Available in  PrologSlurmctld  and  EpilogSlurmctld
              only.

       SLURM_JOB_CONSTRAINTS
              Features required to run the job.  Available in PrologSlurmctld and EpilogSlurmctld
              only.

       SLURM_JOB_DERIVED_EC
              The highest exit code of all of the job steps.  Available in EpilogSlurmctld only.

       SLURM_JOB_EXIT_CODE
              The exit code of the job script (or salloc).  Available in EpilogSlurmctld only.

       SLURM_JOB_GID
              Group ID of the job's owner.   Available  in  PrologSlurmctld  and  EpilogSlurmctld
              only.

       SLURM_JOB_GROUP
              Group  name  of  the job's owner.  Available in PrologSlurmctld and EpilogSlurmctld
              only.

       SLURM_JOB_ID
              Job ID.

       SLURM_JOB_NAME
              Name of the job.  Available in PrologSlurmctld and EpilogSlurmctld only.

       SLURM_JOB_NODELIST
              Nodes assigned to job. A SLURM hostlist expression.  "scontrol show hostnames"  can
              be  used  to  convert  this  to  a  list  of  individual  host names.  Available in
              PrologSlurmctld and EpilogSlurmctld only.

       SLURM_JOB_PARTITION
              Partition that job runs in.  Available in PrologSlurmctld and EpilogSlurmctld only.

       SLURM_JOB_UID
              User ID of the job's owner.

       SLURM_JOB_USER
              User name of the job's owner.

NETWORK TOPOLOGY

       SLURM is able to optimize job allocations to minimize network contention.   Special  SLURM
       logic  is  used  to  optimize allocations on systems with a three-dimensional interconnect
       (BlueGene, Sun Constellation, etc.)  and information about configuring those  systems  are
       available  on  web  pages available here: <http://slurm.schedmd.com/>.  For a hierarchical
       network, SLURM needs to have detailed information about how nodes are  configured  on  the
       network switches.

       Given network topology information, SLURM allocates all of a job's resources onto a single
       leaf of the network (if possible) using a best-fit algorithm.  Otherwise it will  allocate
       a  job's  resources  onto multiple leaf switches so as to minimize the use of higher-level
       switches.  The TopologyPlugin parameter controls which plugin is used to  collect  network
       topology  information.   The  only  values  presently  supported  are  "topology/3d_torus"
       (default for IBM BlueGene, Sun Constellation and Cray  XT/XE  systems,  performs  best-fit
       logic  over  three-dimensional  topology),  "topology/none"  (default  for  other systems,
       best-fit logic over one-dimensional  topology),  "topology/tree"  (determine  the  network
       topology based upon information contained in a topology.conf file, see "man topology.conf"
       for more information).  Future plugins may gather topology information directly  from  the
       network.   The  topology  information  is optional.  If not provided, SLURM will perform a
       best-fit algorithm assuming the nodes are in a one-dimensional array as configured and the
       communications cost is related to the node distance in this array.

RELOCATING CONTROLLERS

       If  the  cluster's  computers  used  for  the  primary or backup controller will be out of
       service for an extended period of time, it may be desirable to relocate them.  In order to
       do so, follow this procedure:

       1. Stop the SLURM daemons
       2. Modify the slurm.conf file appropriately
       3. Distribute the updated slurm.conf file to all nodes
       4. Restart the SLURM daemons

       There  should  be  no loss of any running or pending jobs.  Insure that any nodes added to
       the cluster have the current slurm.conf file installed.

       CAUTION: If two nodes are simultaneously configured as the primary controller  (two  nodes
       on  which  ControlMachine  specify the local host and the slurmctld daemon is executing on
       each), system  behavior  will  be  destructive.   If  a  compute  node  has  an  incorrect
       ControlMachine  or  BackupController parameter, that node may be rendered unusable, but no
       other harm will result.

EXAMPLE

       #
       # Sample /etc/slurm.conf for dev[0-25].llnl.gov
       # Author: John Doe
       # Date: 11/06/2001
       #
       ControlMachine=dev0
       ControlAddr=edev0
       BackupController=dev1
       BackupAddr=edev1
       #
       AuthType=auth/munge
       Epilog=/usr/local/slurm/epilog
       Prolog=/usr/local/slurm/prolog
       FastSchedule=1
       FirstJobId=65536
       InactiveLimit=120
       JobCompType=jobcomp/filetxt
       JobCompLoc=/var/log/slurm/jobcomp
       KillWait=30
       MaxJobCount=10000
       MinJobAge=3600
       PluginDir=/usr/local/lib:/usr/local/slurm/lib
       ReturnToService=0
       SchedulerType=sched/backfill
       SlurmctldLogFile=/var/log/slurm/slurmctld.log
       SlurmdLogFile=/var/log/slurm/slurmd.log
       SlurmctldPort=7002
       SlurmdPort=7003
       SlurmdSpoolDir=/usr/local/slurm/slurmd.spool
       StateSaveLocation=/usr/local/slurm/slurm.state
       SwitchType=switch/elan
       TmpFS=/tmp
       WaitTime=30
       JobCredentialPrivateKey=/usr/local/slurm/private.key
       JobCredentialPublicCertificate=/usr/local/slurm/public.cert
       #
       # Node Configurations
       #
       NodeName=DEFAULT CPUs=2 RealMemory=2000 TmpDisk=64000
       NodeName=DEFAULT State=UNKNOWN
       NodeName=dev[0-25] NodeAddr=edev[0-25] Weight=16
       # Update records for specific DOWN nodes
       DownNodes=dev20 State=DOWN Reason="power,ETA=Dec25"
       #
       # Partition Configurations
       #
       PartitionName=DEFAULT MaxTime=30 MaxNodes=10 State=UP
       PartitionName=debug Nodes=dev[0-8,18-25] Default=YES
       PartitionName=batch Nodes=dev[9-17]  MinNodes=4
       PartitionName=long Nodes=dev[9-17] MaxTime=120 AllowGroups=admin

FILE AND DIRECTORY PERMISSIONS

       There are three classes of files: Files used by  slurmctld  must  be  accessible  by  user
       SlurmUser and accessible by the primary and backup control machines.  Files used by slurmd
       must be accessible by user root and accessible from every compute node.  A few files  need
       to  be  accessible  by  normal users on all login and compute nodes.  While many files and
       directories are listed below, most of them will not be used with most configurations.

       AccountingStorageLoc
              If this specifies a file, it must be writable by user SlurmUser.  The file must  be
              accessible  by the primary and backup control machines.  It is recommended that the
              file be readable by all users from login and compute nodes.

       Epilog Must be executable by user root.  It is recommended that the file  be  readable  by
              all users.  The file must exist on every compute node.

       EpilogSlurmctld
              Must  be executable by user SlurmUser.  It is recommended that the file be readable
              by all users.  The file must be  accessible  by  the  primary  and  backup  control
              machines.

       HealthCheckProgram
              Must  be  executable  by user root.  It is recommended that the file be readable by
              all users.  The file must exist on every compute node.

       JobCheckpointDir
              Must be writable by user SlurmUser and no other users.  The file must be accessible
              by the primary and backup control machines.

       JobCompLoc
              If  this specifies a file, it must be writable by user SlurmUser.  The file must be
              accessible by the primary and backup control machines.

       JobCredentialPrivateKey
              Must be readable only by user SlurmUser and writable by no other users.   The  file
              must be accessible by the primary and backup control machines.

       JobCredentialPublicCertificate
              Readable to all users on all nodes.  Must not be writable by regular users.

       MailProg
              Must  be executable by user SlurmUser.  Must not be writable by regular users.  The
              file must be accessible by the primary and backup control machines.

       Prolog Must be executable by user root.  It is recommended that the file  be  readable  by
              all users.  The file must exist on every compute node.

       PrologSlurmctld
              Must  be executable by user SlurmUser.  It is recommended that the file be readable
              by all users.  The file must be  accessible  by  the  primary  and  backup  control
              machines.

       ResumeProgram
              Must  be  executable by user SlurmUser.  The file must be accessible by the primary
              and backup control machines.

       SallocDefaultCommand
              Must be executable by all users.  The file must exist on every  login  and  compute
              node.

       slurm.conf
              Readable to all users on all nodes.  Must not be writable by regular users.

       SlurmctldLogFile
              Must be writable by user SlurmUser.  The file must be accessible by the primary and
              backup control machines.

       SlurmctldPidFile
              Must be writable by user root.  Preferably writable  and  removable  by  SlurmUser.
              The file must be accessible by the primary and backup control machines.

       SlurmdLogFile
              Must be writable by user root.  A distinct file must exist on each compute node.

       SlurmdPidFile
              Must be writable by user root.  A distinct file must exist on each compute node.

       SlurmdSpoolDir
              Must be writable by user root.  A distinct file must exist on each compute node.

       SrunEpilog
              Must  be  executable  by all users.  The file must exist on every login and compute
              node.

       SrunProlog
              Must be executable by all users.  The file must exist on every  login  and  compute
              node.

       StateSaveLocation
              Must be writable by user SlurmUser.  The file must be accessible by the primary and
              backup control machines.

       SuspendProgram
              Must be executable by user SlurmUser.  The file must be accessible by  the  primary
              and backup control machines.

       TaskEpilog
              Must be executable by all users.  The file must exist on every compute node.

       TaskProlog
              Must be executable by all users.  The file must exist on every compute node.

       UnkillableStepProgram
              Must  be  executable by user SlurmUser.  The file must be accessible by the primary
              and backup control machines.

LOGGING

       Note that while SLURM daemons create log files and other files as needed,  it  treats  the
       lack  of  parent  directories as a fatal error.  This prevents the daemons from running if
       critical file systems are  not  mounted  and  will  minimize  the  risk  of  cold-starting
       (starting without preserving jobs).

       Log files and job accounting files, may need to be created/owned by the "SlurmUser" uid to
       be successfully accessed.  Use the "chown" and "chmod" commands to set the  ownership  and
       permissions appropriately.  See the section FILE AND DIRECTORY PERMISSIONS for information
       about the various files and directories used by SLURM.

       It is recommended that the logrotate utility be used to insure that various log  files  do
       not  become  too  large.   This  also  applies  to text files used for accounting, process
       tracking, and the slurmdbd log if they are used.

       Here is a sample logrotate configuration. Make appropriate site modifications and save  as
       /etc/logrotate.d/slurm on all nodes.  See the logrotate man page for more details.

       ##
       # SLURM Logrotate Configuration
       ##
       /var/log/slurm/*log {
           compress
           missingok
           nocopytruncate
           nocreate
           nodelaycompress
           nomail
           notifempty
           noolddir
           rotate 5
           sharedscripts
           size=5M
           create 640 slurm root
           postrotate
            /etc/init.d/slurm reconfig
           endscript
       }

COPYING

       Copyright (C) 2002-2007 The Regents of the University of California.  Produced at Lawrence
       Livermore National Laboratory (cf, DISCLAIMER).
       Copyright (C) 2008-2010 Lawrence Livermore National Security.
       Copyright (C) 2010-2013 SchedMD LLC.

       This  file  is  part  of  SLURM,  a  resource  management  program.   For   details,   see
       <http://slurm.schedmd.com/>.

       SLURM  is  free  software; you can redistribute it and/or modify it under the terms of the
       GNU General Public License as published by the Free Software Foundation; either version  2
       of the License, or (at your option) any later version.

       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.

FILES

       /etc/slurm.conf

SEE ALSO

       bluegene.conf(5),  cgroup.conf(5),  gethostbyname  (3), getrlimit (2), gres.conf(5), group
       (5), hostname (1), scontrol(1), slurmctld(8),  slurmd(8),  slurmdbd(8),  slurmdbd.conf(5),
       srun(1), spank(8), syslog (2), topology.conf(5), wiki.conf(5)