Week

Date

What

Topic

Week 1

Tues
8/21

No class

 

Wed
8/22

No class

 

Thurs
8/23

Lecture 1

First Lecture: Intro, Background, Course Objectives
and Course Projects Video Games 
--Keutzer

Fri
8/24

No class

 

 

Week 2

Tues
8/28

Lecture 2

A programers introduction to parallel computing: Amdahl's law,  Concurrency vs. Parallelism, and the jargon of parallel computing.   Getting started with OpenMP and Pthreads.
--Mattson

Wed
8/29

Discussion 1

Intro to the Lab Environment.
Assign Intro_1: Matrix multiplication with OpenMP and pthreads

Thurs
8/30

Lecture 3

Parallel programing on shared memory computers: complete the introduction to OpenMP and pthreads.  Along the way address granularity, parallel overhead, load balancing, and Weak vs. strong scaling.
--Mattson

Fri
8/31

No class

 

 

Week 3

Tues
9/4

Lecture 4

Shared Memory Concurrency Issues: Races, Livelock, Deadlock, Dining Philosophers
--Mattson

Wed
9/5

Discussion 2

C++ for Java/C Programmers; Working with OpenMP and Pthreads.

Thurs
9/6

Lecture 5


Software Architecture Overview: Overview of Computational and Structural Patterns
--Keutzer

Fri
9/7

Intro_1 due

 

 

Week 4

Tues
9/11

Lecture 6

Sequential Processor Performance: Notions of performance: Insufficiency of Big-O, Matrix-Multiply Example; Pipelining, Superscalar, etc.; Compiler Optimizations; Processor "Speed of Light"
--Keutzer/Allen

Wed
9/12

Discussion 3

pthreads examples.   Assign Intro2

Thurs
9/13

Lecture 7

Memory System Performance: Caches, Cache Hierarchies, benchmarking; Optimizing Matrix Multiplication
--Keutzer

Fri
9/14

 

 

 

Week 5

Tues
9/18

Lecture 8

Parallel Processor Architectures: Multi-Core, Cache Coherence, Memory Consistency; SIMD / SIMT; Vectors; NUMA--Keutzer/Allen

Wed
9/19

Discussion 4

Interactive session exploring performance issues in pthreads and openMP.   They've been thinking about cache coherence É let's use the discussion section to bring up a discussion of vectorization.

Thurs
9/20

Lecture 9

Memory System Performance: Caches, Cache Hierarchies, benchmarking; Optimizing Matrix Multiplication
--Keutzer

Fri
9/21

intro_2 due

 

 

Week 6

Tues
9/25

Lecture 10

Parallel Processor Architectures: Multi-Core, Cache Coherence, Memory Consistency; SIMD / SIMT; Vectors; NUMA
--Keutzer/Allen

Wed
9/26

Discussion 5

Assign MP1: Discuss the CUDA and OpenCL environments in the lab.  Help studetns where appropriate install them on their own laptops.

Thurs
9/27

Lecture 11

Heterogeneous computing: GPUs, CUDA and OpenCL.

 

 

 

 

Week 7

Tues
10/2

Lecture 12

The Roofline Model
--Keutzer

Wed
10/3

Discussion 6

CUDA and data parallel programming.

Thurs
10/4

Lecture 13

Distributed Memory Systems, Supercomputing, and MPI
--Mattson

Sun

 

MP1 due

 

Week 8

Tues
10/9

Midterm review

Announce final project details and review for midterm

Wed
10/10

Discussion 7

Midterm review

Thurs
10/11

MIDTERM

 

Week 9

Tues
10/16

Lecture 14

Design patterns, pattern languages, PLPP overview
--Keutzer

Wed
10/17

Discussion 8

Discuss some exemplar projects from the past.

Thurs
10/18

Lecture 15

PLPP algorithm structure and supporting structures
--Mattson

 

Week 10

Tues
10/23

Lecture 16

Structural patterns and software architecture
--Keutzer

Wed
10/24

Discussion 9

Project meetings: show up with evidence of work!  Q and A session on GPGPU programming

Thurs
10/25

Lecture 17

Graph algorithms, dynamic programming, and speech recognition
--Keutzer

Fri
10/26

MP2 due

 

 

Week 11

Tues
10/30

Lecture 18

Speech - part2
--Keutzer,Gonina,Sheffield

Wed
10/31

Discussion 10

Project meetings: show up with evidence of work!

Thurs
11/1

Lecture 19

Sparse linear algebra and image contour detection
--Gonina,Sheffield

 

Week 12

Tues
11/6

Lecture 20

Principle component analysis and 3D reconstruction
--Gonina,Sheffield

Wed
11/7

Discussion 11

Project meetings: show up with evidence of work!

Thurs
11/8

Lecture 21

Object recognition
--Gonina,Sheffield

 

Week 13

Tues
11/14

Lecture 22

Optimization patterns
--Gonina,Sheffield

Wed
11/15

Discussion 12

Project meetings: show up with evidence of work!

Thurs
11/16

Lecture 23

Future of parallel computing
--Keutzer

 

Week 14

Tues
11/20

Lecture 24

Use class time to talk about projects

 

Week 15

Tues
11/27

Lecture 25

Project presentations

Wed
11/28

Discussion 13

Final exam review

Thurs
11/29

Lecture 26

Project presentations

 

Final Exam: December 12th, 2012. 8 to 11 AM
Final project write-up due date: November 30th, 2012
Grades:
35% Assignments (MPs)
30% Midterm and final exam
25% Final project
10% attendance and class participation