Minimizing Faulty Executions of Distributed Systems
When a bug is found in a long-running distributed system, developers typically start by identifying (i) which events in the execution caused their system to arrive at the unsafe state, and (ii) which events are…
Stamping Out Concurrency Bugs
The shift to multi-core architectures in the past ten years pushed developers to write concurrent software to leverage hardware parallelism. The transition to multi-core hardware happened at a more rapid pace than the evolution of…
Memory Mutation Testing
Stamping Out Concurrency Bugs
The shift to multi-core architectures in the past ten years pushed developers to write concurrent software to leverage hardware parallelism. The transition to multi-core hardware happened at a more rapid pace than the evolution of…
Semi-Supervised Verified Feedback Generation
Can DRAM Do More Than Just Store Data?
In my Ph.D. thesis, I propose mechanisms to address the inefficiency caused by existing memory abstractions, which manage and access memory at different granularities at different resources. In this talk, I will focus my attention…