CMSC 32102
Topics in Concurrency
Winter 2010

General Information

Instructor: John Reppy Ryerson 256
Lecture: TR 1:30-2:20
Ry 277


The focus of this seminar will be on high-level languages for parallel and concurrent programming, and on the models of parallelism that they provide. It is aimed at graduate students and advanced undergraduates who are interested in parallel and concurrent language design and implementation. We will survey a number of parallel and concurrent programming languages, including Concurrent ML, CUDA/OpenCL, NESL, Cilk, X10, and others. Each student will be expected to prepare and lead a discussion about one of the languages that we survey.


Each student will be responsible for organizing and leading two classes worth of lectures/discussion. Here is a tentative list of dates and topics:

Date Topic Reading
Feb. 1 & 3    Nested data parallelism and flattening; Nesl, Nepal, and DPH   Parallel Algorithms by Blelloch and Maggs
    Higher-order flattening by Leshchinskiy et al
    Functional array fusion by Chakravarty and Keller
Feb 8 & 10 Cilk/JCilk; work stealing The implementation of the Cilk-5 multithreaded language by Frigo et al
    Scheduling multithreaded computations by work stealing by Blumofe and Leiserson
    The JCilk Language for Multithreaded Computing by Danaher et al
Feb 15 & 17 CUDA/OpenCL and GPGPUs Parallel processing on NVIDIA graphics processing units using CUDA by Wynters
    OpenCL Programming Guide for the Cuda Architecture (Chapters 1-3)
    CUDA C Best Practices Guide (Chapters 3 & 6)
Feb 22 & 24    X10 X10: Programming for Hierarchical Parallelism and Non-Uniform Data Access by Ebcioglu et al
    X10: An Object-Oriented Approach to Non-Uniform Cluster Computing by Charles et al
    Deadlock-Free Scheduling of X10 Computations with Bounded Resources by Agarwal et al
    X10 Language Specification (Version 2.1) by Saraswat et al
Mar 1 & 3    Sequoia Sequoia: Programming the Memory Hierarchy by Fatahalian et al
    Compilation for Explicitly Managed Memory Hierarchies by Knight et al
    Sequoia++ User Manual by Bauer et al


Each student will be responsible for writing a paper that compares two of the above languages (other than the one presented by the student). The first draft of the paper is due Friday, March 4. You will get comments by March 8th and the final version will be due March 15th.

Last revised: March 3, 2010