Keynote 1: Relaxed memory ordering needs a better specification
Modern programs, and especially low-level libraries, often rely on concurrent memory accesses that do not enforce memory ordering, such as C++’s
memory_order_relaxed accesses. Concurrent garbage collectors commonly rely on such accesses, as does a surprising amount of other performance-critical software. On some common architectures, it is both unnecessary and quite expensive to guarantee ordering for these accesses.
Unfortunately, we still have no agreement on an acceptable semantics for such accesses. Hence verification of algorithms like realistic concurrent garbage collectors appears infeasible. We review the so-called “out-of-thin-air” problem, the technical obstacles, and the ongoing controversy surrounding performance of a possible solution. We focus on some examples to illustrate that existing implementations may in fact produce extremely surprising results for code that includes unordered memory accesses.
Sun 23 Jun
|09:00 - 09:05|
|09:05 - 09:45|
|09:45 - 10:10|
|10:10 - 10:35|
|10:35 - 11:00|