cgroup.conf(5)

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.

   CgroupAutomount=<yes|no>
          Slurm   cgroup  plugins  require  valid  and  functional  cgroup
          subsystem to be mounted  under  /sys/fs/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.

   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 /sys/fs/cgroup.

   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:

   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/cgroup_allowed_devices_file.conf.example.

   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.

   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".

   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".

   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.

   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".   Note: This
          feature requires the Portable Hardware Locality (hwloc)  library
          to be installed.

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-2015 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)



Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.


Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.


Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.