Dynamic Program Analysis and Runtime Systems for Reliable Concurrent Software

CSE 5349 (Programming Languages)

Instructor: Michael Bond

Spring 2014
Tuesdays, 3:00–4:50 pm
Jennings Hall 164

Office hours: by appointment

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.

Paper discussion plan (tentative)

Group discussions, critiques, and in-class discussions

Course policies

Discussion board (including critique submission)

Calendar:

Links for importing this calendar into your calendar program (let me know if you have any problems): XML    iCal    HTML

Prerequisites

There are no formal prerequisites, but it will help to have some background in programming languages, runtime systems, and/or software engineering in general; and program analysis, parallel/concurrent programming, and/or software reliability in particular.

For more information

Contact me (Mike) with any questions or feedback.

Acknowledgments

Thanks to Luis Ceze, Cormac Flanagan, Steve Freund, Dan Grossman, Shan Lu, Kathryn McKinley, Feng Qin, Nasko Rountev, and Craig Zilles, as well as others whom I'm omitting accidentally, for providing advice, feedback, inspiration, and other help with this course.