` CS 475/GRAD 510 Assignments

You will be evaluated on three kinds of "assignments," as described below. They will be posted here during the course of the semester as they are made available to the class.

Programming Assignments

These assignments count for 30% of your grade. You will do most of your learning through the programming assignments. There are 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 Tuesday, September 10@11:59 PM
  • PA2: OpenMP Scans: prefix sums, products and other ops. Due Thu, October 3@11.59 PM
  • PA3: Sieve of Eratosthenes. Due [extended to] Saturday Oct 19@11.59 PM.
  • PA4: CUDA first steps. Due Tuesday, October 29@11:59PM
  • PA5: CUDA MMScan. Due Nov 16@11:59 pm
  • PA6: Jacobi MPI: computation vs communication. Due Saturday, Nov 23@11:59 pm

Labs/Discussions

These count for 10% of your grade, and requre about 2-3 hours of work. 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. There are about 8 Lab/discussions.
  • Lab 1: OpenMP, Mandelbrot: Measuring/Analyzing/Reporting Performance.
  • Lab 3: OpenMP Tasks.
  • Lab 4: Performance Evaluation, Plotting
  • Lab 6: Revisiting the card game.
  • Lab 7: Introduction to GPU and CUDA: coalescing.
  • Lab 8: Iso-efficiency.
  • Lab 9: Getting Started with MPI.

Discussions

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.

Project

  • Details to be provided later.