![]() |
Parallel
Programming (CS 4961)
Fall 2011
|
![]() |
This course is a comprehensive exploration of parallel programming paradigms, examining core concepts, focusing on a subset of widely used contemporary parallel programmingmodels, and providing context with a small set of parallel algorithms. In the last few years, this area has been the subject of significant interest due to a number of factors. Most significantly, the advent of multi-core microprocessors has made parallel computing available to the masses. At the high end, major vendors of large-scale parallel systems, including IBM, Cray and Sun, have recently introduced new parallel programming languages designed for applications that exploit tens of thousands of processors. Embedded devices can also be thought of as small multiprocessors. The convergence of these distinct markets offers an opportunity to finally provide application programmers with a productive way to express parallel computation.
The course will be structured as lectures, homeworks, programming assignments and a final project. Students will perform four programming projects to express algorithms using selected parallel programming models and measure their performance. The final project will consist of teams of 2-3 students who will implement codes by combining multiple programming models.
Prerequisites: CS 4400, or concurrent
35% | Programming projects(P1, P2, P3, P4) | |
25% | Written homeworks | |
25% | Quiz and Final | |
15% | Final project |
![]() |
An Introduction to Parallel Programming by Peter Pacheco (ISBN: 978-0-12-374260-5). |
Date | Topics | Read | Assign | Notes |
23 Aug |
Introduction (ppt) (pdf)
Importance of parallel programming |
Chapter 1 | HW01 | - |
25 Aug |
Introduction to parallel algorithms and correctness (ppt) (pdf)
Concerns for parallelism correctness and performance |
Chapter 1 | - | - |
30 Aug |
Parallel Computing Platforms and Models of Execution (ppt) (pdf)
A diversity of parallel architectures, taxonomy, and examples |
Chapter 2, 2.1-2.3, pgs. 15-46 | - | - |
01 Sep |
Memory systems and interconnect (ppt) (pdf)
Memory system organization and coherence, interconnect topologies, models for applications |
Chapter 2, 2.1-2.3, pgs. 15-46 | HW02 | - |
06 Sep | Introduction to Shared Memory Programming (ppt) (pdf) | Ch. 2.4-2.4.3 (pgs. 47-52), 4.1-4.2 (pgs. 151-159), 5.1 (pgs. 209-215) | - | - |
08 Sep |
Data Parallelism in OpenMP(ppt) (pdf)
Introduction to OpenMP and Parallel Loops |
Chapter 5.2-5.7, 5.10 (pgs. 216-241, 256-258) | P01 | Sun Ultrasparc T2 |
13 Sep |
Reordering Transformations and Data Locality(ppt) (pdf)
Code restructuring techniques: permutation and tiling |
- | - | Dep Notes |
15 Sep |
Data Locality, cont. (ppt) (pdf)
Code restructuring techniques: unroll-and-jam and scalar replacement |
- | - | Locality Notes |
20 Sep |
Lab session for Project 1 (WEB L130)
- |
- | - | - |
22 Sep |
Task Parallelism (ppt) (pdf)
Open MP 3.0, Task-Parallel Algorithms |
Chapter 5.8 (pgs. 241-450) | HW03 | - |
27 Sep |
Introduction to SIMD (ppt) (pdf)
SIMD engines in multimedia and GPUs |
- | - | Loop Coalescing Notes |
29 Sep |
More SIMD (ppt)
(pdf) SIMD control flow |
- | P02 | - |
04 Oct |
Advanced Synchronization (ppt)
(pdf) Synchronization in Pthreads |
Chapter 4.4-4.9 (pgs. 162-190) | - | - |
06 Oct |
-
Lab Day |
- | - | - |
18 Oct |
-
Midterm Review |
- | - | - |
20 Oct |
-
Midterm |
- | - | - |
25 Oct |
Introduction to GPUs and CUDA (ppt)
(pdf) Architecture and programming constructs |
(Optional) CUDA Programming Guide | - | DDJ article |
27 Oct |
CUDA, cont. (ppt) (pdf)
SIMT execution model, divergent branches, memory hierarchy |
- | P03 | - |
01 Nov |
CUDA, cont. (ppt) (pdf)
More memory hierarchy and examples |
- | - | - |
03 Nov |
Introduction to Message Passing (ppt)
(pdf) What is MPI? Complexities of a distributed address space |
Chapter 3.1-3.2, 3.4, pgs. 83-96, 101-106 | - | - |
08 Nov |
Sparse Algorithms, MPI Communication Operations (ppt) (pdf)
Sparse Matrices, Collectives |
Chapter 3.3,3.5-3.7 (pgs. 106-136) | - | - |
10 Nov |
MPI Communication (ppt) (pdf)
Non-blocking communication, One-sided communication |
- | P04 | - |
15 Nov |
Class cancelled
- |
- | - | - |
17 Nov |
Guest Lecture, Ganesh Gopalakrishnan
- |
- | - | ISP |
22 Nov |
Data Parallel Algorithms (ppt) (pdf)
N-body |
Chapter 6.1 | - | - |
29 Nov |
Parallel Graph Algorithms (ppt) (pdf)
Tree Search, Traveling Salesperson Problem |
Chapter 6.2 | - | - |
01 Dec |
Course Retrospective and Future Directions for Parallel Computing (ppt)
(pdf) Where the field is going |
Chapter 7 | - | - |
06 Dec |
Project Presentations, Dry Run
- |
- | - | - |
08 Dec |
Project Presentations Poster Session
- |
- | - | - |
13 Dec |
-
- |
- | - | - |
15 Dec |
Final exam
- |
- | - | - |