CS 410/510 Multicore Computing

Fall 2009

Mon/Wed 4:40 pm - 6:30 pm (1640 - 1830)
Location: FAB 150
Professor Karen Karavanic

News

Problem Set 1 deadline extended to Monday, October 26.

Course Introduction

Chip Multiprocessing (CMP) offers the potential for performance gains, but also raises challenging research questions related to achieving all or most of that potential. In this course we will examine multicore computing from the perspectives of architecture, operating systems, and application programming. We will investigate both homogeneous multicore (e.g. Intel Core 2 Duo ) and heterogeneous multicore (e.g. Cell (sony playstation) and GPGPU's (General Purpose Graphics Processing Units)). Readings include the textbook, introductory materials, several research papers, and course handouts. Hands on programming projects focus on multithreaded programming, including debugging and performance evaluation. Projects include work with CUDA or similar programming environment for GPUs. We will have several guest speakers through the term from industry and academia.

This course is suitable for undergraduates and masters students. Ph.D. students interested in this course should speak to the instructor about additional project requirements.

This course has been significantly revised from the first "beta" offering in summer 2008. However, there's enough overlap of material that students CANNOT repeat the course for credit. Note: this course is NOT the same as "Multicore Programming," a hands on practicum designed to follow this course. Students MAY receive credit for both Multicore Computing AND Multicore Programming.

Graduates of the summer 2008 beta offering are welcome to sit in on the heterogeneous architectures lectures, if there are empty seats in the classroom.

Prerequisites: A basic understanding of compilers, operating systems, and computer architecture, for example by completing CS321, CS333, and CS341. Ability to program in C/C++ in a Unix/Linux environment.

Textbooks:



Note these links are under construction.
Problem Sets
Project descriptions
Lecture and Reading Schedule
Useful Resources