The labs and assignments are meant to help you better understand the material and improve your intuition. The labs use common problems and there are therefore plenty of “solutions” available on the web. This is a graduate level class and I expect you to ignore these resources so that you can gain the most out of your effort and work. Looking at available material after you are done thinking about things yourself is encouraged; just document your original work and additional improvements you may have made based on the ideas of others.

Don’t forget to cite all the sources you used.

Required Reading 1

Out: 9/5/2007 Due:9/10/2007
Please see reading for lecture 3


Lab 1 — locality in a CPU

Out: 9/10/2007 Due:9/30/2007

This lab deals with locality in a CPU (single core with registers, cache hierarchy, and memory). Full details available in the Locality Lab 1 page.

Lab 2 — parallelism and locality in a GPU

Part 1: Out: 10/15/2007 Due:10/22/2007

Part 2: Out: 10/22/2007 Due:11/8/2007

In this lab we will explore massively parallel programming on a GPU. Full details are in the GPU Lab 2 page.

Lab3 — Parallelism and Locality in CELL processor using Sequoia compiler%

Part 1: Out: 11/14/2007 Due:11/21/2007

Part 2: Out: 11/19/2007 Due:11/28/2007

Part 3: Out: 11/19/2007 Due:12/1/2007

In this lab we will explore stream programming on a PS3 with Sequoia programming language. Full details are in the Lab3Cell page.