` CS 475 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.
  • PA2: OpenMP Scans: prefix sums, products and other ops.
  • PA3: Sieve of Eratosthenes.
  • PA4: CUDA first steps.
  • PA5: CUDA MMScan.
  • PA6: Jacobi MPI: computation vs communication.

Labs/Discussions

These count for 5% 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.
  • Lab 1: OpenMP, Mandelbrot: Measuring/Analyzing/Reporting Performance.
  • Lab 2: OpenMP Tasks.
  • Lab 3: Performance Evaluation, Plotting.
  • Lab 4: Locality
  • Lab 5: Introduction to GPU and CUDA: coalescing.
  • Lab 6: Iso-efficiency.
  • Lab 7: Getting Started with MPI.
  • Lab 8: Wavefront Parallelization

Project

  • Details provided in Canvas.