Course No.: EECS 598
Credit Hours: 3
Instructor: Satish Narayanasamy
Prerequisites: EECS 470 or 482 or grad standing
Processors with over hundred cores have already become a reality. However, technologies that can allow mainstream programmers to take advantage of this massive parallelism remains to be a grand challenge in computer science. This course will cover recent advances that seek to address this challenge. We will discuss holistic solutions that cut across the computing stack from languages to processor design. Specific topics include high-productivity languages, transactional memory, deterministic parallel computing, GPGPU, MapReduce, multi-core OS, active testing, speculative parallelism, etc.
The course includes a term project. We may be able to get you access to latest parallel programming tools and systems for your project such as compute resources in a cloud, many-core systems, Thread checker, record-n-replay tool, debugging tools such as CHESS, etc. [More Info]