Skip to content
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 account

Have an account? Log in