Benjamin P. Wood's research while affiliated with Wellesley College and other places

Publications (14)

Conference Paper
Full-text available
Data race detection is a useful dynamic analysis for multithreaded programs that is a key building block in record-and-replay, enforcing strong consistency models, and detecting concurrency bugs. Existing software race detectors are precise but slow, and hardware support for precise data race detection relies on assumptions like type safety that ma...
Article
This paper presents Fast Instrumentation Bias (FIB), a sound and complete dynamic data race detection algorithm that improves performance by reducing or eliminating the costs of analysis atomicity. In addition to checking for errors in target programs, dynamic data race detectors must introduce synchronization to guard against metadata races that m...
Conference Paper
To detect data races that harm production systems, program analysis must target production runs. However, sound and precise data race detection adds too much run-time overhead for use in production systems. Even existing approaches that provide soundness or precision incur significant limitations. This work addresses the need for soundness (no miss...
Article
Researchers have proposed always-on data-race exceptions as a way to avoid the ill effects of data races, but slow performance of accurate dynamic data-race detection remains a barrier to the adoption of always-on data-race exceptions. Proposals for accurate low-level (e.g., hardware) data-race detection have the potential to reduce this performanc...
Article
Researchers have proposed always-on data-race exceptions as a way to avoid the ill effects of data races, but slow performance of accurate dynamic data-race detection remains a barrier to the adoption of always-on data-race exceptions. Proposals for accurate low-level (e.g., hardware) data-race detection have the potential to reduce this performanc...
Conference Paper
Researchers have proposed always-on data-race exceptions as a way to avoid the ill effects of data races, but slow performance of accurate dynamic data-race detection remains a barrier to the adoption of always-on data-race exceptions. Proposals for accurate low-level (e.g., hardware) data-race detection have the potential to reduce this performanc...
Conference Paper
Full-text available
Mobile devices commonly access shared data stored on a server. To ensure responsiveness, many applications maintain local replicas of the shared data that remain instantly accessible even if the server is slow or temporarily unavailable. Despite its apparent simplicity and commonality, this scenario can be surprisingly challenging. In particular, a...
Conference Paper
Data-race freedom is a valuable safety property for multithreaded programs that helps with catching bugs, simplifying memory consistency model semantics, and verifying and enforcing both atomicity and determinism. Unfortunately, existing software-only dynamic race detectors are precise but slow; proposals with hardware support offer higher performa...
Article
Data-race freedom is a valuable safety property for multithreaded programs that helps with catching bugs, simplifying memory consistency model semantics, and verifying and enforcing both atomicity and determinism. Unfortunately, existing software-only dynamic race detectors are precise but slow; proposals with hardware support offer higher performa...
Article
Atomicity violations and violations of sequential consistency are two broad classes of concurrency errors that reduce the reliability of software. These failures often occur when different processors interleave their memory accesses at a fine grain. Greedy Coher-ence (GreCo) is a simple hardware technique that delays responses to some coherence req...
Conference Paper
In this paper we propose Recon, a new general approach to concurrency debugging. Recon goes beyond just detecting bugs, it also presents to the programmer short fragments of buggy execution schedules that illustrate how and why bugs happened. These fragments, called reconstructions, are inferred from inter-thread communication surrounding the root...
Article
Proposals to treat data races as exceptions provide simplified semantics for shared-memory multithreaded programming languages and memory models by guaranteeing that execution remains data-race-free and sequentially consistent or an exception is raised. However, the high cost of precise race detection has kept the cost-to-benefit ratio of data-race...
Conference Paper
In this paper we propose a communication-centric approach to specifying and checking how multithreaded programs use shared memory to perform inter-thread communication. Our approach complements past efforts for improving the safety of multithreaded programs such as race detection and atomicity checking. Unlike prior work, we focus on what pieces of...
Article
With more and more complex pieces of software using explicit multithreading, tools to extract the structure of such software are increasingly important. We present a novel tool that builds graphs describing how threads in shared-memory parallel programs communicate. Compared to prior work, our communication graphs are code-centric: nodes represent...

Citations

... Hybrid techniques integrate both HB and lockset analysis [55,84], but continue to suffer from the disadvantages of both techniques. Other techniques sacrifice soundness for performance by sampling memory accesses [6,10,21,46] or requiring hardware support to speed up the race detection analysis [17,59,80,85,88]. Prior analyses have also explored detecting a subset of data races that arise due to conflicts among overlapping regions [7,18,45]. ...
... Another major source of slowdown is program instrumentation and expensive metadata synchronization. Several approaches have attempted to minimize this slowdown, including hardware assistance [14,69], hybrid race detection [43,67], static analysis [24,48], and sophisticated ownership protocols [11,50,65]. ...
... Hybrid techniques integrate both HB and lockset analysis [55,84], but continue to suffer from the disadvantages of both techniques. Other techniques sacrifice soundness for performance by sampling memory accesses [6,10,21,46] or requiring hardware support to speed up the race detection analysis [17,59,80,85,88]. Prior analyses have also explored detecting a subset of data races that arise due to conflicts among overlapping regions [7,18,45]. ...
... Recent work on code-based inter-thread communication invariants has employed hardware to record and analyze instruction-level inter-thread communication patterns in program executions for debugging [26] or inference of likely intended communication invariants to enforce in subsequent program executions [47]. Another approach records function-level communication for program understanding and characterization [45]. Our system is pure software and employs explicit specifications to define precisely what communication is allowed at the method level. ...
... Devietti et.al. [21] also uses hardware instrumentation to monitor memory accesses. However, their approach requires custom hardware support unavailable on commodity hardware. ...
... Hybrid techniques integrate both HB and lockset analysis [55,84], but continue to suffer from the disadvantages of both techniques. Other techniques sacrifice soundness for performance by sampling memory accesses [6,10,21,46] or requiring hardware support to speed up the race detection analysis [17,59,80,85,88]. Prior analyses have also explored detecting a subset of data races that arise due to conflicts among overlapping regions [7,18,45]. ...
... Some do so by exposing weakly-consistent replicated objects with approachable semantics; indeed, the original CRDT work fits in this vein [Shapiro et al. 2011a]. Other such approaches include the CloudTypes work from Microsoft [Burckhardt et al. 2012] or work on allowing an application to safely mix consistency levels via MixT [Milano and Myers 2018], Disciplined Inconsistency [Holt et al. 2016], CScript [De Porre et al. 2020], or Red-Blue consistency [Li et al. 2012]. Some work automatically chooses consistency levels for the programmer, driving the choice of mixed consistency via program invariants rather than explicit consistency annotations [Kaki et al. 2018;Li et al. 2014;Sivaramakrishnan et al. 2015;Haller 2018, 2020]. ...
... 3. We illustrate the versatility of tree clocks by presenting tree clock-based algorithms for the MAZ and SHB partial orders. 4. We perform a large-scale experimental evaluation of the tree clock data structure for computing the MAZ, SHB and HB partial orders, and compare its performance against the standard vector 1 2 1 3 2 jo in C 1 = [27,5,9,45,17,26] C 1 = [28,6,9,45,17,26] C 2 = [11,6,5,32,14,20] 2 , 6 1 , 11 3 , 5 4 , 32 5 , 14 6 , 20 C 2 Figure 1: (Left) Illustration of the effect of a join operation C 1 ← C 1 ⊔ C 2 on the clocks of the two threads. The -th entry in timestamps correspond to thread . ...
... We demonstrate that the reported locations correctly identify real performance bugs. The HITM mechanism we use in this work can also serve as an efficient underpinning for identifying inter-thread communication patterns, an important component of tools for program understanding [34], data race detection [13], and concurrency bug detection [21,22]. Because of LASER's lightweight approach, we expect it to be amenable to integration with a wide variety of concurrency analyses. ...
... Taint Tracking, Program Analysis and Pattern-based Bug Finding IBIS-S uses static program analysis to find bugs because input-dependent idempotence violations match a clear, detectable pattern. Pattern based bug detection has seen success finding data-races [Savage et al. 1997], concurrency bugs [Lu et al. 2007a,b;Lucia and Ceze 2009;Lucia et al. 2010Lucia et al. , 2011Park et al. 2009Park et al. , 2012Shi et al. 2010], and performance bugs [Nistor et al. 2015[Nistor et al. , 2013. Researchers have applied static analysis to help find and fix concurrency bugs [Zhang et al. 2013] or to aid in enabling safe speculative parallelism, which considers similar correctness criteria to IBIS [Prabhu et al. 2010]. ...