This project seeks to provide the guarantees of the memory model known as sequential consistency (SC), which is the simple interleaving semantics of threads, at a reasonable performance cost. We argue that "safe" languages in particular, like Java, must support SC, as it protects fundamental abstractions like program order and atomic memory operations for all programs.
Accelerating
Sequential Consistency for Java with Speculative
Compilation (PLDI 2019)
Lun Liu, Todd
Millstein, Madanlal Musuvathi
A
Volatile-by-Default JVM for Server
Applications (OOPSLA 2017)
Lun Liu, Todd
Millstein, Madanlal Musuvathi
DRFx:
An Understandable, High Performance, and Flexible Memory Model for
Concurrent Languages (TOPLAS 2016)
Daniel Marino, Abhayendra
Singh, Todd
Millstein, Madanlal Musuvathi, Satish Narayanasamy
The
Silently Shifting Semicolon (SNAPL 2015)
Daniel Marino, Todd
Millstein, Madanlal Musuvathi, Satish Narayanasamy, Abhayendra Singh
A
Safety-First Approach to Memory Models (IEEE
Micro)
Abhayendra Singh, Satish
Narayanasamy, Daniel Marino, Todd Millstein, Madanlal Musuvathi
End-to-End Sequential Consistency
(ISCA 2012)
Abhayendra Singh, Satish Narayanasamy, Daniel Marino, Todd Millstein,
and Madanlal Musuvathi
IEEE Micro Top Pick
A Case for an SC-Preserving Compiler
(PLDI 2011)
Daniel Marino, Abhayendra Singh, Todd Millstein,
Madanlal Musuvathi, and Satish Narayanasamy
Efficient Processor Support for DRFx, a Memory
Model with Exceptions
(ASPLOS 2011)
Abhayendra Singh, Daniel Marino, Satish Narayanasamy, Todd Millstein,
and Madanlal Musuvathi
DRFx: A Simple and Efficient Memory Model for Concurrent Programming Languages
(PLDI 2010)
Daniel Marino, Abhayendra Singh, Todd Millstein,
Madanlal Musuvathi, and Satish Narayanasamy
Our volatile-by-default modification to the Julia compiler, as described in the TOPLAS 2021 paper, is available here.
Click here to download our SC-preserving version of the LLVM compiler, which is described in the PLDI 2011 paper above.