The srun command has a significant number of options to control the execution of your application closely. However, you can use it for a simple launch of a serial program, as Example 8-1shows.

Example 8-1 Simple Launch of a Serial Program$ srun hostname

n1

The srun Roles and Modes

The srun command submits jobs to run under SLURM management. The srun command can perform many roles in launching and managing your job. The srun command operates in several distinct usage modes to accommodate the roles it performs.

The srun Rolessrun options allow you control a SLURM job by:

Specifying the parallel environment for your job when you submit it, such as the number of nodes to use, partition, distribution of processes among nodes, and maximum time.

Controlling the behavior of your parallel job as it runs, such as by redirecting or labeling its output, sending it signals, or specifying its reporting verbosity.

The srun ModesThe srun command has five distinct modes in which it can be used:Simple modeBatch modeAllocate modeAttach modeBatch (with LSF-HPC) mode

The SLURM Reference Manual describes the Simple, Batch, Allocate, and Attach modes.

You can submit a script to LSF-HPC that contains (simple) srun commands to execute parallel jobs later. In this case, LSF-HPC takes the place of the srun -boption for indirect, across-machine job-queue management.

Using the srun Command with HP-MPI

The srun command can be used as an option in an HP-MPI launch command. Refer to Chapter Chapter 5: Submitting Jobs for information about using srun with HP-MPI.

Using the srun Command with LSF-HPC

The srun command can be used in an LSF-HPC launch command. Refer to Chapter Chapter 9: Using LSF for information about using srun with LSF-HPC.

Monitoring Jobs with the squeue Command

The squeue command displays the queue of running and waiting jobs (or "job steps"), including the JobID used for scancel), and the nodes assigned to each running job. It has a wide variety of filtering, sorting, and formatting options. By default, it reports the running jobs in priority order and then the pending jobs in priority order.

Example 8-2reports on job 12345 and job 12346:Example 8-2 Displaying Queued Jobs by Their JobIDs$ squeue --jobs 12345,12346
JOBID PARTITION NAME USERST TIME_USED NODES

NODELIST

12345

debugjob1jody

R

0:21

4

n[9-12]

12346

debug

job2

jody

PD

0:00

8

 

64 Using SLURM