Glossary¶
A quick reference of common HPC and SLURM terms used throughout this documentation. Select a category to jump to the relevant terms.
-
Nodes, CPUs, GPUs, networks
-
Home, scratch, filesystems
-
Jobs, partitions, QoS, queues
-
sbatch,squeue,srun -
MPI, OpenMP, modules
-
Containers, compilers, Python
Hardware¶
- Compute node
- A server in the cluster where jobs actually run. Users cannot log in directly; access is managed through SLURM.
- Core
- A single processing unit within a CPU. Most cluster nodes have multiple cores, allowing parallel execution of tasks.
- CPU
- The central processing unit (processor) of a compute node. Nodes typically have one or two CPU sockets, each containing multiple cores.
- GPU
- Graphics Processing Unit, used for accelerated computing such as deep learning and numerical simulations. Available on Hyperion and Atlas EDR. See the GPU guide.
- InfiniBand
- A high-speed network interconnect between nodes, essential for MPI communication. Variants used at DIPC: FDR (56 Gb/s), EDR (100 Gb/s), HDR (200 Gb/s).
- Login node
- The server you connect to via SSH. Used for file management, editing, and job submission. Do not run heavy computations here.
- Node
- A single server (physical machine) in the cluster, containing CPUs, memory, and optionally GPUs.
Storage¶
- Data (
/data) - Long-term storage for results from completed calculations and data not actively used in running jobs. Available on Hyperion, where it is read-only on compute nodes (writable only from login nodes). 10 TB quota per user.
- Home directory (
/dipc) - Your personal directory for configuration files and small data. Not designed for job I/O; use
/scratchinstead. - Local scratch (
/lscratch) - Node-local storage using the physical disks inside each compute node. The fastest option for single-node jobs with heavy I/O, but data is only visible to the node where the job runs. Capacity varies per node (800 GB to 14 TB). Must be manually created and cleaned up. See the Hyperion and Atlas EDR pages for details.
- Scratch (
/scratch) - A high-performance parallel filesystem for job working directories and large temporary data. Not permanent storage; files may be purged periodically. See the Data transfer page for filesystem overview.
SLURM concepts¶
- Batch script
- A shell script containing SLURM directives (
#SBATCHlines) that describes a job: the resources requested and the commands to execute. Submitted withsbatch. See Your first job. - Job
- A computation submitted to the SLURM scheduler. Can be batch (non-interactive, submitted with
sbatch) or interactive (started withsrunorsalloc). See the SLURM reference. - Job array
- A way to submit many similar jobs with a single
sbatchcommand, using the--arrayoption. Each element runs independently with a unique index. - Partition
- A group of nodes managed by SLURM. Each partition has its own resource limits and scheduling policies. Specified with
--partitionor-p. - QoS (Quality of Service)
- SLURM policies that set limits on job size, duration, and priority. Specified with
--qos. - Queue
- The waiting list of pending jobs managed by SLURM. Jobs wait in the queue until the requested resources become available.
- SLURM
- Simple Linux Utility for Resource Management. The job scheduler and resource manager used on all DIPC clusters.
- Task
- In SLURM, a process within a job. An MPI job typically has one task per MPI rank. Set with
--ntasksor-n. - Walltime
- The maximum elapsed (wall-clock) time a job is allowed to run, set with
--time. If the job exceeds this limit, SLURM terminates it.
SLURM commands¶
sbatch- Submit a batch job. Usage:
sbatch script.sh. See Your first job. squeue- Check the status of jobs in the queue. Usage:
squeue -u $USER. srun- Launch a parallel job step. Also used to start interactive jobs on Hyperion and Atlas EDR.
Programming¶
- Environment module
- A tool to load and manage software packages and their dependencies. See the Environment modules page.
- MPI (Message Passing Interface)
- A standard for parallel programming across multiple nodes. Each MPI process (rank) can run on a different node and communicate over the network. See the MPI guide.
- OpenMP
- A standard for shared-memory parallel programming using multiple threads within a single node. Controlled by the
OMP_NUM_THREADSenvironment variable. See the OpenMP guide.
Software¶
- Compiler
- A program that translates source code (C, C++, Fortran) into executable binaries. Multiple compiler families are available on the clusters (GCC, Intel). See the Compilers guide.
- Container (Singularity / Apptainer)
- A lightweight, portable package that bundles an application with all its dependencies. Containers ensure reproducibility across different systems. See the Containers guide.
- Conda / Mamba
- Package and environment managers widely used for Python and scientific software. Allow you to create isolated environments with specific package versions. See the Python guide.
- Python virtual environment
- An isolated Python installation where you can install packages without affecting the system Python. Created with
python -m venvorconda create. See Setting up your first Python environment.
See also¶
-
Quick start
Get up and running on the clusters in five steps.
-
SLURM reference
Complete reference for job submission, resource requests, and scheduler options.
-
Environment modules
Load pre-installed software and manage versions with the module system.