$ Revised: Tue Dec 3 2013 by prins@cs.unc.edu

UNC logo
COMP 633
Parallel Computing

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

Fall 2013 (Aug 20 - Dec 3)
TTh 12:30 - 1:45 PM FB 009

Instructor: Jan Prins, FB 334, Tel: 919-590-6213, prins@cs.unc.edu
Office hours: Mon 3:00 -4:00 PM and by appt.
(email me with questions anytime)

TA: Duo Zhao SN 370, Tel: TBD, duozhao@cs.unc.edu
Office hours: Tue 3:00 - 5:00 PM

[2D torus]


Overview

This is an introductory graduate course covering several aspects of parallel and high-performance computing. Upon completion, you should

Additional information including the course syllabus can be found in the course overview.

All parallel programming models discussed in this class are supported on BASS which will be available for use in this class.


@ Announcements


@ On-line Handouts

(some material local-access only)

@ Reading Assignments


@ Written and Programming Assignments


@ Software

We will be using the Bass system for programming assignments. The Bass system supports all the programming models studied in this class. The general instructions for getting started on bass are supplemented below with specific instructions for each programming model. When you login to bass.cs.unc.edu you are connected to a specific node on bass dedicated to interactive program development. You can compile programs on this node. Shared-memory programs run within an individual node on bass. Distributed-memory programs run across multiple nodes in Bass. The login node should not be used to run your programs, although a short debug test for a few seconds and no more than 4 cores should be OK. In general programs that need multiple nodes or dedicated nodes or GPUs should be submitted to queues that are managed by the Grid Engine job scheduler.

OpenMP

Cilk and Cilk++

CUDA [NEW]

Java

UPC

MPI


@ Bibliography

This list will evolve throughout the semester. Specific reading assignments are listed above.
  1. PRAM Algorithms, S. Chatterjee, J. Prins, course notes, 2013.
  2. Memory Hierarchy in Cache-Based Systems, R. v.d. Pas, Sun Microsystems, 2003.
  3. OpenMP tutorial, Blaise Barney, LLNL, 2013.
  4. The Implementation of the Cilk-5 Multithreaded Language, M. Frigo, C. Leiserson, K. Randall, in Proceedings of ACM Conf. on Programming Language Design and Implementation, 1998.
  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. "Questions and Answers about BSP", D. Skillicorn, J. Hill, and W. McColl, Scientific Programming 6, 1997.
  8. Designing and Building Parallel Programs, I. Foster, Addison-Wesley, 1995. Online text.
  9. Introduction to Parallel Computing: Design and Analysis of Algorithms, 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.