Key Points

Introduction


  • A mini-HPC using Raspberry Pis solves common HPC training challenges: cost, restricted access, internet dependency, and resource contention
  • The minimum hardware is one or more Raspberry Pis (minimum version 3, preferably v4+/2GB+ RAM), a network switch, ethernet cables, SD cards, and a USB storage device.

Preparing an SD Card


  • The Raspberry Pi Imager tool writes OS images to SD cards and supports pre-configuration before first boot
  • Configure hostname, username, password, SSH, and WiFi in the Imager to save manual setup time after booting

Booting and Updating


  • Use ping node01.local to confirm a Pi is reachable on the network before connecting
  • SSH with ssh <username>@<ip-address> to log in
  • Always update packages with sudo apt update && sudo apt full-upgrade -y before installing software

Configuring the login node


  • The login node acts as NAT gateway, DHCP/DNS server (dnsmasq), NFS server, and Slurm controller
  • iptables NAT masquerading allows compute nodes to reach the internet through the login node’s WiFi
  • munge provides authentication between Slurm daemons; all nodes must share the same munge key
  • EESSI provides a shared, architecture-aware software environment accessible from all nodes

Configuring a compute node


  • The compute node must have the same munge key as the login node for Slurm authentication
  • Copy slurm.conf and munge.key from the login node before starting slurmd
  • Mount shared filesystems via NFS entries in /etc/fstab
  • Disable WiFi on compute nodes so all traffic routes through eth0 to the login node

Some extra things that can be done


  • dd can create an exact disk image of a configured compute node SD card, which can then be written to new cards
  • PXE booting allows compute nodes to load their OS from the network, removing the need for individual SD cards

Testing & running your first job


  • Use sinfo to check that all nodes are visible and in idle state before submitting jobs
  • sbatch submits batch jobs; squeue monitors the queue; job output goes to the file specified by --output
  • srun --pty bash opens an interactive shell on a compute node for debugging

Preparing compute nodes for eessi


  • Loop devices map regular files to block devices, allowing them to be partitioned and mounted like physical disks
  • This provides EESSI with a mountable filesystem at /cvmfs on diskless compute nodes