Abstract
Non-volatile memory (NVM) promises persistent main memory that remains correct despite loss of power. Since caches are expected to remain volatile, concurrent algorithms must be redesigned to ensure a consistent state after a system crash, and to continue the execution upon recovery. We give the first general construction to make any concurrent program persistent, and show that the persistent version is guaranteed to have at most a constant factor blow-up in both steps and contention. We also provide an optimized transformation for normalized lock-free data structures. We experimentally evaluate our transformation by comparing it to a persistent transactional memory, as well as a hand-tuned persistent algorithm. We show that our transformation's performance is reasonable given its generality.
Cite
CITATION STYLE
Ben-David, N., Blelloch, G. E., Friedman, M., & Wei, Y. (2019). Making concurrent algorithms detectable. In Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP (pp. 419–420). Association for Computing Machinery. https://doi.org/10.1145/3293883.3299991
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.