Name: Peizhao Ou
Chair: Prof. Brian Demsky
Date: Tuesday October 16, 2018
Time: 10am – 12pm
Location: CALIT2 Room 3008
Title: An Initial Study of Simple Approaches To Eliminating Out-of-Thin-Air Results
Eliminating so-called “out-of-thin-air” (OOTA) results is an open problem in many existing programming language memory models including Java, C, and C++. OOTA behaviors are problematic in that they break both formal and informal modular reasoning about program behavior. In spite of many years of research
efforts, defining memory model semantics that are easily understood, allow existing optimizations, and forbid OOTA results remains an open problem. This thesis explores two simple solutions to this problem that forbid OOTA results. The first solution is targeted towards Java-like languages in which all memory operations may create OOTA executions, and the second solution is targeted towards C/C++-like memory models in which racing operations are explicitly labeled as atomic operations. Our solutions provide a per-candidate execution criterion that makes it possible to examine a single execution and determine whether the memory model permits the execution. We implemented and evaluated both solutions in the LLVM compiler framework. Our results show that on an ARMv8 processor the first solution has an average overhead of 3.1% and a maximum overhead of 17.6% on the SPEC CPU2006 C/C++ benchmarks, and that the second solution has no overhead on average and a maximum overhead of 6.3% on 43 concurrent data structures. The results indicate that these simple approaches to eliminating out-of-thin-air behaviors deserve further consideration.