IT-803 (D) · Parallel Computing/Official Syllabus
Parallel Computing (IT-803 (D)) - Official Syllabus
1
Unit 1
Introduction
- The need for parallelism
- Forms of parallelism (SISD, SIMD, MISD, MIMD)
- Moore's Law and Multi-cores
- Fundamentals of Parallel Computers
- Communication architecture, Message passing architecture
- Data parallel architecture, Dataflow architecture
- Systolic architecture
- Performance Issues
2
Unit 2
Large Cache Design
- Shared vs. Private Caches
- Centralized vs. Distributed Shared Caches
- Snooping-based cache coherence protocol
- directory-based cache coherence protocol
- Uniform Cache Access
- Non-Uniform Cache Access, D-NUCA, S-NUCA
- Inclusion, Exclusion
- Difference between transaction and transactional memory, STM, HTM
3
Unit 3
Graphics Processing Unit
- GPUs as Parallel Computers
- Architecture of a modern GPU
- Evolution of Graphics Pipelines
- GPGPUs
- Scalable GPUs, Architectural characteristics of Future Systems
- Implication of Technology and Architecture for users
- Vector addition
- Applications of GPU
4
Unit 4
Introduction to Parallel Programming
- Strategies, Mechanism, Performance theory
- Parallel Programming Patterns: Nesting pattern, Parallel Control Pattern, Parallel Data Management
- Map: Scaled Vector, Mandelbrot
- Collative: Reduce, Fusing Map and Reduce
- Scan, Fusing Map and Scan
- Data Recognition: Gather, Scatter, Pack , Stencil and Recurrence
- Fork-Join, Pipeline
5
Unit 5
Parallel Programming Languages
- Distributed Memory Programming with MPI: trapezoidal rule in MPI
- I/O handling, MPI derived datatype
- Collective Communication
- Shared Memory Programming with Pthreads: Conditional Variables, read-write locks, Cache handling
- Shared memory programming with Open MP: Parallel for directives, scheduling loops
- Thread Safety
- CUDA: Parallel programming in CUDA C, Thread management
- Constant memory and Event
- Graphics Interoperability, Atomics, Streams
Reference Books
- Parallel Computer Architecture
- Multi-Core Cache Hierarchies
- An Introduction to Parallel Programming
- Transactional Memory
- Programming Massively Parallel Processors: A Hands-on Approach
- Parallel Computing: From Multicores and GPU's to Petascale
- Structured Parallel Programming: Patterns for Efficient Computation
- CUDA by Example: An Introduction to GeneralPurpose GPU Programming
Go to where you left off?
Quick Add to Notes
Save questions, your own notes and screenshots into notes filed by unit. It takes a free account.
Create free accountHave an account? Log in
Notes Panel