14 weeks from November 9, 2020 through February 12, 2021
Evenings 17:00 -- 18:30 (1 hour lecture, 30 minutes of Q&A)
Week | Monday | Wednesday | Friday |
---|---|---|---|
1 | Introduction and Motivation (9 November 2020) | Types of architecture (11 November 2020) | Flynn’s taxonomy (13 November 2020) |
2 | Holiday on account of Diwali (16 November 2020) | Basic concepts: cores, nodes, threads, processes (Rescheduled: 18 November 2020) | Cache, principle of locality, shared memory (20 November 2020) |
3 | Distributed memory, communication (23 November 2020) | Data races, synchronization (25 November 2020) | Critical section, locks (27 November 2020) |
4 | Atomics, barriers (30 November 2020) | Performance measurement in sequential programs (2 December 2020) | Profiling and identifying bottlenecks, Examples (4 December 2020) |
5 | Overheads, Amdahl’s law (7 December 2020) | OpenMP introduction, Hello World program (9 December 2020) | Work-sharing constructs (11 December 2020) |
6 | Scheduling constructs (14 December 2020) | Synchronization constructs (16 December 2020) | Examples using arrays (18 December 2020) |
7 | Examples using matrices (21 December 2020) | Using tools such as gprof (23 December 2020) | Christmas Holiday (25 December 2020) |
8 | Case study: matrix products (28 December 2020) | Case study continued ( 30 December 2020) | New Year Holiday (1 January 2021) |
9 | MPI introduction, Hello World program (4 January 2021) | Communicator and communication (6 January 2021) | Point-to-point function calls (8 January 2021) |
10 | Collective function calls (11 January 2021) | Measuring performance via communication volume and bandwidth (13 January 2021) | Case study: Monte-Carlo Pi computing using MPI (15 January 2021) |
11 | Case study: domain decomposition method (18 January 2021) | Case study: domain decomposition method (contd.) (20 January 2021) | Case study: matrix products using MPI (22 January 2021) |
12 | Introduction to GPU Architecture (25 January 2021) | Introduction to CUDA Programming Model (Threads, Blocks, Grid, Warps) (27 January 2021) | CUDA Memory: Global Memory (29 January 2021) |
13 | CUDA Thread Programming ( Thread Divergence, Atomic Operation, Warp sync Programming) (1 February 2021) | CUDA Memory: Shared Memory ( 3 February 2021) | CUDA Tools: Profiler, Debugger (5 February 2021) |
14 | Directive Based GPU Programming (8 February 2021) | Multi-GPU computing (10 February 2021) | Case study: CFD, closing (12 February 2021) |