` CS 475 Assignments

Assignments will be posted here during the course of the semester as they are made available to the class.



Labs serve two purposes. First, it is where you gather some (possibly preliminary) data, typically by doing some hands-on programming work. This provides input to the discussion. Second, labs are also the place where you can get hands-on help with programming assignments.
  • Lab 1:OpenMP, Mandelbrot: plotting time, speedup, and efficiency, scheduling.
  • Lab 3:OpenMP Tasks.
  • Lab 4:Perfermance Evaluation, Plotting
  • Lab 5:Wavefront Parallelization.
  • Lab 6:Getting Started with MPI.
  • Lab 7:Iso-efficiency.
  • Lab 8: Introduction to GPU and CUDA: coalescing.


All discussions will be conducted in Piazza. Typically, discussions will follow a lab. All members in a dicussion group will discuss the results and observations they took in the lab. The entire group will then collaboratively write up a single group report and publish it on Piazza.
  • Discussion 0: Form groups, create group names. Due 8:00 AM Mon, Aug 28.
  • Discussion 1: OpenMP: plotting time, speedup and efficiency. Scheduling. Due 8:00 AM Thu, Sep 7.
  • Discussion 3: OpenMP OpenMP Tasking. Due 8:00 AM Mon, Sep 18.
  • Discussion 4: Performance Evaluation. Due 8:00 AM Mon, Oct 9.
  • Discussion 5: Wavefront Parallelization. Due 8:00 AM Mon, Oct 23.
  • Discussion 7: Iso Efficiency. Due 8:00 AM Mon, Nov 13.
  • Discussion 8 CUDA Coalescing. Due 8:00 AM Mon, Dec 04.

Programming Assignments

You will do most of your learning through the programming assignments. there will be six assignments, roughly one every couple of weeks. There will be no assignments in the week of the midterm and the last week of class.
  • PA1: Parallelization in OpenMP. Due September 13. 11:59 PM
  • PA2: Sequential and OpenMP Prime Sieve. Due September 28. 11.59 PM
  • PA3: Knapsack DP in OpenMP. Due Thursday October 26. 11.59 PM
  • PA4: JacMPI: computation vs communication. Due Nov 9, 11:59 pm
  • PA5: CUDA first steps. Due Nov 30, 11:59PM
  • Extra Credit PA6: Matrix Chain Multiply, Due Dec 8, 11:59 pm

Checkin Submission guidelines: There are two ways to submit either through website or the Checkin program (example: ~cs475/bin/checkin PA1 PA1.tar). It is recommended to use the website method because the Preliminary Testing is available only for it.