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. You can also see last year's version of the course.

Midterm

February 28, 2018, in class

Office Hours

Monday, Kristian Jensen, 2-3PM DLC Table #4
Tuesday, Mark Greenstreet, 1-2:30pm ICICS 323
Wednesday, Sitao Lu, 11am-12pm DLC Table #5
Wednesday, Ian Mitchell, 2-3pm ICICS 217
Sunday, Haoyu(Mason) Yang, 1pm-2pm DLC Table #4

Resources

Last updated March 3, 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.