General-purpose software must become more parallel in order to scale to microprocessors that are providing more instead of faster cores. However, programmers using high-performance, general-purpose languages such as Java and C++ are basically stuck using shared memory with locks, a powerful but challenging model that makes it hard to achieve both parallelism and correctness. Languages and software systems could provide better support for achieving correct parallelism—but existing runtime support is impractical.
In this course, we will explore existing and future solutions for providing runtime support for correct, parallel execution. Students will read papers, discuss in small groups, write critiques, and lead in-class discussions. Students will also learn about ongoing work by the instructor's research group, including learning how to use and modify implementations in a research Java virtual machine. Students will undertake a project focused on the new research directions explored in the course.
Links for importing this calendar into your calendar program (let me know if you have any problems): XML iCal HTML