Introduction to High-Performance Computing: Glossary

Key Points

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

  • Identify how an HPC cluster could benefit your research.

Open On-Demand
  • Open On-demand allow you to create interactive sessions using Jupyter and RStudio

  • Open On-demand includes a basic text editor, file manager and the ability to visualize plots in JPEG, PDF and PNG

  • Open On-demand interacts with the queue system to monitor and control jobs running on the cluster.

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.

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’

Environment Modules
  • Use module avail to know all the modules on the cluster.

  • Use module load <module_name> to load the module that you need.

  • You can preload modules for each login by adding the load line on your $HOME/.bashrc

Scheduling jobs
  • The scheduler handles how compute resources are shared between users.

  • Everything you do should be run through the scheduler.

  • A job is just a shell script.

  • If in doubt, request more resources than you will need.

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

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

Environment management: Conda
  • Singularity containers give you control on the software you want on a machine, helping you with reproducible executions.

Software Containers: Singularity
  • Singularity containers give you control on the software you want on a machine, helping you with reproducible executions.

Adjurn
Version Control: git
  • Version control systems were created to keep track of changes in a set of files.

  • They work better with text files

Compiling Codes
  • Compile code in several languages and using OpenMP and MPI

Shell Scripting
  • Shell scripting brings the ability to control the workflow of commands that you use on the terminal

  • Shell scripting is important when you need more complex runs or for post-processing

Final remarks

Glossary