Module 17 Lesson 1 of 10 · ⏱ 35 min · Free

What is HPC? Clusters, Nodes & the Bioinformatics Case

Understand why a laptop cannot process a whole genome, how computing clusters are built, and how SLURM manages thousands of jobs across hundreds of machines.

01 Why bioinformatics needs HPC

A modern whole-genome sequencing run produces roughly 100 GB of raw FASTQ data per sample. A rice population study might have 200 accessions. A sorghum GWAS panel — like the one behind your BPV genomic selection thesis — may contain tens of thousands of SNP markers across hundreds of lines. Your laptop has 8–16 GB of RAM and 4–8 CPU cores. The maths does not work.

Why this matters

STAR alignment (RNA-seq) requires ~30 GB RAM just to load the genome index. GATK variant calling for a single sample can take 6–12 hours on a laptop. On an HPC cluster with 48 cores per node and 512 GB RAM, the same job finishes in 20 minutes. HPC is not optional for real genomics — it is the infrastructure the field runs on.

HPC stands for High-Performance Computing. It refers to a networked collection of computers (called a cluster) that work together and are managed by a job scheduler. Instead of running your STAR alignment on your laptop, you write a script that says "I need 16 CPUs, 64 GB RAM, and 4 hours" — and the scheduler finds the machines and runs your job automatically, even while you sleep.

💡

Most universities and research institutes in Germany — including Justus-Liebig-Universität Gießen — provide access to HPC clusters through national computing initiatives (BMBF, DFG) or regional networks (HRZ clusters, HLRS, or the national NHR system). Ask your thesis supervisor about cluster access.

Here is how computational demand scales for common bioinformatics tasks:

Task RAM needed CPU cores Time (laptop) Time (HPC node)
FastQC on 1 sample 1 GB 1–2 5 min 1 min
STAR genome index build 30 GB 8 ⛔ impossible 25 min
STAR alignment (1 sample) 32 GB 8 ⛔ impossible 15 min
GATK HaplotypeCaller (1 sample) 16 GB 4 8–12 h 45 min
DESeq2 on 20 samples 4 GB 1 10 min 2 min
rrBLUP / BGLR on large SNP panel 8–64 GB 1–4 hours–days minutes–hours

02 Anatomy of a cluster

A computing cluster is not a single computer. It is a collection of many computers — called nodes — connected by a high-speed internal network (InfiniBand or 10 GbE). Each node looks like a powerful server with many CPU cores, large RAM, and fast local storage. The nodes share access to a common, large parallel filesystem (like GPFS or Lustre) where your data and scripts live.

Cluster architecture — simplified
┌───────────────────────────────────────────────────────────────┐ │ HPC CLUSTER │ │ │ │ ┌──────────────────┐ ┌───────────────────────────────┐ │ │ │ LOGIN NODE │ │ COMPUTE NODES │ │ │ │ You SSH here │ │ │ │ │ │ Submit jobs │ │ node001 64 cores 256 GB │ │ │ │ Edit scripts │ │ node002 64 cores 256 GB │ │ │ └──────────────────┘ │ node003 64 cores 512 GB │ │ │ │ node004 64 cores 512 GB │ │ │ ┌──────────────────┐ │ ... (up to 500+ nodes) │ │ │ │ SLURM SCHEDULER │ └───────────────────────────────┘ │ │ │ Queue manager │ │ │ │ Allocates nodes │ ┌───────────────────────────────┐ │ │ └──────────────────┘ │ SHARED FILESYSTEM │ │ │ │ /home/shajedur/ │ │ │ │ /scratch/shajedur/ │ │ │ │ /project/sorghum_gwas/ │ │ │ └───────────────────────────────┘ │ └───────────────────────────────────────────────────────────────┘

Key components you need to understand:

ComponentWhat it isYour role
Login node The gateway machine you SSH into. Shared by all users. Edit scripts, transfer files, submit jobs only
Compute nodes The worker machines with many cores and large RAM Your jobs run here — allocated by SLURM
Scheduler (SLURM) Software that manages the queue of all users' jobs You submit jobs to it with sbatch
Shared filesystem A large disk system mounted on all nodes simultaneously Store data and scripts here — all nodes can read/write
Scratch space Fast temporary storage for intermediate files Use for large temporary FASTQ/BAM files during a job

03 Login nodes vs compute nodes

This is the most important rule of HPC etiquette: never run heavy computation on the login node.

⚠️

The login node is shared by all users on the cluster simultaneously. If you run STAR alignment or GATK directly on the login node, you slow down everyone else's ability to edit files, check jobs, and transfer data. Most clusters will automatically kill your process — and your HPC account may be suspended. Always use sbatch (batch job) or srun (interactive job) to run computation.

What is allowed on the login node vs what requires a job submission:

Allowed on login nodeRequires sbatch / srun
Editing scripts (nano, vim) STAR alignment
Submitting jobs (sbatch) GATK variant calling
Checking job status (squeue) FastQC on large files
Small file transfers (scp, rsync) rrBLUP / BGLR models
Listing files (ls, head) Any Python / R computation taking > 1 min
Loading modules (module load) Compiling software
The queue mental model

Think of a cluster like a shared laboratory with 500 benches (compute nodes). The login node is the reception desk — everyone checks in there. SLURM is the lab manager who assigns benches. You tell the lab manager "I need 4 benches for 2 hours, with 64 kg of reagents (RAM)." The lab manager says "bench 117–120 are free, go ahead." You never work at the reception desk — you just check in and submit your request.

04 Where SLURM fits in

SLURM stands for Simple Linux Utility for Resource Management. It is the job scheduler used by the vast majority of HPC clusters worldwide — including those at German universities (HRZ, HLRS, NHR centres). Its job is simple in concept: accept jobs from hundreds of users, decide who gets what resources and when, and execute them in order.

Why SLURM exists

Without a scheduler, 200 researchers would all try to run their RNA-seq jobs at the same time. The cluster would be overwhelmed and every job would fail or slow to a crawl. SLURM solves this with a fair-share queue: it tracks how much compute each user has consumed, gives priority to users who have used less recently, and ensures no single user monopolises the cluster. It is the operating system of shared science.

SLURM's core commands — you will learn every one of these in depth across this module:

CommandWhat it doesWhen you use it
sbatch job.sh Submit a batch job script to the queue Every time you run a pipeline
squeue -u $USER Show your running and pending jobs While waiting for results
scancel <jobid> Cancel a running or queued job When you made a mistake
sinfo Show cluster partitions and node availability Choosing where to submit
srun Start an interactive job on a compute node Testing and debugging
sacct -j <jobid> Show resource usage for a completed job After a job finishes

A SLURM job script is just a Bash script with special comment lines at the top that tell SLURM what resources your job needs. Here is what a minimal one looks like — we will build real ones from Lesson 4 onwards:

SLURM batch script (preview)
#!/bin/bash
#SBATCH --job-name=star_align        # name shown in squeue
#SBATCH --ntasks=1                   # number of tasks
#SBATCH --cpus-per-task=8            # CPU cores per task
#SBATCH --mem=64G                    # RAM
#SBATCH --time=02:00:00              # max wall-clock time (HH:MM:SS)
#SBATCH --output=logs/star_%j.out   # stdout log (%j = job ID)
#SBATCH --error=logs/star_%j.err    # stderr log

# Load the STAR module
module load STAR/2.7.10a

# Run the alignment
STAR --runThreadN 8 \
     --genomeDir /scratch/shajedur/sorghum_genome/star_index \
     --readFilesIn sample_R1.fastq.gz sample_R2.fastq.gz \
     --outSAMtype BAM SortedByCoordinate \
     --outFileNamePrefix results/sample_
What those #SBATCH lines do

Lines starting with #SBATCH look like comments to Bash (they start with #), but SLURM reads them before running the script. They are your "resource request form." SLURM will not start your job until a node with exactly those resources becomes free. If you ask for 64 GB RAM and only 32 GB is available on all nodes, you wait. Lesson 5 covers how to choose resource requests wisely to minimise queue wait time.

05 A real bioinformatics workflow on HPC

To make this concrete, here is how a typical RNA-seq analysis looks when run on an HPC cluster. You would run this for your sorghum RNA-seq data — each step becomes a separate SLURM job, and they chain together using job dependencies.

RNA-seq pipeline — HPC job flow
Your laptop / login node ───────────────────────────────────────────────────── ▼ scp sample.fastq.gz cluster:/scratch/shajedur/raw/ │ (transfer data to cluster) ▼ sbatch 01_fastqc.sh → Job 12345 submitted │ QC check on FASTQ files ▼ sbatch 02_trimming.sh → Job 12346 (waits for 12345) │ Trim adapters with Trimmomatic ▼ sbatch 03_star.sh → Job 12347 (waits for 12346) │ STAR alignment to sorghum genome ▼ sbatch 04_counts.sh → Job 12348 (waits for 12347) │ featureCounts → count matrix ▼ scp cluster:/scratch/shajedur/results/ . (download results to laptop for DESeq2 in R)

Notice you only interact with the cluster for job submission and data transfer. All the heavy computation happens automatically on compute nodes while you do other work. You can log off completely — your jobs keep running.

💡

This is the power model. Submit your STAR alignment at 9 PM before dinner. By morning, 200 samples are aligned. No laptop fan running. No keeping your computer awake. This is how production genomics analysis actually works at scale.

Key vocabulary summary

TermMeaning in HPC
ClusterThe entire HPC system — all nodes, network, and storage together
NodeOne physical computer in the cluster
CoreOne CPU processor within a node (a node may have 32–128 cores)
PartitionA group of nodes for different job types (short, long, GPU, highmem)
JobA unit of work submitted to SLURM — your script + resource request
QueueThe list of all jobs waiting or running across the cluster
Wall timeMaximum real-world clock time your job is allowed to run
ScratchFast temporary disk space — data is deleted after your job
Home directoryYour permanent space: small quota, backed up
Module systemSoftware loaded on demand with module load
Job arrayOne submission that spawns many parallel jobs (e.g., 200 samples)
Advertisement In-feed ad · AdSense slot

06 Exercises

No cluster access is required for these exercises — they are conceptual and research tasks to solidify your understanding before you SSH into a real cluster in Lesson 2.

1 Calculate RAM requirements for your sorghum GWAS

Your BPV thesis uses rrBLUP and BGLR on a sorghum SNP panel. Estimate: if your marker matrix has 50,000 SNPs × 300 lines, and each value is an 8-byte float (double precision), how many MB of RAM does the matrix alone require? How does this change with 200,000 SNPs?

▶ Show answer
Calculation
# 50,000 SNPs × 300 lines × 8 bytes per value
50000 × 300 × 8 = 120,000,000 bytes = ~115 MB

# With 200,000 SNPs
200000 × 300 × 8 = 480,000,000 bytes = ~457 MB

# But rrBLUP builds a kinship matrix (G matrix): n × n
# 300 × 300 × 8 = 720,000 bytes — tiny
# BGLR with MCMC chains needs more: 2–4 GB for large panels
# Request 16–32 GB on HPC to be safe

The marker matrix itself is manageable, but BGLR's Markov Chain Monte Carlo iterations and BLUP's matrix inversions (G-1 A-1) drive RAM up quickly. Always test with a small subset first, then scale on HPC.

2 Identify the HPC facility at JLU Gießen

Research: Does Justus-Liebig-Universität Gießen have an HPC cluster available to students? What is the HRZ (Hochschulrechenzentrum) page address? Is there a national allocation you could apply for through the DFG or NHR network? Write down the steps to request an account.

▶ Show answer

The HRZ at JLU Gießen offers HPC resources to researchers. Visit hrz.uni-giessen.de and search for "HPC" or "High Performance Computing." For larger allocations, the NHR (National High Performance Computing) network offers computing time to German university researchers through competitive proposals. Your thesis supervisor can submit a resource request — MSc thesis work often qualifies. The HLRS in Stuttgart and Jülich Supercomputing Centre also accept academic proposals.

3 Map the STAR alignment job to cluster concepts

You want to align 50 RNA-seq samples from a Sorghum bicolor drought study. Each sample needs 32 GB RAM, 8 CPU cores, and 45 minutes. If the cluster has 20 compute nodes with 64 cores and 256 GB RAM each:

(a) How many samples can run simultaneously?
(b) How long will all 50 samples take (wall-clock time, ignoring queue time)?
(c) Should you use a job array or 50 separate sbatch calls?

▶ Show answer

(a) Each node: 64 cores ÷ 8 cores/job = 8 jobs per node by CPU. RAM: 256 GB ÷ 32 GB = 8 jobs per node by RAM. So 8 jobs per node × 20 nodes = 160 simultaneous jobs. All 50 samples can run at the same time.

(b) If all 50 run in parallel: 45 minutes total. Without HPC (laptop, 1 job at a time): 50 × 45 min = 37.5 hours.

(c) Use a job array (sbatch --array=1-50 align.sh). Lesson 6 covers this in depth. A job array is one submission that creates 50 parallel jobs — much cleaner than 50 manual sbatch calls.

Advertisement 300 × 250 rectangle · AdSense slot