MIT Independent Activities Period (IAP) Course
6.189 Multicore Programming Primer: Learn and Compete in Programming the PLAYSTATION®3 Cell Processor
Prof. Saman Amarasinghe and Dr. Rodric Rabbah
http://cag.csail.mit.edu/ps3
6.189-chair@mit.edu
The era of Moore's law induced performance gains of sequential
programs is over. In the future, the primary method of increasing
program performance will require the utilization of multicore
parallelism. The processing platforms of the future will have hundreds
or even thousands of processor cores that are tightly integrated for
parallel processing. Unfortunately very few engineers, hackers,
and scientists, know how to program these multicore systems. This
pain will be felt in all tiers of the market because of the increasing
reliance on computing power for scientific discovery and even day to day activities.
There will be a deep impact on academic
institutions as well because we have done little to train the
developers of the future with the right concepts and tools so that
they can harness the computing power of multicores they will have at
their disposal.
Some leading vendors are already offering parallel processors on a
chip. Today, most general purpose processors in the market are
multicores. For example, the Cell processor from IBM, Sony, and
Toshiba is a 9-core heterogeneous processor that will power the
Sony PLAYSTATION®3, and appear in various broadband markets. Intel at their
Developer Forum a few months ago announced an 80-core homogeneous
processor slated for fabrication in just a few years. These new
architectures offer the unique opportunity to have parallel systems on
a chip available to the masses in gaming consoles, mobile devices,
personal computers, and embedded platforms. The ubiquitous presence of
parallelism will make it necessary to train a new breed of programmers
so that parallel programming is as easy and tractable as the
conventional serial programming that millions of programmers are
accustomed to today.
Course Highlights
The course serves as an introductory course in parallel programming. It will have a series of lectures on parallel programming concepts as well as a group project providing hands-on experience with parallel programming. The students will have the unique opportunity to use the cutting-edge PLAYSTATION®3 development platform, as they learn how to design and implement exciting applications for multicore architectures. At the end of the course, students will have an understanding of
Course Description
The course will briefly cover the history of the microprocessor
evolution, and discuss the reasons for the recent shift in
architecture design toward multicores. Students will become familiar
with the Cell processor that powers the PLAYSTATION®3, and how its
design choices compare to other emerging architectures.
Students will also learn different programming models for parallel
architectures. There will be small hands-on labs to experiment and
understand the pros and cons of these different programming models,
with an emphasis on stream-based
computing. Student will also learn StreamIt, a new, simple, and natural to
understand programming language for stream computing developed at the
MIT Computer Science and Artificial
Intelligence Laboratory (CSAIL). The course will explore broader implications of the stream
programming model to various kinds of traditional parallelization
technology.
Students will participate in a course long project that can impact one
of several domains that include gaming engines, media applications,
algorithms for molecular dynamics, and protein folding challenge
problems. Students are expected to participate in small project
teams. Course projects will be evaluated based on their performance,
complexity, and completeness.
Students will compete for exciting prizes to be awarded to
the best project as selected by a panel of judges.
Target Student Population
The course is open to all students (undergraduates and graduates). Students who are interested in the course are strongly encouraged to contact 6.189-chair@mit.edu to discuss project ideas before enlisting. We have several projects that we can suggest and discuss with you, or we can discuss some of your own project ideas. We strongly encourage small teams of students per project. Teams of 4-5 students are likely to work best, but smaller teams are also plausible. We can help you assemble a team as necessary, although it is best if you know someone that will want to work on the same project with you. Each team will have dedicated access to a PS3 console, along with programming and debugging tools, tutorials, and hands on help. Interested students should email 6.189-chair@mit.edu before December 15 to discuss projects and ideas. Enrollment is limited. Preference for students with interesting project ideas.