15-499: Parallel Algorithms (Spring 2009)

Instructor: Guy Blelloch, Office hours: Tue 1:30-2:30PM, WeH 7125

Place/Time: Doherty 1212, TR 12:00PM - 1:20PM.

TA: Harsha Simhadri, email: harshas]AT[cs-cmu-edu, Office hours: Wednesday 4:00-5:00PM, WeH 8303



Course Description: In this course students will learn about parallel algorithms. The emphasis will be on algorithms that can be used on shared-memory parallel machines such as multicore architectures. The course will include both a theoretical component and a programming component. Topics to be covered include: modeling the cost of parallel algorithms, lower-bounds, and parallel algorithms for sorting, graphs, computational geometry, and string operations. The programming language component will include data-parallelism, threads, futures, scheduling, synchronization types, transactional memory, and message passing.

Course Requirements: There will be bi-weekly assignments, two exams (midterm and final), and a final project. Each student will be required to scribe one lecture. Your grade will be partitioned into: 10% scribe notes, 40% assignments, 20% project, 15% midterm, 15% final.

Policies: For homeworks, unless stated otherwise, you can look up material on the web and books, but you cannot look up solutions to the given problems. If you do use material from the web, books or papers outside of the reading list you must cite the source. You can work in groups, but must write up the answers individually. You can either typeset or write up written solutions by hand. If you write them by hand it must be readable by the Professor and TA to be graded. Any programming assignments will be due online. Late assignments (up to 2 days late) will be penalized 25%. We will accept one late assignment with no penalty. Assignment will be due at the beginning of class on the due date.

Previous version of the class (Fall 07). We would like to thank the Intel Education Initiative for their generous support for developing this course and donating multi6, the multicore machine used in the course.

Approximate Schedule

Reading List:

Other Readings: