This repository contains the material I use to teach the combined UNC/UH cluster computing two-day workshop. The main goals of this project are:
- Building vocabulary: students should know what a shell is, ssh, and enough other vocabulary so that they can ask (or google) intelligent questions.
- Familiarity with the shell: most work on clusters is done in a terminal - not all students have used this technology before. Students will get to use a shell and learn enough to get around.
- Version control concepts: no-one is an island - modern computing is done in teams and groups distributed across the planet. Students will learn the basics of sharing work and resolving changes with the git version control system.
- Compile and install basic tools: frequently, in scientific computing, we need to compile our own software. Students will compile software with autotools and cmake and do some basic troubleshooting.
- Thinking in terms of jobs and noninteractive computing: Putting it all together, we'll learn how to write job scripts, written in shell, to queue our work on supercomputers.