CS 264 Overview
You can watch the lecture live with the Harvard DCE Live Classrom and interact with us with our Adobe Connect Channel. The Video Archives are posted here.

Note that all lecture videos from the CS264 "2009 Edition" are now freely available on iTunes U.

Enjoy!

Week 1: Introduction

Tue Jan 25 (Lecture 1):

Introduction
[pdf, slideshare]
Thu Jan 27 (Lab 1):

Getting Started
[notes, github, hw0]

Week 2: Architecture, Theory and Parallel Patterns

Tue Feb 1 (Lecture 2):

Architecture, Theory and Patterns
lecture: [pdf, slideshare]

Ressources:
What Every Programmer Should Know About Memory (2007) U. Drepper
Thu Feb 3 (Lab 2):

Getting Started (cont'd)

Week 3: Introduction to GPU Computing with CUDA

Tue Feb 8 (Lecture 3):

Introduction to GPU Computing, CUDA Basics
[pdf, slideshare]
Thu Feb 10 (Lab 3):

CUDA Basics
slides [pdf, ppt], material [zip], video [adobe]

Week 4: Intermediate-level CUDA

Tue Feb 15 (Lecture 4):

Intermediate-level CUDA Programming
[pdf, slideshare]
Thu Feb 17 (Lab 4):

CUDA Intermediate
slides [ppt, pdf], source [cu]

Week 5: Advanced-level CUDA

Tue Feb 22 (Lecture 5):

Advanced-level CUDA Programming
[pdf, slideshare]
Thu Feb 24 (Lab 5):

CUDA Advanced
slides [pdf], material [zip]

Week 6: CUDA Ninja Tricks

Tue Mar 1 (Lecture 6):

CUDA Ninja Tricks:
GPU Scripting, Meta-programming & Auto-tuning
lecture: [pdf, slideshare]

Ressources:
PyCUDA and PyOpenCL: A Scripting-Based Approach to GPU Run-Time Code Generation (2011) A. Klöckner, N. Pinto, Y. Lee, B. Catanzaro, P. Ivanov, A. Fasih

GPU Meta-Programming: A Case Study in Biologically-Inspired Machine Vision (GPU Computing Gems Vol. 2, 2011) N. Pinto, D.D. Cox.
Thu Mar 3 (Lab 6):

CUDA Advanced (cont'd)
slides [pdf], material [zip]

Week 7: Cluster Programming

Tue Mar 8 (Lecture 7):

GPU Cluster Computing
[pdf, slideshare]
Thu Mar 10 (Lab 7):

MPI & 0mq
slides [0mq_pdf, mpi_pdf], material [zip]

Week 8: Spring Break !

Tue Mar 15: Happy Holidays !
Thu Mar 17: Happy Holidays !

Week 9: Cloud Computing with Amazon EC2 and MapReduce


Tue Mar 22 (Lecture 8):

Justin Riley (MIT)
Cloud Computing, Amazon EC2, MIT StarCluster
[pdf, slideshare]

Zak Stone (Harvard)
MapReduce & Hadoop
[pdf, slideshare]
Thu Mar 24 (Lab 8):

MapReduce
slides [gdoc], material [tar.gz]

Week 10: Guest Lectures (Part 1)


Tue Mar 29 (Guest Lecture 1):
Location: Maxwell Dworkin G125

Max Lin (Google Research) [twitter @m4xl1n]
Machine Learning on Big Data: Lessons Learned from Google Projects
lecture: [pdf, slideshare, abstract]
related links: google prediction slides [pdf, gdoc]

Wen-mei Hwu (UIUC) [webpage]
High-Level Programming Models for Heterogeneous Parallel Computing
lecture: postponed
related links: SC10 MasterWorks [pdf, abstract]
Thu Mar 31 (Guest Lectures 2 & 3):
Location: Harvard Hall 104

Andreas Klöckner (NYU) [webpage]
Easy, Effective, Efficient: GPU Programming in Python with PyOpenCL and PyCUDA
lecture: [pdf, slideshare, abstract]
related links: research article, pycuda, pyopencl

Cyrus Omar (CMU) [webpage, twitter @neurocy]
cl.oquence: High-Level Language Abstractions for Low-Level Programming
lecture: [pdf, slideshare, abstract]
related links [atomic hedgehog, cl.oquence]

Week 11: Guest Lectures (Part 2)


Tue April 5 (Guest Lectures 4 & 5):
Location: Maxwell Dworkin G125

Mike Bauer (Stanford) [webpage]
Programming the Memory Hierarchy with Sequoia
lecture: [pdf, slideshare, abstract]
related links: sequoia

Cliff Wooley (NVIDIA) [webpage]
Analysis-Driven Performance Optimization with CUDA
lecture: [pdf, slideshare, abstract]
related links: Talk at GTC'10 [pdf, video, abstract]
Thu April 7 (Guest Lecture 6):
Location: Harvard Hall 104

John Owens (UC Davis) [webpage]
Irregular Parallelism on the GPU: Algorithms and Data Structures
lecture: [pdf, slideshare, abstract]
related links: publications

Week 12: Guest Lectures (Part 3)


Tue April 12 (Guest Lecture 7):
Location: Maxwell Dworkin G125

Nicolas Vasilache (Reservoir Labs) [webpage]
The R-Stream High-Level Program Transformation Tool
(or "Programming GPUs without Writing a Line of CUDA")
lecture: [pdf, slideshare, abstract]

Nathan Bell (NVIDIA) [webpage]
High-Productivity CUDA Development with the Thrust Template Library
lecture: cancelled
related links: Talk at GTC'10 [pdf, video, abstract]
Thu April 14 (Guest Lecture 8):
Location: Harvard Hall 104


Gregory Diamos (Georgia Tech) [website]
Dynamic Compilation for Massively Parallel Processors
lecture: [pdf, slideshare, abstract]
related links: Talk at GTC'10 [pdf, video, abstract, ocelot]

Week 13: Guest Lectures (Part 4) & Project Clinic


Tue April 19 (Guest Lectures 9 & 10):
Location: Maxwell Dworkin G125

James Malcom (AccelerEyes) [linkedin]
Jacket - Visual Computing
lecture: [pdf, slideshare, abstract]

David Rich (Microsoft Research)
The Onset of Parallelism, Changes in Computer Architecture and Microsoft's Role in the Transition
lecture: [pdf, slideshare, abstract]
Thu April 21 (Project Clinic):
Location: Harvard Hall 104

The teaching staff will be there to assist you and your projects.

Week 14: Guest Lectures (Part 5)


Tue April 26 (Guect Lecture 11):
Location: Maxwell Dworkin G125

Duane Merrill (University of Virginia) [webpage]
Managing Dynamic Parallelism on GPUs: A Case Study of High Performance Sorting
lecture: [pdf, slideshare, abstract]
related links: Talk at GTC'10 [video, abstract]
Thu April 28 (Project Period 1):
No class.

Week 15: Project Period (no class)


Tue May 3 (Project Period 2):
No class.
Thu May 5 (Project Period 3):
No class.

Week 16: Project Presentations


Tue May 10 (Project Presentation 1):
Location: Maxwell Dworkin G125

Project list
Presence: mandatory
Thu May 12 (Project Presentation 2):
Location: Maxwell Dworkin G125

Project list
Presence: mandatory


What are the lab sessions?


The lectures focus on concepts and theory, but there's often quite a gap between that and actually getting your code to run. There are a lot of details that are best practiced in a hands-on/tutorial environment with peers. Lab sessions will be held in the instructional computing lab in Room 104 at 53 Church St. where we have 30 MacPro PCs with NVIDIA GPUs. The sessions will be run by the TFs. The lab sessions loosely structured: We will discuss algorithms, share tips and tricks, answer any questions you may have, and address issues that come up. Do not treat this as a license to slack off. You are still expected to come to class and work hard.
What about guest lectures?

As you can see, various people with great expertise in different areas of massively parallel computing have agreed to give guest lectures. I am very excited about this, and would like to sincerely thank them for their time and efforts. Your attendance at guest lectures is mandatory and will count towards your participation grade.

Distance education students are of course exempt from attending the lab sessions and guest lectures in person. However, you can still benefit by joining the live or archived video streams and asking questions through Adobe Connect Live (see Requirements for details).