Demo Data from EDBT 2026 / reviewers in the wild / expert
Lun Liu 0002
dblp:36/3052-2
· DBLP profile ↗
3ranked-venue papers
3as first author
1since 2021 · last 2021
0000-0001-6550-8129ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 3 first-author · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
3 papers |
Concurrent programming · 72% Runtime systems and virtual machines · 25% Compilers and program optimization · 4% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Memory systems · 100% |
Topics — the 8 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
memory models |
0.8 | 2 | 2021 | Safe-by-default Concurrency for Modern Programming Languages · ACM Trans. Program. Lang. Syst. 2021 A volatile-by-default JVM for server applications · Proc. ACM Program. Lang. 2017 |
Concurrent programming › memory models
sequential consistency |
0.6 | 2 | 2021 | Safe-by-default Concurrency for Modern Programming Languages · ACM Trans. Program. Lang. Syst. 2021 A volatile-by-default JVM for server applications · Proc. ACM Program. Lang. 2017 |
Concurrent programming
concurrency semantics |
0.5 | 1 | 2021 | Safe-by-default Concurrency for Modern Programming Languages · ACM Trans. Program. Lang. Syst. 2021 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.5 | 1 | 2021 | Safe-by-default Concurrency for Modern Programming Languages · ACM Trans. Program. Lang. Syst. 2021 |
Concurrent programming › memory models
java memory model |
0.4 | 2 | 2019 | A volatile-by-default JVM for server applications · Proc. ACM Program. Lang. 2017 Accelerating sequential consistency for Java with speculative compilation · PLDI 2019 |
Memory systems › memory consistency
memory consistency model |
0.4 | 1 | 2019 | Accelerating sequential consistency for Java with speculative compilation · PLDI 2019 |
Memory systems › memory consistency › memory consistency model
sequential consistency |
0.4 | 1 | 2019 | Accelerating sequential consistency for Java with speculative compilation · PLDI 2019 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.3 | 1 | 2017 | A volatile-by-default JVM for server applications · Proc. ACM Program. Lang. 2017 |
Methods — techniques the papers use, named apart from their topics
speculative compilation · 0.8speculative enforcement · 0.5compiler optimization · 0.5volatile-by-default semantics · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Safe-by-default Concurrency for Modern Programming LanguagesabstractModern “safe” programming languages follow a design principle that we call safety by default and performance by choice . By default, these languages enforce important programming abstractions, such as memory and type safety, but they also provide mechanisms that allow expert programmers to explicitly trade some safety guarantees for increased performance. However, these same languages have adopted the inverse design principle in their support for multithreading. By default, multithreaded programs violate important abstractions, such as program order and atomic access to individual memory locations to admit compiler and hardware optimizations that would otherwise need to be restricted. Not only does this approach conflict with the design philosophy of safe languages, but very little is known about the practical performance cost of providing a stronger default semantics. In this article, we propose a safe-by-default and performance-by-choice multithreading semantics for safe languages, which we call volatile -by-default . Under this semantics, programs have sequential consistency (SC) by default, which is the natural “interleaving” semantics of threads. However, the volatile -by-default design also includes annotations that allow expert programmers to avoid the associated overheads in performance-critical code. We describe the design, implementation, optimization, and evaluation of the volatile -by-default semantics for two different safe languages: Java and Julia. First, we present V BD-HotSpot and V BDA-HotSpot, modifications of Oracle’s HotSpot JVM that enforce the volatile -by-default semantics on Intel x86-64 hardware and ARM-v8 hardware. Second, we present S C-Julia, a modification to the just-in-time compiler within the standard Julia implementation that provides best-effort enforcement of the volatile -by-default semantics on x86-64 hardware for the purpose of performance evaluation. We also detail two different implementation techniques: a baseline approach that simply reuses existing mechanisms in the compilers for handling atomic accesses, and a speculative approach that avoids the overhead of enforcing the volatile -by-default semantics until there is the possibility of an SC violation. Our results show that the cost of enforcing SC is significant but arguably still acceptable for some use cases today. Further, we demonstrate that compiler optimizations as well as programmer annotations can reduce the overhead considerably. Lun Liu 0002, Todd D. Millstein, Madan Musuvathi |
ACM Trans. Program. Lang. Syst. | 1 |
| 2019 | Accelerating sequential consistency for Java with speculative compilationabstractA memory consistency model (or simply a memory model) specifies the granularity and the order in which memory accesses by one thread become visible to other threads in the program. We previously proposed the volatile-by-default (VBD) memory model as a natural form of sequential consistency (SC) for Java. VBD is significantly stronger than the Java memory model (JMM) and incurs relatively modest overheads in a modified HotSpot JVM running on Intel x86 hardware. However, the x86 memory model is already quite close to SC. It is expected that the cost of VBD will be much higher on the other widely used hardware platform today, namely ARM, whose memory model is very weak. Lun Liu 0002, Todd D. Millstein, Madan Musuvathi |
PLDI | 1 |
| 2017 | A volatile-by-default JVM for server applicationsabstractA *memory consistency model* (or simply *memory model*) defines the possible values that a shared-memory read may return in a multithreaded programming language. Choosing a memory model involves an inherent performance-programmability tradeoff. The Java language has adopted a *relaxed* (or *weak*) memory model that is designed to admit most traditional compiler optimizations and obviate the need for hardware fences on most shared-memory accesses. The downside, however, is that programmers are exposed to a complex and unintuitive semantics and must carefully declare certain variables as `volatile` in order to enforce program orderings that are necessary for proper behavior. This paper proposes a simpler and stronger memory model for Java through a conceptually small change: *every* variable has `volatile` semantics by default, but the language allows a programmer to tag certain variables, methods, or classes as `relaxed` and provides the current Java semantics for these portions of code. This *volatile-by-default* semantics provides *sequential consistency* (SC) for all programs by default. At the same time, expert programmers retain the freedom to build performance-critical libraries that violate the SC semantics. At the outset, it is unclear if the `volatile`-by-default semantics is practical for Java, given the cost of memory fences on today's hardware platforms. The core contribution of this paper is to demonstrate, through comprehensive empirical evaluation, that the `volatile`-by-default semantics is arguably acceptable for a predominant use case for Java today -- server-side applications running on Intel x86 architectures. We present VBD-HotSpot, a modification to Oracle's widely used HotSpot JVM that implements the `volatile`-by-default semantics for x86. To our knowledge VBD-HotSpot is the first implementation of SC for Java in the context of a modern JVM. VBD-HotSpot incurs an average overhead versus the baseline HotSpot JVM of 28% for the Da Capo benchmarks, which is significant though perhaps less than commonly assumed. Further, VBD-HotSpot incurs average overheads of 12% and 19% respectively on standard benchmark suites for big-data analytics and machine learning in the widely used Spark framework. Lun Liu 0002, Todd D. Millstein, Madan Musuvathi |
Proc. ACM Program. Lang. | 1 |