
Description: This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.
This course will have completion activities (Certification Quiz and Home Assignment). Upon successful completion of the activities, a Certificate of course Completion will be issued. No Certificates of Attendance will be issued for this course.
IMPORTANT: this course will use an Alliance cluster for hands-on activities, and so it is restricted to Alliance users only. If you are a Canadian researcher or grad student, you can get an Alliance account for free, typically within a few days.
Teacher: Sergey Mashchenko (SHARCNET, McMaster University) and Pawel Pomorski (SHARCNET, University of Waterloo)
Level: Introductory
Format: Lecture + Hands-on
Certificates: Completion
Prerequisites:
- Alliance account
- Basic C and/or C++ programming experience.

Description: This hands-on course is designed for researchers who want to take their high-performance computing (HPC) workflows to the next level. Whether you're new to large-scale computing or looking to optimize your current practices, this course will guide you through the key steps to efficiently scale your applications on HPC systems.
Participants will begin by identifying their specific applications and learn how to properly compile their code for HPC environments. The course covers essential topics including running interactive sessions, performance tuning, and efficient batch job submission—complete with practical script examples. You’ll also explore strategies for checkpointing, monitoring job progress, and effective debugging techniques.
Through a combination of lectures and hands-on exercises, this course offers real-world insights into improving performance, reducing run times, and making the most of shared computing resources. By the end, you'll be equipped with the tools and knowledge needed to run scalable, reliable, and efficient HPC workflows.
Teachers: Jaime Pinto (SciNet, University of Toronto) and Sergey Maschenko (SHARCNET, McMaster University)
Level: Introductory
Format: Lecture + Hands-on
Certificate: Attendance and Completion
Prerequisites: None