3.2 Using SLURM commands to execute batch jobs

The basic SLURM commands for submitting batch jobs are sbatch that submits jobs to batch job system and scancel that can be used to stop and remove a queueing or a running job. The basic syntax of the sbatch command is:

sbatch -options batch_job_file

Normally the sbatch options are included in the batch job file, but you can use the options listed in Table 3.1, in command line too. For example:

sbatch -J test2 -t 00:05:00 batch_job_file.sh

If the same option is used both in command line and in the batch job file, the value defined in the command line overrides the value in the batch job file. When the job is successfully launched, the command prints out a line, telling the ID number of the submitted job. For example:

Submitted batch job 6594 

The job ID number can be used to follow the progress of the job or to remove it. For example, a job with ID 6594 can be removed from the batch job system with command:

scancel 6594

The number of jobs, that a single user can have in the batch job system of Taito at once, has been limited to 896, to prevent batch job system from overloading.

Progress of the submitted batch jobs can be followed with commands squeue, sjstat and sacct. These commands can also be used to check the status and parameters of the batch job environment. squeue, sjstat and sacct usage examples are given below.

By default squeue command lists all the jobs which are submitted to the SLURM scheduler. If you want to see status of your own jobs only, you can use command:

squeue -l -u username
squeue -l -u $USER

You can also check the status of a specific job by defining the jobid with -j switch. Using option -p partition will display only jobs on that SLURM partition.

Command scontrol allows to view SLURM configuration and state. To check when the job waiting in the queue will be executed, the command scontrol show job jobid can be used. A row "StartTime=..." gives an estimate on the job start-up time. It may happen that the job execution time can not be approximated, in which case "StartTime= Unknown". Note, that the "StartTime" may change, e.g., be shortened, as the time goes.

The sacct command can be used to study the log file of the batch job system. Thus it can show information about both active jobs and jobs that have already finished. By default the sacct command shows information about users' own jobs. The sacct command has a wide selection of options and parameters that can be used to select the data to be displayed. By default sacct displays information from the time period that starts from the midnight of current day. You can change the starting date with option -S YYYY-MM-DD. For example, to list the information since first of February 2015 you can use command:

sacct -S 2015-02-01

Information about specific jobs can be checked with option -J job-ID. For example detailed information about job number 6594 could be shown with command:

sacct -S 2013-02-01 -j 6594 -l 

Quite often the full listing of the job information is not desirable. To choose only specific information, you can use option -o combined with the list of fields to display. For example:

[kkayttaj@taito-login4~]$ sacct -j 6594 -o MaxRSS,AveRSS,ReqMem,Elapsed,AllocCPUS
    MaxRSS     AveRSS     ReqMem    Elapsed AllocCPUS
---------- ---------- ---------- ---------- ---------
                          2347Mc   02:01:49         4
  3480116K   3480116K     2347Mc   02:01:49         1

In the example above, the listing shows that job 6594 used 3.5 GB (3480116 KB) of memory and lasted 2 hours, 1 minute and 49 seconds. This information could then be used to optimize batch job parameters for other similar jobs.

When a batch job has finished it is good to run seff command to check the efficiency of your job. The syntax of the seff command is:

  seff jobid

A sample session below shows a case where a job (job_id: 54321) took 49 min and 19 s and used the reserved CPU-resources rather efficiently (98.68% efficiency). In the cases of memory, nearly 40 GB was reserved but  only bit over 4 GB was used in maximum. Thus for a second similar job, the user should consider decreasing the memory reservation.

[kkayttaj@taito-login4~] seff 54321
Job ID: 54321
Cluster: csc
User/Group: kayttaj/somegroup
State: COMPLETED (exit code 0)
Cores: 1
CPU Utilized: 00:48:40
CPU Efficiency: 98.68% of 00:49:19 core-walltime
Memory Utilized: 4.06 GB
Memory Efficiency: 10.39% of 39.06 GB


Table 3.1 Most frequently used SLURM commands.

 Command  Description
sacct  Displays accounting data for all jobs.
salloc  Allocate resources for interactive use.
sbatch  Submit a job script to a queue.
scancel  Signal jobs or job steps that are under the control of SLURM (cancel jobs or job steps).
scontrol  View SLURM configuration and state.
seff  View the CPU and memory efficiency (real usage compared to the reserved resources)
sinfo  View information about SLURM nodes and partitions.
sjstat  Display statistics of jobs under control of SLURM (combines data from sinfo, squeue and scontrol).
smap  Graphically view information about SLURM jobs, partitions, and set configurations parameters.
squeue  View information about jobs located in the SLURM scheduling queue.
srun  Run a parallel job.


Previous chapter     One level up     Next chapter