Difference between revisions of "OpenHPC"

From HPC
Jump to: navigation , search
(Job Emails)
Line 1: Line 1:
 
__TOC__
 
__TOC__
 +
= Introduction =
 +
Slurm upgrade
 +
== Resource Requirements ==
 +
In order to reduce issues with tasks using more resource (CPU or RAM) than they should, Slurm will now uses Linux cgroups to more closely monitor resource use of tasks and will limit (CPU) or terminate (RAM) tasks exceeding what they should use. In particular this means it is important to request the correct amount of  RAM needed for a task.
 +
 +
{| class="wikitable"
 +
|+Memory Request (standard compute)
 +
|-
 +
|Default (no specific memory request)
 +
|approx 4GB (i.e. 128 GB RAM / 28 cores)
 +
|-
 +
| #SBATCH --mem=40G
 +
|40GB (i.e. specific amount)
 +
|-
 +
| #SBATCH --exclusive
 +
|128GB (i.e. 128GB for exclusive use)
 +
|}
 +
* Default (no specific memory request)
 +
 +
 +
If a task is terminated due to exceeding the requested amount of memory, you should see a message in your Slurm error log file, such as:
 +
 +
<pre>
 +
slurmstepd: error: Detected 1 oom-kill event(s) in StepId=319.batch. Some of your processes may have been killed by the cgroup out-of-memory handler.
 +
</pre>
 +
 +
 
== Job Emails ==
 
== Job Emails ==
 
It is now possible to get emails alerts when certain event types occur using Slurms built in '''--mail-type''' SBATCH directive support.
 
It is now possible to get emails alerts when certain event types occur using Slurms built in '''--mail-type''' SBATCH directive support.

Revision as of 17:08, 6 January 2022

Introduction

Slurm upgrade

Resource Requirements

In order to reduce issues with tasks using more resource (CPU or RAM) than they should, Slurm will now uses Linux cgroups to more closely monitor resource use of tasks and will limit (CPU) or terminate (RAM) tasks exceeding what they should use. In particular this means it is important to request the correct amount of RAM needed for a task.

Memory Request (standard compute)
Default (no specific memory request) approx 4GB (i.e. 128 GB RAM / 28 cores)
#SBATCH --mem=40G 40GB (i.e. specific amount)
#SBATCH --exclusive 128GB (i.e. 128GB for exclusive use)
  • Default (no specific memory request)


If a task is terminated due to exceeding the requested amount of memory, you should see a message in your Slurm error log file, such as:

slurmstepd: error: Detected 1 oom-kill event(s) in StepId=319.batch. Some of your processes may have been killed by the cgroup out-of-memory handler.


Job Emails

It is now possible to get emails alerts when certain event types occur using Slurms built in --mail-type SBATCH directive support.

The most commonly used valid type values are as follows (multiple type values may be specified in a comma separated list):

  • NONE (the default if you don't set --mait-type
  • BEGIN
  • END
  • FAIL
  • REQUEUE
  • ALL (equivalent to BEGIN, END, FAIL, INVALID_DEPEND, REQUEUE, and STAGE_OUT)
  • INVALID_DEPEND (dependency never satisfied)
  • TIME_LIMIT, TIME_LIMIT_90 (reached 90 percent of time limit), TIME_LIMIT_80 (reached 80 percent of time limit), TIME_LIMIT_50 (reached 50 percent of time limit) * ARRAY_TASKS (sends emails for each array task otherwise job BEGIN, END and FAIL apply to a job array as a whole rather than generating individual email messages for each task in the job array).

The user to be notified is indicated with --mail-user, however only @hull.ac.uk email addresses are valid.

If you want to be alerted when your task completes, if it advised to use #SBATCH --mail-type=END,FAIL to catch if a job finishes cleanly or if it finishes due to an error.

An example of a completion email is shown below: SlurmEmail.png

Slurm Information

It is now possible to check the details of a job submission script used to submit a job. This is done using sacct -B -j <jobnumber> e.g.:

$ sacct -B -j 317
Batch Script for 317
--------------------------------------------------------------------------------
#!/bin/bash
#SBATCH -J jobsubmissionfile
#SBATCH -n 1
#SBATCH -o slurm-%j.out
#SBATCH -e slurm-%j.out
#SBATCH -p compute
#SBATCH --exclusive
#SBATCH --time=1-00:00:00
#SBATCH --mail-type=END,FAIL
#SBATCH --mail-user=<your Hull email address>

echo "This is my submission script"
sleep 10

Using Containers