Search papers, labs, and topics across Lattice.
The paper investigates the performance impact of different combinations of persistency instructions (flush and fence) in persistent memory (PM) programs, revealing that specific combinations can improve performance without compromising crash-consistency. Based on these findings, the authors developed Bent\=o, a black-box binary rewriter that automatically optimizes PM programs by strategically inserting persistency instructions. Experiments demonstrate that Bent\=o achieves performance improvements of up to 15% in existing PM programs.
Unlock up to 15% performance gains in your persistent memory programs with Bent\=o, a black-box binary rewriter that optimizes persistency instructions without compromising crash consistency.
Persistent Memory (PM) is a new storage technology thatbrings high performance, byte addressability, and persistency for a lesser cost than DRAM. Due to cache volatility and store reordering, developers must use explicit instructions (e.g.: flush and fence) to guarantee that the application state remains consistent upon crashes. This is difficult to get right and, in fact, several tools have been created to detect bugs in PM programs. To overcome this difficulty, programmers tend to be overly conservative, for instance, by enforcing unnecessary ordering constraints, which partially forfeits the performance benefits of using PM. In this paper, we study the impact that different combinations of persistency instructions have in several PM programs and found that a specific combination can lead to performance improvements while preserving the original crash-consistency semantics. Based on these results we developed Bent\=o an automatic and black-box binary rewriter that can boost the performance of existing PM programs by up to 15% with minimal programmer effort.