CPSC 418: Parallel Computation

Welcome to CpSc 418

This course provides an introduction to parallel computation including parallel algorithms; parallel computer architectures; and paradigms and languages for parallel programs. Nearly everything digital is now parallel. This ranges from cell phones and other mobile devices that use multi-core processors to deliver application performance while extending battery life to large web-servers and scientific super computers that can consist of thousands of computers working together to solve large data analysis or numerical computing problems.

The Waitlist

CpSc 418 is currently full. We expect that a few slots will open up. Priority will be given to students who submit acceptable solutions to the pre-class assignments (PIKAs).

For more information

The slides for the first lecture provide a course overview. Click here for an index for all slides that are online.

Midterm

October 22, 2018, in class

Office Hours and Tutorials

Thursday and Friday tutorials cover the same topics. Pick the one that works best for your schedule.
Monday, office hour, Chris Chen, 11am-12noon Demco 150
Tuesday, office hour, Mark Greenstreet, 1-2:30pm ICICS 323
Wednesday, office hour, Yan Peng, 2:30-3:30pm ICCS-X139
Thursday, tutorial, Chris Chen, 1-2pm DMP 201
Friday, tutorial, Sean Hsiung, 2-3pm ICCS 104

Resources

Last updated September 5, 2018

For the CUDA portion of the course we are using Programming Massively Parallel Processors (3rd edition) by David B. Kirk and Wen-Mei W. Hwu (UBC access online here). Note the 2nd edition is also widely available but is missing some critical material and hence will be insufficient for CPSC 418 this year.

Resources for learning Erlang, MPI, and pthreads are available here.