<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://biohpc.deib.polimi.it/index.php?action=history&amp;feed=atom&amp;title=SLURM-BAK</id>
	<title>SLURM-BAK - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://biohpc.deib.polimi.it/index.php?action=history&amp;feed=atom&amp;title=SLURM-BAK"/>
	<link rel="alternate" type="text/html" href="https://biohpc.deib.polimi.it/index.php?title=SLURM-BAK&amp;action=history"/>
	<updated>2026-05-10T01:50:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://biohpc.deib.polimi.it/index.php?title=SLURM-BAK&amp;diff=1634&amp;oldid=prev</id>
		<title>GiulioFontana: Created page with &quot;This page presents the features of SLURM that are most relevant to Mufasa&#039;s Job Users. Job Users can submit jobs for execution, cancel their own jobs, and see other...&quot;</title>
		<link rel="alternate" type="text/html" href="https://biohpc.deib.polimi.it/index.php?title=SLURM-BAK&amp;diff=1634&amp;oldid=prev"/>
		<updated>2025-11-04T14:51:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page presents the features of SLURM that are most relevant to Mufasa&amp;#039;s &lt;a href=&quot;/index.php?title=Roles&quot; title=&quot;Roles&quot;&gt;Job Users&lt;/a&gt;. Job Users can submit jobs for execution, cancel their own jobs, and see other...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page presents the features of SLURM that are most relevant to Mufasa&amp;#039;s [[Roles|Job Users]]. Job Users can submit jobs for execution, cancel their own jobs, and see other users&amp;#039; jobs (but not intervene on them).&lt;br /&gt;
&lt;br /&gt;
Users of Mufasa &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; use SLURM to run resource-heavy processes, i.e. computing jobs that require any of the following:&lt;br /&gt;
* GPUs&lt;br /&gt;
* multiple CPUs&lt;br /&gt;
* a significant amount of RAM.&lt;br /&gt;
&lt;br /&gt;
In fact, only processes run via SLURM have access to all the resources of Mufasa. Processes run outside SLURM are executed by the [[System#Bastion server|bastion server]] virtual machine, which has minimal resources and no GPUs. Using SLURM is therefore the only way to execute resource-heavy jobs on Mufasa (this is a key difference between Mufasa 1.0 and Mufasa 2.0).&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;SLURM in a nutshell (and general usage rules)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Computation jobs on Mufasa needs to be launched via [[System#The SLURM job scheduling system|SLURM]]. SLURM provides jobs with access to the [[#System resources subjected to limitations|physical resources]] of Mufasa, such as CPUs, GPUs and RAM. Thanks to SLURM, processing jobs share system resources, optimising their occupation and availability. &lt;br /&gt;
&lt;br /&gt;
When a user runs a job, the job does not get executed immediately and is instead &amp;#039;&amp;#039;queued&amp;#039;&amp;#039;. SLURM executes jobs according to their order in the queue: the top job in the queue gets executed as soon as the necessary resources are available, while jobs lower in the queue wait longer. The position of a job in the queue is due to the &amp;#039;&amp;#039;&amp;#039;[[#Job priority|priority]]&amp;#039;&amp;#039;&amp;#039; assigned to it by SLURM, with higher-priority jobs closer to the top. As a general rule,&lt;br /&gt;
;: &amp;#039;&amp;#039;&amp;#039;The greater the fraction of Mufasa&amp;#039;s overall resources that a job asks for, the lower its priority&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;time&amp;#039;&amp;#039; available to a job for its execution is controlled by SLURM. When a user requests execution of a job, they must specify the duration of the time slot that the job needs. The job must complete its execution before the end of the requested time slot, otherwise it gets killed by SLURM.&lt;br /&gt;
&lt;br /&gt;
To access system resources, user jobs make use of &amp;#039;&amp;#039;&amp;#039;[[#SLURM partitions|SLURM&amp;#039;s partitions]]&amp;#039;&amp;#039;&amp;#039;. A partition is basically a job queue providing access to a specified set of resources. Partitions differ in the set of resources that they provide access to because each of them is designed to fit a given type of job. The partition that a job is run on defines the maximum amount of each resource (e.g., RAM) that the job can request; also, the chosen partition defines the maximum &amp;#039;&amp;#039;execution time&amp;#039;&amp;#039; that the job can ask for. &lt;br /&gt;
&lt;br /&gt;
When a user launches a job via SLURM, they specify the &amp;#039;&amp;#039;partition&amp;#039;&amp;#039; on which the job must be run, the &amp;#039;&amp;#039;resources&amp;#039;&amp;#039; that the job needs for its execution (e.g., GPUs), and the &amp;#039;&amp;#039;execution time&amp;#039;&amp;#039; of the job. All these requests must be compatible with the limits associated to the chosen partition. When SLURM executes a job, SLURM reserves the resources requested by the job, for the time requested by the job, and gives the job exclusive access to the reserved resources. &lt;br /&gt;
Partitions can define a &amp;#039;&amp;#039;default amount&amp;#039;&amp;#039; for a resource: jobs run on the partion that do not specify how much of that resource they request are assigned the default amount (which may be zero).&lt;br /&gt;
&lt;br /&gt;
The partition on which a job is run influences the priority of the job. Partitions with less available resources are associated to higher priorities than &amp;quot;more powerful&amp;quot; partitions. Also, jobs requesting less than the maximum amount of resources or time allowed by the partition they are run on get a higher priority than jobs that ask for the maximum. Therefore, as a rule,&lt;br /&gt;
;:&amp;#039;&amp;#039;&amp;#039;A job should be run on the least powerful partition compatible with its needs&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
When a job asks for less than the maximum amount of resources and/or time allowed by the partition it is run on, it gets a higher priority compared with jobs asking for the maximum. So, as a rule,&lt;br /&gt;
;:&amp;#039;&amp;#039;&amp;#039;A job should never ask for more resources, or a longer execution time, than necessary&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Job priority&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Once the execution of a job has been requested, the job is not run immediately: it is instead &amp;#039;&amp;#039;queued&amp;#039;&amp;#039; by SLURM, together with all the other jobs awaiting execution. The job on top of the queue at any time is the first to be put into execution as soon as the resources it requires are available. The order of the jobs in the queue depends on the &amp;#039;&amp;#039;&amp;#039;priority&amp;#039;&amp;#039;&amp;#039; of the jobs, and defines the order in which each job will reach execution.&lt;br /&gt;
&lt;br /&gt;
SLURM is configured to maximise resource availability, i.e. to ensure the shorter possible wait time before job execution. This goal is achieved by &amp;#039;&amp;#039;&amp;#039;encouraging users to avoid asking for resources or execution time that their job does not need&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
This mechanism creates a &amp;#039;&amp;#039;&amp;#039;virtuous cycle&amp;#039;&amp;#039;&amp;#039;. By carefully choosing what to ask for, a user ensures that their job will be executed as soon as possible; at the same time, users limiting their requests to what their jobs really need leave more resources available to other jobs in the queue, which will then be executed sooner.&lt;br /&gt;
&lt;br /&gt;
=== Elements influencing job priority ===&lt;br /&gt;
In Mufasa, the priority of a job is computed by SLURM according to the following elements:&lt;br /&gt;
&lt;br /&gt;
; Job duration, i.e. the execution time requested by the job&lt;br /&gt;
: This is used to assign higher priority to shorter jobs&lt;br /&gt;
&lt;br /&gt;
; Job size, i.e. the number of CPUs requested by the job&lt;br /&gt;
: This is used to assign higher priority to jobs requiring less CPUs.&lt;br /&gt;
&lt;br /&gt;
; Age, i.e. the length of time that the job has been waiting in the queue&lt;br /&gt;
: This is used to increase the priority of a job the longer it has been waiting for execution.&lt;br /&gt;
&lt;br /&gt;
; QOS (Quality Of Service), i.e. a factor associated to the resources requested by the job&lt;br /&gt;
: This is used to implement two different mechanisms that influence job priority, i.e.:&lt;br /&gt;
:: - to assign higher priority to jobs run on less powerful partitions&lt;br /&gt;
:: - to assign higher priority to jobs run by researchers (e.g., Ph.D. students) wrt jobs run by M.Sc. students&lt;br /&gt;
&lt;br /&gt;
QOS is also used to set limits to the number of jobs by the same user that can be in execution at a given time, as well as the number of jobs by the same user that can be queued at a given time.&lt;br /&gt;
It is possible to get a list of the QOS that are defined in SLURM with command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
sacctmgr list qos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= System resources subjected to limitations =&lt;br /&gt;
&lt;br /&gt;
The hardware resources of Mufasa are limited. For this reason, some of them are subjected to limitations, i.e. (these are SLURM&amp;#039;s own terms):&lt;br /&gt;
&lt;br /&gt;
; cpu&lt;br /&gt;
: the number of processor cores that a job uses&lt;br /&gt;
&lt;br /&gt;
; mem&lt;br /&gt;
: the amount of RAM that a job uses&lt;br /&gt;
&lt;br /&gt;
;gres&lt;br /&gt;
: the amount of &amp;#039;&amp;#039;generic resources&amp;#039;&amp;#039; that a job uses: in Mufasa, gres are &amp;#039;&amp;#039;&amp;#039;GPUs&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
These are some of the &amp;#039;&amp;#039;&amp;#039;TRES (Trackable RESources)&amp;#039;&amp;#039;&amp;#039; defined by SLURM. From [https://slurm.schedmd.com/tres.html SLURM&amp;#039;s documentation]: &amp;quot;&amp;#039;&amp;#039;A TRES is a resource that can be tracked for usage or used to enforce limits against.&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SLURM provides jobs with access to resources only for a limited time: i.e.,&lt;br /&gt;
; execution time&lt;br /&gt;
: is itself a limited resource.&lt;br /&gt;
&lt;br /&gt;
When a resource is limited, a job cannot use arbitrary quantities of it. On the contrary, the job must specify how much of the resource it requests. Resource requests are done either by running the job on a [[User Jobs#SLURM partitions|partition]] for which a default amount of resources has been defined, or via the options of the [[#Running_jobs_with_SLURM:_generalities|command]] used to launch the job via SLURM.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt; syntax ==&lt;br /&gt;
&lt;br /&gt;
Whenever it is necessary to specify the quantity of &amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt;, i.e. generic resources, a special syntax must be used. In Mufasa &amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt; resources are GPUs, so this syntax applies to GPUs. Number and type of Mufasa&amp;#039;s GPUs is described [[System#CPUs and GPUs|here]].&lt;br /&gt;
&lt;br /&gt;
The name of each GPU resource takes the form&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;Name:Type&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;Name&amp;lt;/code&amp;gt; is &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;gpu&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt; takes the following values &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;[to be updated]&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;40gb&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; for GPUs with 40 Gbytes of onboard RAM&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;20gb&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; for GPUs with 20 Gbytes of onboard RAM&lt;br /&gt;
&lt;br /&gt;
So, for instance,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gpu:20gb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
identifies the resource corresponding to GPUs with 20 GB of RAM.&lt;br /&gt;
&lt;br /&gt;
When asking for a &amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt; resource (e.g., in an &amp;lt;code&amp;gt;srun&amp;lt;/code&amp;gt; command or an &amp;lt;code&amp;gt;SBATCH&amp;lt;/code&amp;gt; directive of an [[User Jobs#Using execution scripts to run jobs|execution script]]), the syntax required by SLURM is&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&amp;lt;Name&amp;gt;:&amp;lt;Type&amp;gt;:&amp;lt;Quantity&amp;gt;&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;Quantity&amp;lt;/code&amp;gt; is an integer value specifying how many items of the resource are requested. So, for instance, to ask for 2 GPUs of type &amp;lt;code&amp;gt;20gb&amp;lt;/code&amp;gt; the syntax is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gpu:20gb:2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SLURM&amp;#039;s &amp;#039;&amp;#039;generic resources&amp;#039;&amp;#039; are defined in &amp;lt;code&amp;gt;/etc/slurm/gres.conf&amp;lt;/code&amp;gt;. In order to make GPUs available to SLURM&amp;#039;s &amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt; management, Mufasa makes use of Nvidia&amp;#039;s [https://developer.nvidia.com/nvidia-management-library-nvml NVML library]. For additional information see [https://slurm.schedmd.com/gres.html SLURM&amp;#039;s documentation].&lt;br /&gt;
&lt;br /&gt;
== Looking for unused GPUs ==&lt;br /&gt;
&lt;br /&gt;
GPUs are usually the most limited resource on Mufasa. So, if your job requires a GPU, the best way to get it executed quickly is to request a GPU that is not currently in use. This command&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
sinfo -O Gres:100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
provides a summary of all the Gres (i.e., GPU) resources possessed by Mufasa. It provides an output similar to the following &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;[to be updated]&amp;lt;/span&amp;gt;:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
GRES                                                                                                &lt;br /&gt;
gpu:40gb:2(S:0-1),gpu:20gb:3(S:0-1),gpu:10gb:6(S:0-1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To know which of the GPUs are currently in use, use command&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
sinfo -O GresUsed:100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
which provides an output similar to this:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
GRES_USED                                                                                           &lt;br /&gt;
gpu:40gb:2(IDX:0-1),gpu:20gb:2(IDX:5,8),gpu:10gb:3(IDX:3-4,6) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
By comparing the two lists (GRES and GRES_USED) in the examples above, you can see that in this example:&lt;br /&gt;
&lt;br /&gt;
* the system has 2 40 GB GPUs, all of which are in use&lt;br /&gt;
* the system has 3 20 GB GPUs, of which one is not in use&lt;br /&gt;
* the system has 6 10 GB GPUs, of which 3 are not in use&lt;br /&gt;
&lt;br /&gt;
= SLURM partitions =&lt;br /&gt;
&lt;br /&gt;
Execution queues for jobs in SLURM are called &amp;#039;&amp;#039;&amp;#039;partitions&amp;#039;&amp;#039;&amp;#039;. Each partition has features (in term of resources available to the jobs on that queue) that make the partition suitable for a certain category of jobs. SLURM command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
sinfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
([https://slurm.schedmd.com/sinfo.html link to SLURM docs]) provides a list of available partitions. Its output is similar to this &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;[to be updated]&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
PARTITION  AVAIL  TIMELIMIT  NODES  STATE NODELIST&lt;br /&gt;
debug*        up      20:00      1    mix gn01&lt;br /&gt;
small         up   12:00:00      1    mix gn01&lt;br /&gt;
normal        up 1-00:00:00      1    mix gn01&lt;br /&gt;
longnormal    up 3-00:00:00      1    mix gn01&lt;br /&gt;
gpu           up 1-00:00:00      1    mix gn01&lt;br /&gt;
gpulong       up 3-00:00:00      1    mix gn01&lt;br /&gt;
fat           up 3-00:00:00      1    mix gn01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, available partitions are named “debug”, “small”, “normal”, “longnormal”, “gpu”, “gpulong”, “fat”. The asterisk beside &amp;quot;debug&amp;quot; indicates that this is the default partition, i.e. the one that SLURM selects to run a job when no partition has been specified. On Mufasa, partition names have been chosen to reflect the type of job that they are dedicated to.&lt;br /&gt;
&lt;br /&gt;
The columns in the standard output of &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; shown above correspond to the following information:&lt;br /&gt;
&lt;br /&gt;
; PARTITION&lt;br /&gt;
: name of the partition&lt;br /&gt;
&lt;br /&gt;
; AVAIL&lt;br /&gt;
: state/availability of the partition: see [[User Jobs#Partition availability|below]]&lt;br /&gt;
&lt;br /&gt;
; TIMELIMIT&lt;br /&gt;
: maximum runtime of a job allowed by the partition, in format &amp;#039;&amp;#039;[days-]hours:minutes:seconds&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
; NODES&lt;br /&gt;
: number of nodes available to jobs run on the partition: for Mufasa, this is always 1 since [[System#The SLURM job scheduling system|there is only 1 node in the computing cluster]]&lt;br /&gt;
&lt;br /&gt;
; STATE&lt;br /&gt;
: state of the node (using [https://slurm.schedmd.com/sinfo.html#SECTION_NODE-STATE-CODES these codes]); typical values are &amp;lt;code&amp;gt;mixed&amp;lt;/code&amp;gt; - meaning that some of the resources of the node are busy executing jobs while other are free, and &amp;lt;code&amp;gt;allocated&amp;lt;/code&amp;gt; - meaning that all of the resources of the node are busy&lt;br /&gt;
&lt;br /&gt;
; NODELIST&lt;br /&gt;
: list of nodes available to the partition: for Mufasa this field always contains &amp;lt;code&amp;gt;gn01&amp;lt;/code&amp;gt; since [[System#The SLURM job scheduling system|Mufasa is the only node in the computing cluster]] &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;[to be updated]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For what concerns hardware resources (such as CPUs, GPUs and RAM) the amounts of each resource available to Mufasa&amp;#039;s partitions are set by SLURM&amp;#039;s accounting system, and are not visible to &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt;. See [[User Jobs#Partition features|Partition features]] for a description of these amounts.&lt;br /&gt;
&lt;br /&gt;
== Partition features ==&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;code&amp;gt;sinfo&amp;lt;/code&amp;gt; ([[User Jobs#SLURM partitions|see above]]) provides a list of available partitions, but (except for time) it does not provide information about the amount of resources that a partition makes available to the user jobs which are run on it. The amount of resources is visible through command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
sacctmgr list qos format=name%-10,maxwall,maxtres%-64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which provides an output similar to the following &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;[to be updated]&amp;lt;/span&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: lightgrey; background: black;&amp;quot;&amp;gt;&lt;br /&gt;
Name           MaxWall MaxTRES                                                          &lt;br /&gt;
---------- ----------- ---------------------------------------------------------------- &lt;br /&gt;
normal      1-00:00:00 cpu=16,gres/gpu:10gb=0,gres/gpu:20gb=0,gres/gpu:40gb=0,mem=128G  &lt;br /&gt;
small         12:00:00 cpu=2,gres/gpu:10gb=1,gres/gpu:20gb=0,gres/gpu:40gb=0,mem=16G    &lt;br /&gt;
longnormal  3-00:00:00 cpu=16,gres/gpu:10gb=0,gres/gpu:20gb=0,gres/gpu:40gb=0,mem=128G  &lt;br /&gt;
gpu         1-00:00:00 cpu=8,gres/gpu:10gb=2,gres/gpu:20gb=2,mem=64G                    &lt;br /&gt;
gpulong     3-00:00:00 cpu=8,gres/gpu:10gb=2,gres/gpu:20gb=2,mem=64G                    &lt;br /&gt;
fat         3-00:00:00 cpu=32,gres/gpu:10gb=2,gres/gpu:20gb=2,gres/gpu:40gb=2,mem=256G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its elements are the following (for more information, see [https://slurm.schedmd.com/qos.html SLURM&amp;#039;s documentation]):&lt;br /&gt;
&lt;br /&gt;
; Name&lt;br /&gt;
: name of the partition&lt;br /&gt;
&lt;br /&gt;
; MaxWall&lt;br /&gt;
: maximum wall clock duration of the jobs run on the partition (after which they are killed by SLURM), in format &amp;#039;&amp;#039;[days-]hours:minutes:seconds&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
; MaxTRES&lt;br /&gt;
: maximum amount of resources (&amp;quot;&amp;#039;&amp;#039;Trackable RESources&amp;#039;&amp;#039;&amp;quot;) available to a job running on the partition, where&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;cpu=&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; means that the maximum number of processor cores is &amp;#039;&amp;#039;K&amp;#039;&amp;#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;gres/&amp;#039;&amp;#039;gpu:Type&amp;#039;&amp;#039;=&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; means that the maximum number of GPUs of class &amp;lt;code&amp;gt;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; (see [[User Jobs#gres syntax|&amp;lt;code&amp;gt;gres&amp;lt;/code&amp;gt; syntax]]) is &amp;#039;&amp;#039;K&amp;#039;&amp;#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;mem=&amp;#039;&amp;#039;K&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt; means that the maximum amount of system RAM is &amp;#039;&amp;#039;K&amp;#039;&amp;#039; GBytes&lt;br /&gt;
&lt;br /&gt;
Note that there may be additional limits to the possibility to fully exploit the resources of a partition. For instance, there may be a cap on the maximum number of GPUs that can be used at the same time by a single job and/or a single user.&lt;br /&gt;
&lt;br /&gt;
=== Partitions of Mufasa 2.0 ===&lt;br /&gt;
&lt;br /&gt;
The features of the SLURM partitions of Mufasa 2.0 are the following:&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| Name of partition&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| example of use &lt;br /&gt;
!align=&amp;quot;center&amp;quot;| max running jobs per user&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| GPU configurations available to each job&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| GPUs that the partition has access to&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| max CPUs per job&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| max RAM per job [GB]&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| max wall clock time per job [h]&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| default resources assigned to jobs&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| allowed users&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| gpulight&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| debug code&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 4 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 64&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 6&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;to be specified&amp;lt;/span&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| researchers, students&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| nogpu&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| tasks not requiring GPUs (in particular: not AI)&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| -&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| none&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 16&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 128&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 72&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;to be specified&amp;lt;/span&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| researchers, students&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| gpu&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| AI: train an already debugged model&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 3 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 8&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 64&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 24&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;to be specified&amp;lt;/span&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| researchers, students&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| gpuwide&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| AI: search for optimal hyperparameter values&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 2&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 5 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 8&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 64&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 24&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;to be specified&amp;lt;/span&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| researchers, students&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot;| gpuheavy&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| AI: train an already optimised model&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 1 x 20 GB or 2 x 20 GB or 1 x 40 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 3 x 40 GB + 4 x 20 GB&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 8&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 128&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| 72&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;to be specified&amp;lt;/span&amp;gt;&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| researchers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Overall resources associated to the set of all partitions exceed overall available resources, as multiple partitions can be given access to the same resource (e.g., a CPU or a GPU). SLURM will only execute a job if all the resources requested by the job are not already in use at the time of request.&lt;br /&gt;
&lt;br /&gt;
== Partition availability ==&lt;br /&gt;
&lt;br /&gt;
An important information that &amp;#039;&amp;#039;sinfo&amp;#039;&amp;#039; provides (column &amp;quot;AVAIL&amp;quot;) is the &amp;#039;&amp;#039;availability&amp;#039;&amp;#039; (also called &amp;#039;&amp;#039;state&amp;#039;&amp;#039;) of partitions. Possible partition states are:&lt;br /&gt;
&lt;br /&gt;
; up = the partition is available&lt;br /&gt;
: Currently running jobs will be completed&lt;br /&gt;
: Currently queued jobs will be executed as soon as resources allow&lt;br /&gt;
&lt;br /&gt;
; drain = the partition is in the process of becoming unavailable (i.e., to go in the &amp;#039;&amp;#039;down&amp;#039;&amp;#039; state)&lt;br /&gt;
: Currently running jobs will be completed&lt;br /&gt;
: Queued jobs will be executed when the partition becomes available again (i.e. goes back to the &amp;#039;&amp;#039;up&amp;#039;&amp;#039; state)&lt;br /&gt;
&lt;br /&gt;
; down = the partition is unavailable&lt;br /&gt;
: There are no running jobs&lt;br /&gt;
: Queued jobs will be executed when the partition becomes available again (i.e. goes back to the &amp;#039;&amp;#039;up&amp;#039;&amp;#039; state)&lt;br /&gt;
&lt;br /&gt;
When a partition goes from &amp;#039;&amp;#039;up&amp;#039;&amp;#039; to &amp;#039;&amp;#039;drain&amp;#039;&amp;#039; no harm is done to running jobs. When a partition passes from any other state to &amp;#039;&amp;#039;down&amp;#039;&amp;#039;, running jobs (if they exist) get killed. A partition in state &amp;#039;&amp;#039;drain&amp;#039;&amp;#039; or &amp;#039;&amp;#039;down&amp;#039;&amp;#039; requires intervention by a [[Roles|Job Administrator]] to be restored to &amp;#039;&amp;#039;up&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>GiulioFontana</name></author>
	</entry>
</feed>