cgroup.conf - Slurm configuration file for the cgroup support
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.
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.
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.
### # Slurm cgroup support configuration file ### CgroupAutomount=yes CgroupReleaseAgentDir="/etc/slurm/cgroup" ConstrainCores=yes #
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.
slurm.conf(5)
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 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.
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.
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.