HPC Carpentry - Queen's University

May 3-4, 2018

9am - 4pm

Instructors: Jeff Stafford

Helpers: Charlie Hindmarch, Mark Mathieu

General Information

HPC Carpentry is a new initiative designed to teach researchers the basics of scientific computing, in particular accessing and using high-performance computing installations that have become commonplace in modern research. This hands-on workshop will cover basic concepts and tools, including using a cluster, programming in Python, and pipeline/task automation. Participants will be encouraged to help one another and to apply what they have learned to their own research problems. For more information on what we teach and why, please see the HPC Carpentry website.

Who: The course is aimed at graduate students and other researchers looking to take advantage of high-performance compute clusters and perform reproducible research. You don't need to have any previous knowledge of the tools that will be presented at the workshop. This workshop is a fantastic chance to get started with scientific computing.

Where: Douglas Library Electronic Classroom, 93 University Ave., Kingston, ON. Get directions with OpenStreetMap or Google Maps.

When: May 3-4, 2018. Add to your Google Calendar.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below). They are also required to abide by HPC Carpentry's Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Contact: Please email jeff.stafford@queensu.ca for more information.


Please be sure to complete these surveys before and after the workshop.

Pre-workshop Survey

Post-workshop Survey


Day 1

Before Pre-workshop survey
09:00 Introduction to the UNIX shell
10:30 Coffee
12:00 Lunch break
13:00 Using a compute cluster
14:30 Coffee
16:00 Wrap-up
16:30 END

Day 2

09:00 Programming with Python
10:30 Coffee
12:00 Lunch break
13:00 Analyis pipelines with Snakemake
14:30 Coffee
16:00 Wrap-up
16:30 Post-workshop Survey
16:40 END


Introduction to High Performance Computing

  • Connecting to a cluster
  • Shell basics: files, directories, and text editing
  • Writing and running shell scripts
  • Environment variables
  • Scheduling jobs on a cluster
  • Accessing and compiling software
  • Transferring files
  • Reference...

Programming in Python

  • Basic Python programming and syntax
  • Writing and executing Python scripts
  • Storing data using lists, dicts, and Numpy arrays
  • Functions and conditions
  • Parallel programming concepts
  • Writing an analysis pipelines with Snakemake
  • Executing a pipeline across a cluster or local computer
  • Reference...


To participate in a HPC Carpentry workshop, you will need access to the software described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

SSH Client

A large portion of this workshop will involve connecting to and using a remote computing cluster. To do this, we will use a SSH client.


You will need to download and install MobaXterm, a widely-used SSH client for Windows. MobaXterm can be downloaded from the following link: installer.


macOS ships with an SSH client by default, so there is no need to install anything. You access Bash and an SSH client from the Terminal (found in /Applications/Utilities). See the Git installation video tutorial for an example on how to open the Terminal. You may want to keep Terminal in your dock for this workshop.


Linux comes with an SSH client installed by default - there is no need to install anything.


Python is a popular language for research computing, and great for general-purpose programming as well. Installing all of its research packages individually can be a bit difficult, so we recommend Anaconda, an all-in-one installer.

Regardless of how you choose to install it, please make sure you install Python version 3.x (e.g., 3.6 is fine).

We will teach Python using the Jupyter notebook, a programming environment that runs in a web browser. For this to work you will need a reasonably up-to-date browser. The current versions of the Chrome, Safari and Firefox browsers are all supported (some older browsers, including Internet Explorer version 9 and below, are not).


Video Tutorial
  1. Open https://www.anaconda.com/download/#windows with your web browser.
  2. Download the Python 3 installer for Windows.
  3. Install Python 3 using all of the defaults for installation except make sure to check Make Anaconda the default Python.


Video Tutorial
  1. Open https://www.anaconda.com/download/#macos with your web browser.
  2. Download the Python 3 installer for OS X.
  3. Install Python 3 using all of the defaults for installation.


  1. Open https://www.anaconda.com/download/#linux with your web browser.
  2. Download the Python 3 installer for Linux.
    (The installation requires using the shell. If you aren't comfortable doing the installation yourself stop here and request help at the workshop.)
  3. Open a terminal window.
  4. Type
    bash Anaconda3-
    and then press tab. The name of the file you just downloaded should appear. If it does not, navigate to the folder where you downloaded the file, for example with:
    cd Downloads
    Then, try again.
  5. Press enter. You will follow the text-only prompts. To move through the text, press the space key. Type yes and press enter to approve the license. Press enter to approve the default location for the files. Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).
  6. Close the terminal window.