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

NAME

       cgroup.conf - Slurm configuration file for the cgroup support

DESCRIPTION

       cgroup.conf is an ASCII file which defines parameters used by Slurm's Linux cgroup related
       plugins.   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 file will always be located in the same directory as the slurm.conf file.

       Parameter names are case insensitive.  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.

       For    general    Slurm    Cgroups    information,    see    the    Cgroups    Guide    at
       <http://slurm.schedmd.com/cgroups.html>.

       The following cgroup.conf parameters are defined to control the general behavior of  Slurm
       cgroup plugins.

       CgroupMountpoint=PATH
              Specify  the  PATH under which cgroups should be mounted. This should be a writable
              directory which will contain cgroups mounted one per subsystem. The default PATH is
              /cgroup.

       CgroupAutomount=<yes|no>
              Slurm  cgroup  plugins  require valid and functional cgroup subsystem to be mounted
              under /cgroup/<subsystem_name>.   When  launched,  plugins  check  their  subsystem
              availability.  If  not available, the plugin launch fails unless CgroupAutomount is
              set to yes. In that  case,  the  plugin  will  first  try  to  mount  the  required
              subsystems.

       CgroupReleaseAgentDir=<path_to_release_agent_directory>
              Used  to tune the cgroup system behavior. This parameter identifies the location of
              the directory containing Slurm cgroup release_agent files.

TASK/CGROUP PLUGIN

       The following  cgroup.conf  parameters  are  defined  to  control  the  behavior  of  this
       particular plugin:

       ConstrainCores=<yes|no>
              If  configured  to  "yes"  then  constrain allowed cores to the subset of allocated
              resources. It uses the cpuset subsystem.  The default value is "no".

       TaskAffinity=<yes|no>
              If configured to "yes" then set a default task affinity to bind each step task to a
              subset of the allocated cores using sched_setaffinity.  The default value is "no".

       AllowedRAMSpace=<number>
              Constrain  the  job  cgroup  RAM  to  this percentage of the allocated memory.  The
              percentage supplied may be expressed as floating point number, e.g.  98.5.  If  the
              AllowedRAMSpace  limit  is  exceeded,  the  job  steps will be killed and a warning
              message will be written  to  standard  error.   Also  see  ConstrainRAMSpace.   The
              default value is 100.

       AllowedSwapSpace=<number>
              Constrain  the  job  cgroup  swap space to this percentage of the allocated memory.
              The  default  value  is  0,  which  means  that  RAM+Swap  will   be   limited   to
              AllowedRAMSpace.  The  supplied  percentage  may  be  expressed as a floating point
              number, e.g. 50.5.  If the limit is exceeded, the job steps will be  killed  and  a
              warning message will be written to standard error.  Also see ConstrainSwapSpace.

       ConstrainRAMSpace=<yes|no>
              If  configured  to  "yes" then constrain the job's RAM usage.  The default value is
              "no", in which case the job's RAM limit will be set to its swap space limit.   Also
              see AllowedSwapSpace, AllowedRAMSpace and ConstrainSwapSpace.

       ConstrainSwapSpace=<yes|no>
              If  configured  to  "yes"  then  constrain the job's swap space usage.  The default
              value is "no". Note that when set to "yes" and ConstrainRAMSpace is  set  to  "no",
              AllowedRAMSpace  is automatically set to 100% in order to limit the RAM+Swap amount
              to 100% of job's requirement plus the percent of allowed swap space. This amount is
              thus  set to both RAM and RAM+Swap limits. This means that in that particular case,
              ConstrainRAMSpace is automatically enabled with the same limit than the one used to
              constrain swap space.  Also see AllowedSwapSpace.

       MaxRAMPercent=PERCENT
              Set  an  upper bound in percent of total RAM on the RAM constraint for a job.  This
              will be the memory constraint applied to jobs that  are  not  explicitly  allocated
              memory  by  Slurm  (i.e.  Slurm's  select plugin is not configured to manage memory
              allocations). The PERCENT may be an arbitrary floating point  number.  The  default
              value is 100.

       MaxSwapPercent=PERCENT
              Set  an upper bound (in percent of total RAM) on the amount of RAM+Swap that may be
              used for a job. This will be the swap limit applied to jobs on systems where memory
              is  not being explicitly allocated to job. The PERCENT may be an arbitrary floating
              point number between 0 and 100.  The default value is 100.

       MinRAMSpace=<number>
              Set a lower bound (in MB) on the  memory  limits  defined  by  AllowedRAMSpace  and
              AllowedSwapSpace.  This  prevents accidentally creating a memory cgroup with such a
              low limit that slurmstepd is immediately killed due to lack  of  RAM.  The  default
              limit is 30M.

       ConstrainDevices=<yes|no>
              If  configured  to  "yes"  then  constrain  the job's allowed devices based on GRES
              allocated resources. It uses the devices subsystem for that.  The default value  is
              "no".

       AllowedDevicesFile=<path_to_allowed_devices_file>
              If  the  ConstrainDevices  field  is  set to "yes" then this file has to be used to
              declare the devices that need to be allowed  by  default  for  all  the  jobs.  The
              current implementation of cgroup devices subsystem works as a whitelist of entries,
              which means that in order to isolate the access of a job upon particular devices we
              need  to allow the access on all the devices, supported by default and then deny on
              those that the job does not have the  permission  to  use.  The  default  value  is
              "/etc/slurm/cgroup_allowed_devices_file.conf".  The  syntax of the file accepts one
              device per line and it permits lines like /dev/sda* or /dev/cpu/*/*.  See  also  an
              example of this file in etc/allowed_devices_file.conf.example.

DISTRIBUTION-SPECIFIC NOTES

       Debian  and  derivatives (e.g. Ubuntu) usually exclude the memory and memsw (swap) cgroups
       by default. To include them, add the following parameters  to  the  kernel  command  line:
       cgroup_enable=memory swapaccount=1

       This  can usually be placed in /etc/default/grub inside the GRUB_CMDLINE_LINUX variable. A
       command such as update-grub must be run after updating the file.

EXAMPLE

       ###
       # Slurm cgroup support configuration file
       ###
       CgroupAutomount=yes
       CgroupReleaseAgentDir="/etc/slurm/cgroup"
       ConstrainCores=yes
       #

COPYING

       Copyright (C) 2010-2012  Lawrence  Livermore  National  Security.   Produced  at  Lawrence
       Livermore National Laboratory (cf, DISCLAIMER).
       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.

SEE ALSO

       slurm.conf(5)