Overview
Processors with over hundred cores have already become a reality.
However, technologies to create software that can take advantage of
this massive parallelism remains to be a grand challenge in computer
science. This special topics course will discuss recent advances and
new directions that are being pursued to address this challenge. We
will discuss solutions that cut across the computing stack from
languages to processor design, including topics such as active
testing, deterministic parallel computing, GPGPU, MapReduce, OS
support for multi-core, functional programming for concurrency
(Scala), memory models, etc.
The course includes programming assignments and a final project. The
programming assignments consists of experimenting with a work-stealing
scheduler, implementing a simple data-race detector for concurrency
testing, and developing a simple GPU program.
You will get access to latest
parallel programming tools and systems for your projects such as
CAC cluster, Amazon's EC2,
Thread
Checker, pinPlay record and replay tool, and CHESS
for active testing.
Announcements
Welcome to EECS 598 |