$ Revised: Nov 18 2020 by prins@cs.unc.edu

UNC logo
COMP 633
Parallel Computing

http://www.cs.unc.edu/~prins/Classes/633/

Fall 2020 (Tue Aug 11 - Tue Nov 17)
TTh 3:00 PM - 4:15 PM online instruction

Instructor: Jan Prins, FB 334, Tel: 919-590-6213, prins@cs.unc.edu
Office hours: Mon 11AM - 12.30PM, Wed 9AM - 10.30AM.
Use the class zoom id. If you plan to attend, send an
an email in advance and I'll acknowledge.
(email me with questions anytime)

[2D torus]


Overview and Syllabus

This is an introductory graduate course on parallel computing. Upon completion, you should

Course details can be found in the course information and syllabus.


@ Announcements


@ Course Materials


@ Reading Assignments


@ Written and Programming Assignments

  1. Written Assignments
    • (Aug 18) Written assignment WA1. Due date is Thu Sep 3.
      WA1 sample solutions
    • (Sep 26) Written Assignment WA2. Due date is Mon Oct 5 anytime. You may work with another classmate or on your own.
      WA2 sample solutions
    • (Nov 5) Written Assignment WA3. Due date is Tue Nov 17 before the start of class. You may work with another classmate or on your own.
      [NEW] (Nov 18) WA3 sample solutions
  2. Programming Assignments
    • (Sep 8) Programming Assignment PA1(a) is available. You can work together with a partner on this project or you can choose to work on your own. Due date is Tue Sep 15 (submit via email to me before the start of class!).
      Here are some sample implementations shown in class
      • A three time-step evolution of sample 3-body system was posted on piazza.
      • v2.c is an all-pairs implementation in C.
        Compile with icc or gcc: icc -Ofast -fopenmp -o v2 v2.c
      • v3n.c is a half-pairs sample implementation in C.
        compile with icc or gcc: icc -Ofast -fopenmp -o v3n v3n.c
    • (Sep 17) Programming Assignment PA1(b) is available. Due date is Oct 1 (start of class).
    • (Oct 20) Programming Assignment PA2 is available. Due date is Nov 17.
      LLoyds K-means clustering algorithm.


@ Available Platforms


@ Available Tools

All students in COMP 633 can login on phaedra.cs.unc.edu using their onyen.

Compilers

OpenMP

Accelerators

MPI


@ Bibliography

This list will evolve throughout the semester. Specific reading assignments are listed above.
  1. PRAM Algorithms, S. Chatterjee, J. Prins, COMP 633 course notes, 2015.
  2. Memory Hierarchy in Cache-Based Systems, R. v.d. Pas, Sun Microsystems, 2003.
  3. OpenMP 3.1 tutorial, Blaise Barney, LLNL, 2015.
  4. Cilk Plus Tutorial (online tutorial).
  5. Shared Memory Consistency Models: A Tutorial, S. V. Adve, K. Gharachorloo, DEC Western Research Labs Report 95/7, 1995.
  6. Computer Architecture: A Quantitative Approach 2nd ed, D. Patterson, J. Hennessy, Morgan-Kaufmann 1996.
  7. Fast N-Body Simulation with CUDA, L. Nyland, M. Harris, J. Prins, GPUGems 3, 2008.
  8. Questions and Answers about BSP, D. Skillicorn, J. Hill, and W. McColl, Scientific Programming 6, 1997.
  9. Message Passing Interface, Blaise Barney, LLNL 2015
  10. Introduction to Parallel Computing: Design and Analysis of Algorithms - Chapter 3, V. Kumar, A. Grama, A. Gupta, G. Karypis, Benjamin-Cummings, 1994.

This page is maintained by prins@cs.unc.edu. Send mail if you find problems.