{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,21]],"date-time":"2025-06-21T11:02:25Z","timestamp":1750503745490,"version":"3.41.0"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2019,12,26]],"date-time":"2019-12-26T00:00:00Z","timestamp":1577318400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2019,12,31]]},"abstract":"<jats:p>Non-volatile Main Memories (NVMs) offer a promising way to preserve data persistence and enable computation recovery in case of failure. While the use of NVMs can significantly reduce the overhead of failure recovery, which is the case with High-Performance Computing (HPC) kernels, rewriting existing programs or writing new applications for NVMs is non-trivial. In this article, we present a compiler-support that automatically inserts complex instructions into kernels to achieve NVM data-persistence based on a simple programmer directive. Unlike checkpointing techniques that store the whole system state, our technique only persists user-designated objects as well as some parameters required for safe recovery such as loop induction variables. Also, our technique can reduce the number of data transfer operations, because our compiler coalesces consecutive memory-persisting operations into a single memory transaction per cache line when possible.<\/jats:p>\n          <jats:p>Our compiler-support is implemented in the LLVM tool-chain and introduces the necessary modifications to loop-intensive computational kernels (e.g., TMM, LU, Gauss, and FFT) to force data persistence. The experiments show that our proposed compiler-support outperforms the most recent checkpointing techniques while its performance overheads are insignificant.<\/jats:p>","DOI":"10.1145\/3371236","type":"journal-article","created":{"date-parts":[[2019,12,26]],"date-time":"2019-12-26T21:05:46Z","timestamp":1577394346000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Compiler-support for Critical Data Persistence in NVM"],"prefix":"10.1145","volume":"16","author":[{"given":"Reem","family":"Elkhouly","sequence":"first","affiliation":[{"name":"Tanta University, Egypt and Waseda University, Shinjuku-ku, Tokyo, Japan"}]},{"given":"Mohammad","family":"Alshboul","sequence":"additional","affiliation":[{"name":"North Carolina State University, Raleigh, NC, USA"}]},{"given":"Akihiro","family":"Hayashi","sequence":"additional","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, GA, USA"}]},{"given":"Yan","family":"Solihin","sequence":"additional","affiliation":[{"name":"University of Central Florida, Scorpius St. Orlando, FL, USA"}]},{"given":"Keiji","family":"Kimura","sequence":"additional","affiliation":[{"name":"Waseda University, Shinjuku-ku, Tokyo, Japan"}]}],"member":"320","published-online":{"date-parts":[[2019,12,26]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3316482.3326357"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3323091"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the ACM\/IEEE 45th International Symposium on Computer Architecture (ISCA). 439--451","author":"Alshboul M.","year":"2018","unstructured":"M. Alshboul , J. Tuck , and Y. Solihin . 2018. Lazy persistency: A high-performing and write-efficient software persistency technique . In Proceedings of the ACM\/IEEE 45th International Symposium on Computer Architecture (ISCA). 439--451 . DOI:https:\/\/doi.org\/10.1109\/ISCA. 2018 .00044 10.1109\/ISCA.2018.00044 M. Alshboul, J. Tuck, and Y. Solihin. 2018. Lazy persistency: A high-performing and write-efficient software persistency technique. In Proceedings of the ACM\/IEEE 45th International Symposium on Computer Architecture (ISCA). 439--451. DOI:https:\/\/doi.org\/10.1109\/ISCA.2018.00044"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660224"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3352460.3358279"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2248487.1950380"},{"key":"e_1_2_1_7_1","volume-title":"Larus","author":"Cohen Nachshon","year":"2019","unstructured":"Nachshon Cohen , David T. Aksun , Hillel Avni , and James R . Larus . 2019 . Fine-grain checkpointing with in-cache-line logging. CoRR abs\/1902.00660 (2019). arxiv:1902.00660 http:\/\/arxiv.org\/abs\/1902.00660. Nachshon Cohen, David T. Aksun, Hillel Avni, and James R. Larus. 2019. Fine-grain checkpointing with in-cache-line logging. CoRR abs\/1902.00660 (2019). arxiv:1902.00660 http:\/\/arxiv.org\/abs\/1902.00660."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629589"},{"volume-title":"Introduction to Algorithms","author":"Cormen Thomas H.","key":"e_1_2_1_10_1","unstructured":"Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , and Clifford Stein . 2009. Introduction to Algorithms . The MIT Press . Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2009. Introduction to Algorithms. The MIT Press."},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201918)","author":"David Tudor","year":"2018","unstructured":"Tudor David , Aleksandar Dragojevi\u0107 , Rachid Guerraoui , and Igor Zablotchi . 2018 . Log-free concurrent data structures . In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201918) . USENIX Association, 373--386. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/david. Tudor David, Aleksandar Dragojevi\u0107, Rachid Guerraoui, and Igor Zablotchi. 2018. Log-free concurrent data structures. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201918). USENIX Association, 373--386. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/david."},{"key":"e_1_2_1_12_1","volume-title":"JavaOne Conference. https:\/\/docs.huihoo.com\/javaone\/2006\/java-ee\/ts-3395","author":"DeMichiel Linda","year":"2006","unstructured":"Linda DeMichiel and Michael Keith . 2006 . Java persistence API . Presented in JavaOne Conference. https:\/\/docs.huihoo.com\/javaone\/2006\/java-ee\/ts-3395 .pdf. Linda DeMichiel and Michael Keith. 2006. Java persistence API. Presented in JavaOne Conference. https:\/\/docs.huihoo.com\/javaone\/2006\/java-ee\/ts-3395.pdf."},{"volume-title":"Proceedings of the IEEE International Symposium on High Performance Distributed Computing (HPDC\u201916)","author":"Denny Joel E.","key":"e_1_2_1_13_1","unstructured":"Joel E. Denny , Seyong Lee , and Jeffrey S. Vetter . 2016. NVL-C: Static analysis techniques for efficient, correct programming of non-volatile main memory systems . In Proceedings of the IEEE International Symposium on High Performance Distributed Computing (HPDC\u201916) . ACM, 125--136. Joel E. Denny, Seyong Lee, and Jeffrey S. Vetter. 2016. NVL-C: Static analysis techniques for efficient, correct programming of non-volatile main memory systems. In Proceedings of the IEEE International Symposium on High Performance Distributed Computing (HPDC\u201916). ACM, 125--136."},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS\u201917)","author":"Denny J. E.","year":"2017","unstructured":"J. E. Denny , S. Lee , and J. S. Vetter . 2017. Language-based optimizations for persistence on nonvolatile main memory systems . In Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS\u201917) . 1163--1173. DOI:https:\/\/doi.org\/10.1109\/IPDPS. 2017 .60 10.1109\/IPDPS.2017.60 J. E. Denny, S. Lee, and J. S. Vetter. 2017. Language-based optimizations for persistence on nonvolatile main memory systems. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS\u201917). 1163--1173. DOI:https:\/\/doi.org\/10.1109\/IPDPS.2017.60"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3061639.3062265"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2592798.2592814"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the 26th International Conference on Parallel Architectures and Compilation Techniques (PACT\u201917)","author":"Elnawawy H.","year":"2017","unstructured":"H. Elnawawy , M. Alshboul , J. Tuck , and Y. Solihin . 2017. Efficient checkpointing of loop-based codes for non-volatile main memory . In Proceedings of the 26th International Conference on Parallel Architectures and Compilation Techniques (PACT\u201917) . 318--329. DOI:https:\/\/doi.org\/10.1109\/PACT. 2017 .58 10.1109\/PACT.2017.58 H. Elnawawy, M. Alshboul, J. Tuck, and Y. Solihin. 2017. Efficient checkpointing of loop-based codes for non-volatile main memory. In Proceedings of the 26th International Conference on Parallel Architectures and Compilation Techniques (PACT\u201917). 318--329. DOI:https:\/\/doi.org\/10.1109\/PACT.2017.58"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.14778\/2735496.2735502"},{"key":"e_1_2_1_19_1","volume-title":"High performance data persistence in non-volatile memory for resilient high performance computing. CoRR abs\/1705.00264","author":"Huang Yingchao","year":"2017","unstructured":"Yingchao Huang , Kai Wu , and Dong Li. 2017. High performance data persistence in non-volatile memory for resilient high performance computing. CoRR abs\/1705.00264 ( 2017 ). arxiv:1705.00264 http:\/\/arxiv.org\/abs\/1705.00264. Yingchao Huang, Kai Wu, and Dong Li. 2017. High performance data persistence in non-volatile memory for resilient high performance computing. CoRR abs\/1705.00264 (2017). arxiv:1705.00264 http:\/\/arxiv.org\/abs\/1705.00264."},{"key":"e_1_2_1_20_1","unstructured":"Intel. 2016. Persistent collections for Java. https:\/\/github.com\/pmem\/pcj.  Intel. 2016. Persistent collections for Java. https:\/\/github.com\/pmem\/pcj."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2954679.2872410"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918)","author":"Jeong J.","year":"2018","unstructured":"J. Jeong , C. H. Park , J. Huh , and S. Maeng . 2018. Efficient hardware-assisted logging with asynchronous and direct-update for persistent memory . In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918) . 520--532. DOI:https:\/\/doi.org\/10.1109\/MICRO. 2018 .00049 10.1109\/MICRO.2018.00049 J. Jeong, C. H. Park, J. Huh, and S. Maeng. 2018. Efficient hardware-assisted logging with asynchronous and direct-update for persistent memory. In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918). 520--532. DOI:https:\/\/doi.org\/10.1109\/MICRO.2018.00049"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3365137.3365396"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918)","author":"Liu Q.","year":"2018","unstructured":"Q. Liu , J. Izraelevitz , S. K. Lee , M. L. Scott , S. H. Noh , and C. Jung . 2018. iDO: Compiler-directed failure atomicity for nonvolatile memory . In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918) . 258--270. DOI:https:\/\/doi.org\/10.1109\/MICRO. 2018 .00029 10.1109\/MICRO.2018.00029 Q. Liu, J. Izraelevitz, S. K. Lee, M. L. Scott, S. H. Noh, and C. Jung. 2018. iDO: Compiler-directed failure atomicity for nonvolatile memory. In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918). 258--270. DOI:https:\/\/doi.org\/10.1109\/MICRO.2018.00029"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2670529.2754959"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3307650.3322206"},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the 45th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36","author":"Martino C. D.","year":"2015","unstructured":"C. D. Martino , W. Kramer , Z. Kalbarczyk , and R. Iyer . 2015. Measuring and understanding extreme-scale application resilience: A field study of 5,000,000 HPC application runs . In Proceedings of the 45th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36 . DOI:https:\/\/doi.org\/10.1109\/DSN. 2015 .50 10.1109\/DSN.2015.50 C. D. Martino, W. Kramer, Z. Kalbarczyk, and R. Iyer. 2015. Measuring and understanding extreme-scale application resilience: A field study of 5,000,000 HPC application runs. In Proceedings of the 45th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36. DOI:https:\/\/doi.org\/10.1109\/DSN.2015.50"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the IEEE 36th International Conference on Computer Design (ICCD\u201918)","author":"Memaripour A.","year":"2018","unstructured":"A. Memaripour and S. Swanson . 2018. Breeze: User-level access to non-volatile main memories for legacy software . In Proceedings of the IEEE 36th International Conference on Computer Design (ICCD\u201918) . 413--422. DOI:https:\/\/doi.org\/10.1109\/ICCD. 2018 .00069 10.1109\/ICCD.2018.00069 A. Memaripour and S. Swanson. 2018. Breeze: User-level access to non-volatile main memories for legacy software. In Proceedings of the IEEE 36th International Conference on Computer Design (ICCD\u201918). 413--422. DOI:https:\/\/doi.org\/10.1109\/ICCD.2018.00069"},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918)","author":"Nguyen T.","year":"2018","unstructured":"T. Nguyen and D. Wentzlaff . 2018. PiCL: A software-transparent, persistent cache log for nonvolatile main memory . In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918) . 507--519. DOI:https:\/\/doi.org\/10.1109\/MICRO. 2018 .00048 10.1109\/MICRO.2018.00048 T. Nguyen and D. Wentzlaff. 2018. PiCL: A software-transparent, persistent cache log for nonvolatile main memory. In Proceedings of the 51st IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201918). 507--519. DOI:https:\/\/doi.org\/10.1109\/MICRO.2018.00048"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2678373.2665712"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.730527"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3329785.3329917"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2007.4"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3124680.3124729"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3286475.3286476"},{"volume-title":"Proceedings of the 48th IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201915)","author":"Ren J.","key":"e_1_2_1_38_1","unstructured":"J. Ren , J. Zhao , S. Khan , J. Choi , Y. Wu , and O. Mutiu . 2015. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems . In Proceedings of the 48th IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201915) . 672--685. DOI:https:\/\/doi.org\/10.1145\/2830772.2830802 10.1145\/2830772.2830802 J. Ren, J. Zhao, S. Khan, J. Choi, Y. Wu, and O. Mutiu. 2015. ThyNVM: Enabling software-transparent crash consistency in persistent memory systems. In Proceedings of the 48th IEEE\/ACM International Symposium on Microarchitecture (MICRO\u201915). 672--685. DOI:https:\/\/doi.org\/10.1145\/2830772.2830802"},{"key":"e_1_2_1_39_1","volume-title":"Phys.: Conf. Series 78 (July 2007","author":"Schroeder Bianca","year":"2022","unstructured":"Bianca Schroeder and Garth A. Gibson . 2007. Understanding failures in petascale computers. J . Phys.: Conf. Series 78 (July 2007 ), 01 2022 . DOI:https:\/\/doi.org\/10.1088\/1742-6596\/78\/1\/012022 10.1088\/1742-6596 Bianca Schroeder and Garth A. Gibson. 2007. Understanding failures in petascale computers. J. Phys.: Conf. Series 78 (July 2007), 012022. DOI:https:\/\/doi.org\/10.1088\/1742-6596\/78\/1\/012022"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2018.2866794"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3123939.3124539"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314608"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3313808.3313822"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/545214.545229"},{"volume-title":"Fractals, Cellular Automata, Neural Networks, Genetic Algorithms, Fuzzy Logic with C++, Java, Symbolic C++ and Reduce Programs","author":"Steeb Willi-Hans","key":"e_1_2_1_45_1","unstructured":"Willi-Hans Steeb . 1999. The Nonlinear Workbook: Chaos , Fractals, Cellular Automata, Neural Networks, Genetic Algorithms, Fuzzy Logic with C++, Java, Symbolic C++ and Reduce Programs . World Scientific Publishing Company . Willi-Hans Steeb. 1999. The Nonlinear Workbook: Chaos, Fractals, Cellular Automata, Neural Networks, Genetic Algorithms, Fuzzy Logic with C++, Java, Symbolic C++ and Reduce Programs. World Scientific Publishing Company."},{"key":"e_1_2_1_46_1","unstructured":"TensorFlow. 2019. Multi-Level Intermediate Representation. https:\/\/github.com\/tensorflow\/mlir.  TensorFlow. 2019. Multi-Level Intermediate Representation. https:\/\/github.com\/tensorflow\/mlir."},{"key":"e_1_2_1_47_1","volume-title":"Proceedings of the 44th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36","author":"Tiwari D.","year":"2014","unstructured":"D. Tiwari , S. Gupta , and S. S. Vazhkudai . 2014. Lazy checkpointing: Exploiting temporal locality in failures to mitigate checkpointing overheads on extreme-scale systems . In Proceedings of the 44th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36 . DOI:https:\/\/doi.org\/10.1109\/DSN. 2014 .101 10.1109\/DSN.2014.101 D. Tiwari, S. Gupta, and S. S. Vazhkudai. 2014. Lazy checkpointing: Exploiting temporal locality in failures to mitigate checkpointing overheads on extreme-scale systems. In Proceedings of the 44th IEEE\/IFIP International Conference on Dependable Systems and Networks. 25--36. DOI:https:\/\/doi.org\/10.1109\/DSN.2014.101"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.609281"},{"key":"e_1_2_1_49_1","first-page":"4","article-title":"Mnemosyne: Lightweight persistent memory","volume":"47","author":"Volos Haris","year":"2011","unstructured":"Haris Volos , Andres Jaan Tack , and Michael M. Swift . 2011 . Mnemosyne: Lightweight persistent memory . ACM SIGPLAN Not. 47 , 4 (Mar. 2011), 91--104. DOI:https:\/\/doi.org\/10.1145\/2248487.1950379 10.1145\/2248487.1950379 Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. ACM SIGPLAN Not. 47, 4 (Mar. 2011), 91--104. DOI:https:\/\/doi.org\/10.1145\/2248487.1950379","journal-title":"ACM SIGPLAN Not."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3316482.3326358"},{"key":"e_1_2_1_51_1","volume-title":"Lam","author":"Wolf Michael E.","year":"1991","unstructured":"Michael E. Wolf and Monica S . Lam . 1991 . A data locality optimizing algorithm. In ACM SIGPLAN Not., Vol. 26 . ACM , 30--44. Michael E. Wolf and Monica S. Lam. 1991. A data locality optimizing algorithm. In ACM SIGPLAN Not., Vol. 26. ACM, 30--44."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3296957.3173201"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3291057"},{"key":"#cr-split#-e_1_2_1_54_1.1","doi-asserted-by":"crossref","unstructured":"M. Ye K. Zubair A. Mohaisen and A. Awad. 2019. Towards low-cost mechanisms to enable restoration of encrypted non-volatile memories. IEEE Trans. Depend. Sec. Comput. (2019) 1--1. DOI:https:\/\/doi.org\/10.1109\/TDSC.2019.2941193 10.1109\/TDSC.2019.2941193","DOI":"10.1109\/TDSC.2019.2941193"},{"key":"#cr-split#-e_1_2_1_54_1.2","doi-asserted-by":"crossref","unstructured":"M. Ye K. Zubair A. Mohaisen and A. Awad. 2019. Towards low-cost mechanisms to enable restoration of encrypted non-volatile memories. IEEE Trans. Depend. Sec. Comput. (2019) 1--1. DOI:https:\/\/doi.org\/10.1109\/TDSC.2019.2941193","DOI":"10.1109\/TDSC.2019.2941193"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.sysarc.2019.101662"},{"key":"e_1_2_1_56_1","volume-title":"Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201919)","author":"Zhang Lu","year":"2019","unstructured":"Lu Zhang and Steven Swanson . 2019 . Pangolin: A fault-tolerant persistent memory programming library . In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201919) . USENIX Association, Berkeley, CA, 897--911. http:\/\/dl.acm.org\/citation.cfm?id&equals;3358807.3358884. Lu Zhang and Steven Swanson. 2019. Pangolin: A fault-tolerant persistent memory programming library. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201919). USENIX Association, Berkeley, CA, 897--911. http:\/\/dl.acm.org\/citation.cfm?id&equals;3358807.3358884."},{"key":"e_1_2_1_57_1","volume-title":"Proceedings of the IEEE 7th Non-Volatile Memory Systems and Applications Symposium (NVMSA\u201918)","author":"Zhang M.","year":"2018","unstructured":"M. Zhang , X. Yao , and C. Wang . 2018. NVCL: Exploiting NVRAM in cache-line granularity differential logging . In Proceedings of the IEEE 7th Non-Volatile Memory Systems and Applications Symposium (NVMSA\u201918) . 37--42. DOI:https:\/\/doi.org\/10.1109\/NVMSA. 2018 .00011 10.1109\/NVMSA.2018.00011 M. Zhang, X. Yao, and C. Wang. 2018. NVCL: Exploiting NVRAM in cache-line granularity differential logging. In Proceedings of the IEEE 7th Non-Volatile Memory Systems and Applications Symposium (NVMSA\u201918). 37--42. DOI:https:\/\/doi.org\/10.1109\/NVMSA.2018.00011"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3352460.3358290"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371236","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371236","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:53:04Z","timestamp":1750204384000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371236"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,12,26]]},"references-count":57,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2019,12,31]]}},"alternative-id":["10.1145\/3371236"],"URL":"https:\/\/doi.org\/10.1145\/3371236","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2019,12,26]]},"assertion":[{"value":"2019-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-12-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}