Skip to content

What is an HPC cluster?

An HPC (high-performance computing) cluster is many ordinary servers wired together with a fast network and shared storage, used as one system. If you have only ever run programs on your laptop, this page explains the parts of a cluster and why they change how you work. If you already know clusters, skip ahead to getting started.

Why not just a faster computer?

A single processor core hasn't become much faster in years. Clock speeds stopped at about 4–5 GHz, because a faster chip needs more power and gives off more heat than can be removed from it. Instead, computers now get more cores, and a cluster takes this further: it puts hundreds or thousands of cores, and many GPUs, at your disposal by connecting many machines.

The catch is that the extra power comes from doing many things at the same time. A program that uses one core runs no faster on Phoebe than on a good laptop. It pays off when you:

  • run a program that uses many cores or GPUs at once (for example with OpenMP, MPI, or a GPU library);
  • run the same program many times with different inputs, as many independent jobs;
  • need more memory, disk space or run time than your own computer has.

The parts of a cluster

You connect over SSH to the login node; Slurm starts your jobs on the compute nodes; all nodes share storage over the InfiniBand network You laptop, browser SSH Login node phoebe.fzu.cz Scheduler (Slurm) queue of waiting jobs sbatch, srun starts jobs compute nodes n1 n2 … n20 gpu1 gpu2 s1 … InfiniBand network, 100 Gb/s Shared storage home, project space and software, the same on every node

The parts of a cluster, with the names they have on Phoebe. Koios has the same layout, with the login node koios1.fzu.cz.

Login node
The machine you connect to with SSH, phoebe.fzu.cz on Phoebe and koios1.fzu.cz on Koios. Here you edit files, compile code, manage your data and submit jobs. Everyone shares it, so don't run heavy computations on the login node: they slow it down for all users.
Compute nodes
The machines that do the work. Phoebe has 20 CPU nodes with 64 cores each, two GPU nodes with 8 NVIDIA A100 cards each, and three small nodes for light interactive work. You don't log in to them directly; the scheduler gives you a share of them. See the Phoebe and Koios pages for details.
Scheduler
Slurm keeps a queue of jobs. You tell it what your job needs (cores, memory, GPUs, run time), and it starts the job on compute nodes as soon as those resources are free. Until then the job waits in the queue. Groups of nodes with their own limits are called partitions.
Network
A fast, low-latency InfiniBand network connects all nodes. Programs that run on several nodes at once, such as MPI codes, exchange data over it, and it carries all traffic to the shared storage.
Shared storage
Your home directory, the project space and the software tree are on network storage that every node sees. A file you create on the login node is there, at the same path, when your job runs on a compute node. See storage and software.

What this means for you

  • You work in jobs. You describe the work in a batch job script and submit it, or ask for an interactive session on a compute node. Your job may wait before it starts, and it is stopped when it reaches its time limit.
  • Ask for what you use. A job that asks for 64 cores but uses one keeps the other 63 from everyone else, and larger requests usually wait longer in the queue.
  • Your program has to run in parallel to profit from many cores, or you split the work into many independent jobs.
  • You set up your own software environment. Load what is installed with modules, or install packages into your home directory with conda, uv or a container. You have no administrator rights.
  • Data isn't backed up. Keep copies of important files elsewhere.

Ready to start? Continue with getting started.