Differences between revisions 6 and 42 (spanning 36 versions)
Revision 6 as of 2024-01-26 15:32:36
Size: 359
Editor: stroth
Comment:
Revision 42 as of 2024-09-09 10:47:45
Size: 6936
Editor: stroth
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Services/SLURM-Snowfield
## page was renamed from Services/SLURM-Snowflake
= Slurm Student Course Cluster "Snowflake" =
<<TableOfContents(3)>>
Line 5: Line 3:
This is the landing page for the Slurm cluster '''Snowflake''', which will be available for official student courses at the beginning of the spring semester 2024. = Snowflake Slurm cluster =
The '''Snowflake''' Slurm cluster is availabe '''exclusively for official student courses'''.

The following information is an addendum to the main Slurm article in this wiki specific for usage of the Snowflake cluster. Consult the main Slurm article if the information you're looking for isn't available here:

 * [[Services/SLURM|Computing wiki main Slurm article]]
Line 8: Line 11:
Complete content will be ready in time. == Course information ==

=== Courses with access ===
The following table shows courses which are currently registered to access the Snowflake cluster:

||'''Institute/Group''' ||'''Lecturer''' ||'''Course''' ||'''No''' ||'''Semester'''||'''# Participants'''||
||[[https://www.mins.ee.ethz.ch/|MINS]]||M. Lerjen ||P&S: Software Defined Radio||227-0085-19P||HS || 20 ||
||[[https://tik.ethz.ch/|TIK]] ||R. Wattenhofer ||P&S: Hands-On Deep Learning||227-0085-59L||HS ||200 ||
 * '''No''': Details of courses are listed in the [[https://www.vorlesungen.ethz.ch/|ETH course catalogue]]

=== My course needs access ===
Course responsibles receive an reminder to request course accounts before the start of each semester. If your course needs access to the Snowflake cluster, add the following information to your request for course accounts:

 1. Whether course accounts need access to [[Services/StorageOverview|net_scratch or a ISG managed institute NAS]] (those are mutually exclusive)
 1. Whether a master account to provide course data to students is needed
 1. If your course accounts will start only ''interactive'' jobs (shell access to 1 GPU for up to 8h).<<BR>>
 Note: The default is to use mainly ''batch'' jobs (running submitted scripts for up to 24h) and few short ''interactive'' jobs (running up to 4 hours)

==== After successful request ====
 * Course coordinators will receive the list of course account passwords for distribution to course participants
 * Course coordinators are responsible to keep a list mapping course participant names to course accounts

== Cluster information ==

=== Access prerequisites ===
There are two requirements to access the cluster:
 * Access to a course account (handed out by course coordinators at the beginning of a course)
 * Access to a ISG managed PC, for example [[Workstations/ComputerRooms|Computer room PCs]] or the [[RemoteAccess#From_ETH_internal|D-ITET login node|&highlight=login.ee]]

=== Setting environment ===
The environment variable SLURM_CONF needs to be set to point to the configuration of the Snowflake cluster before running any Slurm command:
{{{#!highlight bash numbers=disable
export SLURM_CONF=/home/sladmsnow/slurm/slurm.conf
}}}

=== Hardware ===
The nodes in the cluster have the following setup:
||'''Node name''' ||'''CPU''' ||'''Frequency'''||'''Physical cores'''||'''Logical processors'''||'''Memory'''||'''/scratch SSD'''||'''/scratch Size'''||'''GPUs'''||'''Operating System'''||
||snowflake[01-nn]||Intel Xeon Gold 6240||2.60 GHz ||36 ||36 ||376 GB ||✓ ||1.8 TB ||8 !GeForce RTX 2080 Ti (11 GB)||Debian 11||

=== Partitions ===
Nodes are members of the following partitions, which serve to channel different job requirements to dedicated resources:
||'''Name''' ||'''Job type''' ||'''Job runtime'''||
||gpu.normal ||batch/interactive jobs || 24/4h ||
||gpu.interactive||interactive jobs only || 8h ||

 * See how to [[Services/SLURM#sinfo_.2BIZI_Show_partition_configuration|show partition configuration]]
 * Occasional interactive jobs in `gpu.normal` are allowed, but runtime is capped at 4 hours

=== Job submission ===
Running a script in the cluster (Job type ''batch'') or starting an interactive shell (Job type ''interactive'') on a cluster node requires a so-called job submission initiated with a Slurm command. The simplest use of these commands is the following:
 * `sbatch job_script.sh`<<BR>> More details for [[Services/SLURM#sbatch_.2BIZI_Submitting_a_job|sbatch]]
 * `srun --pty bash -i`<<BR>> More details for [[Services/SLURM#srun_.2BIZI_Start_an_interactive_shell|srun]]<<BR>>If you only need a short interactive job, specify the amount of minutes needed by adding the parameter `--time=10` (10 minutes):<<BR>>`srun --time=10 --pty bash -i`
 * A useful exercise is to integrate the [[FAQ/JupyterNotebook#Example_of_a_minimal_setup_with_micromamba|example to run a Jupyter notebook]] into a job script.

When used in this simple form, the following default resource allocations are used:
 * 1 GPU per Job
 * 4 CPUs (per GPU)
 * 40 GB Memory (per GPU)
The simplest change would be to request 1 additional GPU, which would then allocate 8 CPUs and 80 GB of Memory. Details how to request resources different from defaults listed in the [[Services/SLURM#sbatch_.2BIZI_Common_options|main Slurm article]].

=== Fair share ===
 * ''gpu.normal'' is availabe to all courses
 * ''gpu.interactive'' is available only when booked by a course (indicated by membership in Slurm account ''interactive'')
 * Resources are shared fairly based on usage
 * Usage accounting is reset on a weekly basis

=== Slurm account information ===
''Slurm accounts'' exist only within Slurm. They serve as groups to allow inheritance of attributes to members. Members are D-ITET accounts, referred to here as ''course accounts''.<<BR>>
The following commands show how to display account information for Slurm:

==== Show all Slurm accounts ====
{{{#!highlight bash numbers=disable
sacctmgr show accounts Format=Account%-15,Description%-25,Organization%-15
}}}

==== Show all course accounts with Slurm account membership ====
{{{#!highlight bash numbers=disable
sacctmgr show users WithAssoc Format=User%-15,DefaultAccount%-15,Account%-15
}}}

==== Show all Slurm accounts with course account members ====
{{{#!highlight bash numbers=disable
sacctmgr show accounts WithAssoc Format=Account%-15,Description%-25,Organization%-16,User%-15
}}}

=== Resource availability ===
==== Reservations ====
Cluster resources may be [[Services/SLURM#Reservations|reserved]] at certain times for specific courses. Details about [[Services/SLURM#Showing_current_reservations|showing reservations]] and submitting jobs during reservations using the [[Services/SLURM#srun_.2BIZI_Start_an_interactive_shell|--time|&highlight=--time]] option is available in the main Slurm article.

==== GPU availability ====
The [[Services/SLURM#smon_.2BIZI_GPU_.2F_CPU_availability|examples to show resource availabilities]] in the main Slurm article can be used for the Snowflake cluster as well by using the Slurm configuration account name ''sladmsnow'' instead of ''sladmitet'', thus using the file `/home/sladmsnow/smon.txt`.

Snowflake Slurm cluster

The Snowflake Slurm cluster is availabe exclusively for official student courses.

The following information is an addendum to the main Slurm article in this wiki specific for usage of the Snowflake cluster. Consult the main Slurm article if the information you're looking for isn't available here:

Course information

Courses with access

The following table shows courses which are currently registered to access the Snowflake cluster:

Institute/Group

Lecturer

Course

No

Semester

# Participants

MINS

M. Lerjen

P&S: Software Defined Radio

227-0085-19P

HS

20

TIK

R. Wattenhofer

P&S: Hands-On Deep Learning

227-0085-59L

HS

200

My course needs access

Course responsibles receive an reminder to request course accounts before the start of each semester. If your course needs access to the Snowflake cluster, add the following information to your request for course accounts:

  1. Whether course accounts need access to net_scratch or a ISG managed institute NAS (those are mutually exclusive)

  2. Whether a master account to provide course data to students is needed
  3. If your course accounts will start only interactive jobs (shell access to 1 GPU for up to 8h).
    Note: The default is to use mainly batch jobs (running submitted scripts for up to 24h) and few short interactive jobs (running up to 4 hours)

After successful request

  • Course coordinators will receive the list of course account passwords for distribution to course participants
  • Course coordinators are responsible to keep a list mapping course participant names to course accounts

Cluster information

Access prerequisites

There are two requirements to access the cluster:

  • Access to a course account (handed out by course coordinators at the beginning of a course)
  • Access to a ISG managed PC, for example Computer room PCs or the D-ITET login node

Setting environment

The environment variable SLURM_CONF needs to be set to point to the configuration of the Snowflake cluster before running any Slurm command:

export SLURM_CONF=/home/sladmsnow/slurm/slurm.conf

Hardware

The nodes in the cluster have the following setup:

Node name

CPU

Frequency

Physical cores

Logical processors

Memory

/scratch SSD

/scratch Size

GPUs

Operating System

snowflake[01-nn]

Intel Xeon Gold 6240

2.60 GHz

36

36

376 GB

1.8 TB

8 GeForce RTX 2080 Ti (11 GB)

Debian 11

Partitions

Nodes are members of the following partitions, which serve to channel different job requirements to dedicated resources:

Name

Job type

Job runtime

gpu.normal

batch/interactive jobs

24/4h

gpu.interactive

interactive jobs only

8h

Job submission

Running a script in the cluster (Job type batch) or starting an interactive shell (Job type interactive) on a cluster node requires a so-called job submission initiated with a Slurm command. The simplest use of these commands is the following:

  • sbatch job_script.sh
    More details for sbatch

  • srun --pty bash -i
    More details for srun
    If you only need a short interactive job, specify the amount of minutes needed by adding the parameter --time=10 (10 minutes):
    srun --time=10 --pty bash -i

  • A useful exercise is to integrate the example to run a Jupyter notebook into a job script.

When used in this simple form, the following default resource allocations are used:

  • 1 GPU per Job
  • 4 CPUs (per GPU)
  • 40 GB Memory (per GPU)

The simplest change would be to request 1 additional GPU, which would then allocate 8 CPUs and 80 GB of Memory. Details how to request resources different from defaults listed in the main Slurm article.

Fair share

  • gpu.normal is availabe to all courses

  • gpu.interactive is available only when booked by a course (indicated by membership in Slurm account interactive)

  • Resources are shared fairly based on usage
  • Usage accounting is reset on a weekly basis

Slurm account information

Slurm accounts exist only within Slurm. They serve as groups to allow inheritance of attributes to members. Members are D-ITET accounts, referred to here as course accounts.
The following commands show how to display account information for Slurm:

Show all Slurm accounts

sacctmgr show accounts Format=Account%-15,Description%-25,Organization%-15

Show all course accounts with Slurm account membership

sacctmgr show users WithAssoc Format=User%-15,DefaultAccount%-15,Account%-15

Show all Slurm accounts with course account members

sacctmgr show accounts WithAssoc Format=Account%-15,Description%-25,Organization%-16,User%-15

Resource availability

Reservations

Cluster resources may be reserved at certain times for specific courses. Details about showing reservations and submitting jobs during reservations using the --time option is available in the main Slurm article.

GPU availability

The examples to show resource availabilities in the main Slurm article can be used for the Snowflake cluster as well by using the Slurm configuration account name sladmsnow instead of sladmitet, thus using the file /home/sladmsnow/smon.txt.

Services/SLURM-Snowflake (last edited 2024-09-16 11:58:43 by stroth)