Introduction to High-Performance Computing

A Supercomputer is a machine that highly exceeds the performance of currently available desktop computers. A High-Performance Computing cluster is the most commonly used kind of supercomputer. Intended to be used as a shared resource by several users, it relies on a resource manager and scheduler to optimize the overall execution of many jobs across a variety of compute nodes. This lesson will present the basics of using an HPC cluster, Unix commands, modules, submission of jobs, version control, and software containers.

QR-code

Prerequisites

This tutorial assumes a very minimal familiarity with command line interface. This first lesson is intended even for first-time users. The lesson progresses towards submitting jobs in a cluster and working with files all from a terminal interface.

Acknowledgement

These lectures and the cluster that you will use were funded in part by the National Science Foundation (NSF) Major Research Instrumentation Program (MRI) Award #1726534, and West Virginia University.

NSF_4-Color_bitmap_Logo

Schedule

Setup Download files required for the lesson
Day 1 09:00 1. Introduction to HPC What is High-Performance Computing
10:00 2. The Command Line Interface How to use the Linux terminal
11:30 3. Text editors in Linux How to write and edit text files in the terminal
13:00 4. Lunch Break Break
14:00 5. Environment Modules How to load modules to access software that I want to use for my research?
14:30 6. Compile code on the cluster How to compile code on the cluster
15:00 7. Job Submission (Torque and Moab) How to submit jobs on the HPC cluster?
16:00 Finish
Day 2 09:00 8. Software Containers (Singularity) What are software containers and how to use them
10:30 9. Package and Environment Management (Conda) How to create my own Environment and install packages with Conda
12:00 10. Version Control (git) How to keep track of changes in text files
12:30 11. Transfer files in and out the cluster How to send files in and out the cluster
13:00 12. Lunch Break Break
14:00 13. Shell Scripting How to program the shell for jobs
16:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.