Introduction to High-Performance Computing: Glossary

Key Points

Introduction to Supercomputing
  • Learn about CPUs, cores, and cache, and compare your machine with an HPC cluster.

  • Identify how an HPC cluster could benefit your research.

Command Line Interface
  • The basic commands you must know are echo, cat, date, pwd, cd, mkdir, touch, cp, mv, rm. You will use these commands very often.

Python Scripting for HPC
  • Python is an easy-to-learn programming language.

Python Scripting for HPC
  • Python is an easy-to-learn programming language.

Adjurn
Terminal-based Text Editors
  • For editing files from the terminal there are several editor available

  • nano is an easy to use editor with commands that are shown on the bottom, good for beginners.

  • emacs is a full featured editor that relies on multiple key combinations to control its operation.

  • vi/vim is installed by default on every Linux system, it works by changing between ‘modes’

Software on HPC Clusters
  • Modules. Use module avail to know all the modules on the cluster.

  • Modules. Use module load <module_name> to load a module.

  • Conda. Use conda env list to list the available environments.

  • Conda. Use conda activate to activate a conda environment.

  • Singularity. Use singularity shell <container> to get a shell inside the container.

  • Singularity. Use singularity exec <container> <command> to execute a command or script inside the container.

Python Scripting for HPC
  • numpy is the standard de-facto for numerical calculations at large scale in Python

Python Scripting for HPC
  • numpy is the standard de-facto for numerical calculations at large scale in Python

Final remarks
Workload Manager: Slurm
  • The scheduler handles how compute resources are shared between users.

  • Everything you do should be run through the scheduler.

  • A non-interactive job is expressed as a shell script that is submitted to the cluster.

  • Try to adjust the wall time to around 10-20% more than the expected time the job should need.

  • It is a good idea to keep aliases to common torque commands for easy execution.

Terminal Multiplexing: tmux
  • tmux allows you to keep terminal sessions on the cluster that persist in case of network disconnection.

Computational Partial Differential Equations
  • Examples of codes solving PDEs are Fluent and the Einstein Toolkit

Adjurn
Introduction to Machine Learning
  • tmux allows you to keep terminal sessions on the cluster that persist in case of network disconnection.

Introduction to Deep Learning
  • tmux allows you to keep terminal sessions on the cluster that persist in case of network disconnection.

Computational Partial Differential Equations
  • Day 2: General Relativity and GRMHD

Final remarks

Glossary