Find us on GitHub

Compute Ontario Summer School - University of Ottawa

Aug 8-12, 2016

9:30 am - 4:30 pm

Instructors: Jeff Stafford, Hartmut Schmider, Gang Liu, Marcelo Ponce, Pawel Pomorski, Sergey Mashchenko

Helpers: Nabil Benabbou, Andrew Schoenrock

General Information

The Compute Ontario Summer School on High Performance and Technical Computing is an annual educational event for graduate/undergraduate students, postdocs, and researchers who are engaged in compute intensive research. Held geographically in the west, centre and east of the province of Ontario, the summer school provides attendees with the opportunity to learn and share knowledge and experience in high performance and technical computing on modern HPC platforms.

This is the website for Compute Ontario Summer School East (University of Ottawa), hosted by the Centre for Advanced Computing.

CAC_logo compute_ontario uottawa Software Carpentry banner


This year's workshop is divided into two different streams focusing on topics in either general programming/data analysis or parallel programming/high performance computing:

Stream 1, or the Software Carpentry stream of this year's workshop is focused on teaching data analysis and general purpose programming. Students will learn how to use the command-line, write programs in R and Python, handle data using SQL, use Git for version control, and receive a primer on visualization. No prior computing experience is needed for this stream and is appropriate for anyone wanting to learn more about programming and high performance computing.

Stream 2 of this year's summer school covers advanced topics in high performance computing, with a focus on parallel programming. The topics of this stream include shared memory programming with OpenMP, parallel programming with the Posix Thread Library, distributed memory programming with MPI, and programming GPUs with CUDA. Although no prior experience with parallel programming is required, basic Linux familiarity and skills with C, C++, or Fortran is expected.


Stream 1 classes will be in MacDonald Hall, room 146 (150 Louis Pasteur Private). Stream 2 classes will take place in Montpetit Hall, rooms 141 (125 University Road, Ottawa, ON). Get directions with OpenStreetMap or Google Maps.

Stream 1 - MNT 141

Aug 8 Introduction to Unix Shell Programming and Makefiles
Aug 9 Programming with R
Aug 10 Programming with Python
Aug 11 Introduction to SQL and Version Control with Git
Aug 12 Visualization

Stream 2 - MNT 142

Aug 8 Introduction to Unix Shell Programming and Makefiles
Aug 9 Shared-Memory Programming With OpenMP
Aug 10 Parallel Programming with the Posix Thread Library
Aug 11 Distributed-Memory Programming With MPI
Aug 12 Programming GPUs

Registration and setup

All students should register for the course at if they wish to attend. Beyond registration, students should bring a laptop and install the software specific to the stream of the workshop they wish to attend (see below).

Stream 1 software

The goal of this stream is to get started with R, Python, and other tools on both students' laptops as well as HPC environments like those provided by CAC. Because of this, students will want to install the software listed below. For students encountering difficulties, installation help will be provided at the workshop.

Stream 2 software

Due to this stream's focus on parallel computing frameworks and performance optimization, we will be working remotely on machines provided by CAC. Attendees do not need any special software beyond a SSH client (preinstalled on OSX/Linux, we recommend MobaXterm on Windows).

Course materials

Slides and course materials will appear here as the workshop progresses.

Additional information

The other webpage for this workshop is located here.

Please mail if you wish to get in touch or need more information.