Course material

Course material

Handouts, notes from lectures etc. will be accessible from this web page as they are produced by the lecturers.

Lecture notes

GPU Algorithms I: The Early Years Lecture, 1 by Suresh Venkatasubramanian

GPU Algorithms II: Models and CUDA, Lecture 2 by Suresh Venkatasubramanian

GPU Algorithms III & IV: Computing with CUDA, Lecture 3 & 4 by Suresh Venkatasubramanian

Distributed Data Streams: All lectures by Graham Cormode

Multi-core Computing: Lecture 1 by Phillip B. Gibbons

Multi-core Computing: Lecture 2 by Phillip B. Gibbons

Multi-core Computing: Lecture 3 by Phillip B. Gibbons

MapReduce Algorithms I, Intro and Model: Lecture 1 by Sergei Vassilvitskii

MapReduce Algorithms II, Graphs: Lecture 2 by Sergei Vassilvitskii

MapReduce Algorithms III, Machine Learning: Lecture 3 by Sergei Vassilvitskii

Background literature

  • Especially related to Suresh Venkatasubramanian's lectures on: "GPU Algorithms": List of literature.

  • Especially related to Graham Cormode's lectures on: "Distributed Data Streams": List of literature.

  • Especially related to Phillip B. Gibbon's lectures on "Multi-Core Computing":

Leslie G. Valianta: A Bridging Model for Multi-Core Computing, 2010.

Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons, and Julian Shun: Internally Deterministic Parallel Algorithms Can Be Fast, 2012.

Guy E. Blelloch and Phillip B. Gibbons: Effectively Sharing a Cache Among Threads, 2004.

Guy E. Blelloch, Jeremy T. Fineman, and Phillip B. Gibbons: Scheduling Irregular Parallel Computations on Hierarchical Caches, 2011.

Matteo Frigo, Pablo Halpern, Charles E. Leiserson, and Stephen Lewin-Berlin: Reducers and Other Cilk++ Hyperobjects, 2009.

Guy E. Blelloch, Phillip B. Gibbons, and Yossi Matias: Provably Efficient Scheduling for Languages with Fine-Grained Parallelism, 1999.

Robert D. Blumofe and Charles E. Leiserson: Scheduling Multithreaded Computations by Work
Stealing, 1999.