Login
Course Information
Identification

CS 751: Principles of Concurrent and Parallel Programming
 
Description

Course Content :
1. Concurrency Fundamentals: Critical Section, locks, mutual exclusion, mutex primitives, deadlock freedom, starvation freedom, progress requirements, atomicity, concurrent objects, nondeterminism, monitors, sequential consistency, linearizability, lock free concurrency, communicating sequential processes, rendezvous, java concurrency, data races, thread programming, memory consistency, software transaction Memory
2. Fundamentals of Parallelism: power and potential of parallelism, paradigm shift, scalable performance and portability, parallel computer models, candidate type architectures (CTA), measuring performance and performance loss, scalable algorithmic techniques, parallelism with multiple instruction streams
3. Realizing Parallelism: Creation and coordination of parallelism , spawn concurrency (async, barriers, finish), abstract performance metrics (work, critical paths), Amdahl's Law, weak vs. strong scaling, data races and determinism, data race avoidance (immutability, futures, accumulators, dataflow), deadlock avoidance, abstract vs. real performance (granularity, scalability), parallel algorithms, run-time scheduling, work distribution
3. Locality & Distribution: memory hierarchies, locality, cache affinity, data movement, message-passing (MPI), communication overheads (bandwidth, latency), MapReduce, accelerators, GPGPUs, CUDA, OpenCL. Partially global address space programming languages like X10, Fortress, Chapel
Structure of Instruction: Each class period will include time for both instructor lectures and in-class exercises based on assigned readings. The lab exercises will be used to aid students gain hands-on programming experience with the concepts introduced. The course will place equal emphasis on both theory and practice to ensure that students gain a strong knowledge of parallel programming foundations,. Real-world parallel programming models such as Java Concurrency, MapReduce, MPI, OpenCL and CUDA will be introduced.
 
References

While lot of coverage will be from state-of-the-art papers, the following will be the main reference text books.
M. Ben Ori, Principles of Concurrent and Distributed Programming, Addison Wesley, ISBN-13: 978-0321312839, 1990
M. Herlihy and N. Shavit, The art of Multiprocessor Programming, Morgan Kaufmann 2008
C Lin and Larry Schneider, Principles of Parallel Programming, ISBN-13: 9780321487902, Pearson, 2009
M. Raynal, Concurrent Programming: Algorithms, Principles, and Foundations, 2013, ISBN 978-3-642-32027-9
Doug Lea, Concurrent programming in Java, Addison Wesley, 1999
 
Home Page

Not Available
 
Prerequisites

Course on Programming and Algorithms Course Type: PG Course: M. Tech. + B. Tech Students
 
Other Details

Duration : Full Semester Total Credit : 6
Type : Theory
 
Autumn Semester 2019-20

Status : Offered Instructor : Prof. R. K. Shyamasundar
 
Spring Semester 2019-20

Status : Not Offered Instructor : ---




Last Modified Date: 15-Jul-2013

Webmail

Username:
Password:
Faculty CSE IT
Forgot Password
    [+] Sitemap     Feedback