Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3392717.3392755acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
research-article
Open access

Compiler aided checkpointing using crash-consistent data structures in NVMM systems

Published: 29 June 2020 Publication History

Abstract

Scientific applications use checkpointing for failure recovery. The existing checkpointing approaches were proposed for storing persistent states of applications as checkpoints in disk-based file systems via the block interface. As non-volatile main memory (NVMM) will be included in high-performance computing systems, storing the checkpoints in NVMM-based file systems can significantly waste the performance benefits of NVMM. This is because it under-utilizes memory resources and it does not take advantage of the byte-addressability of NVMM.
In this paper, we propose an NVMM-aware checkpointing approach, named NV-Checkpoint. It uses a compiler-aided technique to automatically generate multi-version data structures, which consist of both the persistent version of data stored in NVMM for failure recovery and the ephemeral version of data placed across DRAM and NVMM. Because of the byte-addressability of NVMM, any versions can be accessed via the memory interface. The multiple versions may share data that are not mutated during the program's execution to reduce data redundancy. NV-Checkpoint provides the same level of guarantee of failure recovery compared to the conventional checkpointing approaches proposed for file systems. Furthermore, its runtime system manages the layout of the data structures to reduce the number of writes to NVMM. It also manages the checkpointing frequency to reduce persistence overhead using machine learning models. Our experimental results with real-world scientific applications show that the performance of annotated programs with NV-Checkpoint using a hybrid of DRAM and NVMM matches the performance of best-effort hand-written versions. It achieves similar scalability as those with ephemeral data structures using only DRAM. It offers up to 121X speedup of execution time compared to the conventional checkpointing approaches using the Atlas parallel file system on the Titan supercomputer.

References

[1]
2003. Gerris: a tree-based adaptive solver for the incompressible Euler equations in complex geometries. J. Comput. Phys. 190, 2 (2003), 572 -- 600.
[2]
2019. pmdk: Persistent Memory Development Kit. https://github.com/pmem/pmdk.
[3]
John Bent, Garth Gibson, Gary Grider, Ben McClelland, Paul Nowoczynski, James Nunez, Milo Polte, and Meghan Wingate. 2009. PLFS: A Checkpoint Filesystem for Parallel Applications. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis (SC '09).
[4]
Amanda Bienz, Robert D. Falgout, William Gropp, Luke N. Olson, and Jacob B. Schroder.2016. Reducing Parallel Communication in Algebraic Multigrid through Sparsification. SIAM J. Scientific Computing 38 (2016).
[5]
Silas Boyd-wickizer, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. Technical Report TR-2014-019, MIT CSAIL. OpLog: a library for scaling update-heavy data structures.
[6]
Greg Bronevetsky, Daniel Marques, Keshav Pingali, Peter Szwed, and Martin Schulz. 2004. Application-Level Checkpointing for Shared Memory Programs. In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XI). Association for Computing Machinery, New York, NY, USA, 235âĂŞ247.
[7]
Irina Calciu, Siddhartha Sen, Mahesh Balakrishnan, and Marcos K. Aguilera. 2017. Black-box Concurrent Data Structures for NUMA Architectures. In Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '17).
[8]
Adrian M. Caulfield, Joel Coburn, Todor Mollov, Arup De, Ameen Akel, Jiahua He, Arun Jagatheesan, Rajesh K. Gupta, Allan Snavely, and Steven Swanson. 2010. Understanding the Impact of Emerging Non-Volatile Memories on High-Performance, IO-Intensive Computing. In Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC '10).
[9]
Sourav Chakraborty, Ignacio Laguna, Murali Emani, Kathryn Mohror, Dhabaleswar K. Panda, Martin Schulz, and Hari Subramoni. 2020. EReinit: Scalable and efficient fault-tolerance for bulk-synchronous MPI applications. Concurrency and Computation: Practice and Experience 32, 3 (2020), e4863. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4863e4863cpe.4863.
[10]
clang: a C language family frontend for LLVM. 2019. http://clang.llvm.org/.
[11]
ROSE compiler infrastructure. 2019. http://rosecompiler.org/.
[12]
MAWI Datasets. 2019. https://graphchallenge.mit.edu/data-sets.
[13]
Xiangyu Dong, Naveen Muralimanohar, Norm Jouppi, Richard Kaufmann, and Yuan Xie. 2009. Leveraging 3D PCRAM Technologies to Reduce Checkpoint Overhead for Future Exascale Systems. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis (SC'09). Association for Computing Machinery, New York, NY, USA, Article Article 57, 12 pages.
[14]
James R. Driscoll, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. 1989. Making Data Structures Persistent. J. Comput. Syst. Sci. 38, 1 (Feb. 1989).
[15]
H. Elnawawy, M. Alshboul, J. Tuck, and Y. Solihin. 2017. Efficient Checkpointing of Loop-Based Codes for Non-volatile Main Memory. In 2017 26th International Conference on Parallel Architectures and Compilation Techniques (PACT). 318--329.
[16]
Hussein Elnawawy, Mohammad Alshboul, James Tuck, and Yan Solihin. 2017. Efficient Checkpointing of Loop-Based Codes for Non-volatile Main Memory. In 2017 26th International Conference on Parallel Architectures and Compilation Techniques (PACT). 318--329.
[17]
Jorge Guerra, Leonardo Marmol, Daniel Campello, Carlos Crespo, Raju Rangaswami, and Jinpeng Wei. 2012. Software Persistent Memory. In Presented as part of the 2012 USENIX Annual Technical Conference (USENIX ATC 12).
[18]
Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, and Ian H. Witten. 2009. The WEKA Data Mining Software: An Update. SIGKDD Explor. Newsl. 11, 1 (Nov. 2009), 10--18.
[19]
Wentao Han, Youshan Miao, Kaiwei Li, Ming Wu, Fan Yang, Lidong Zhou, Vijayan Prabhakaran, Wenguang Chen, and Enhong Chen. 2014. Chronos: A Graph Engine for Temporal Graph Analysis. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys'14).
[20]
Paul H Hargrove and Jason C Duell. 2006. Berkeley lab checkpoint/restart (BLCR) for Linux clusters. Journal of Physics: Conference Series 46 (sep 2006), 494--499.
[21]
Amin Hassani, Anthony Skjellum, Purushotham V. Bangalore, and Ron Brightwell. 2015. Practical Resilient Cases for FA-MPI, a Transactional Fault-Tolerant MPI. In Proceedings of the 3rd Workshop on Exascale MPI (ExaMPI âĂŹ15). Association for Computing Machinery, New York, NY, USA, Article Article 1, 10 pages.
[22]
Stephen D. Hoath. 2016. Fundamentals of inkjet printing: the science of inkjet and droplets. Wiley-VCH Verlag GmbH &Co.
[23]
Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. 2014. NVRAM-aware Logging in Transaction Systems. Proc. VLDB Endow. 8, 4 (Dec. 2014).
[24]
Yingchao Huang, Kai Wu, and Dong Li. 2017. High Performance Data Persistence in Non-Volatile Memory for Resilient High Performance Computing. arXiv:cs.DC/1705.00264
[25]
Dewan Ibtesham, Kurt B Ferreira, and Dorian Arnold. 2015. A Checkpoint Compression Study for High-Performance Computing Systems. Int. J. High Perform. Comput. Appl. 29, 4 (Nov. 2015), 387âĂŞ402.
[26]
Sudarsun Kannan, Ada Gavrilovska, Karsten Schwan, and Dejan Milojicic. 2013. Optimizing Checkpoints Using NVM as Virtual Memory. In Parallel Distributed Processing (IPDPS), 2013 IEEE 27th International Symposium on. 29--40.
[27]
Kyushick Lee, Michael B. Sullivan, Siva Kumar Sastry Hari, Timothy Tsai, Stephen W. Keckler, and Mattan Erez. 2019. GPU Snapshot: Checkpoint Offloading for GPU-Dense Systems. In Proceedings of the ACM International Conference on Supercomputing (ICS âĂŹ19). Association for Computing Machinery, New York, NY, USA, 171âĂŞ183.
[28]
SoklongLim, Zaixin Lu, Bin Ren, and Xuechen Zhang. 2019. Enforcing Crash Consistency of Evolving Network Analytics in Non-Volatile Main Memory Systems. In 2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT'19).
[29]
Peter Macko, Virendra J. Marathe, Daniel W. Margo, and Margo I. Seltzer. 2015. LLAMA: Efficient graph analytics using Large Multiversioned Arrays. In 2015 IEEE 31st International Conference on Data Engineering (ICDE'15).
[30]
A. Moody, G. Bronevetsky, K. Mohror, and B. R. d. Supinski. 2010. Design, Modeling, and Evaluation of a Scalable Multi-level Checkpointing System. In SC '10: Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis. 1--11.
[31]
Mark E. J. Newman. 2010. Networks : An introduction.
[32]
Bao Nguyen, Hua Tan, Kei Davis, and Xuechen Zhang. 2018. Persistent Octrees for Parallel Mesh Refinement Through Non-Volatile Byte-Addressable Memory. In IEEE Transactions on Parallel and Distributed Systems.
[33]
Bao Nguyen, Hua Tan, and Xuechen Zhang. 2017. Large-scale Adaptive Mesh Simulations Through Non-Volatile Byte-Addressable Memory. In Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC'17).
[34]
Jiaxin Ou, Jiwu Shu, and Youyou Lu. 2016. A High Performance File System for Non-volatile Main Memory. In Proceedings of the Eleventh European Conference on Computer Systems (EuroSys '16).
[35]
Burcu Ozcelik Mutlu, Gokcen Kestor, Joseph Manzano, Osman Unsal, Samrat Chatterjee, and Sriram Krishnamoorthy. 2018. Characterization of the Impact of Soft Errors on Iterative Methods. In 2018 IEEE 25th International Conference on High Performance Computing (HiPC). 203--214.
[36]
ScaLAPACK-Scalable Linear Algebra Package. 2019. http://www.netlib.org/scalapack/.
[37]
Lawrence Page, Sergey Brin, Rajeev Motwani, and Terry Winograd. 1999. The PageRank Citation Ranking: Bringing Order to the Web. Technical Report 1999-66. Stanford InfoLab. http://ilpubs.stanford.edu:8090/422/ Previous number = SIDL-WP-1999-0120.
[38]
Roger Pearce, Maya Gokhale, and Nancy M. Amato. 2010. Multithreaded Asynchronous Graph Traversal for In-Memory and Semi-External Memory. In Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC '10). IEEE Computer Society, Washington, DC, USA, 1--11.
[39]
Steve Plimpton, Roy Pollock, and Mark Stevens. 2007. Particle-Mesh Ewald and rRESPA for Parallel Molecular Dynamics Simulations. In Proc of the Eighth SIAM Conference on Parallel Processing for Scientific Computing.
[40]
John R. Quinlan. 1992. Learning With Continuous Classes. In 5th Australian Joint Conference on Artificial Intelligence. World Scientific, 343--348.
[41]
I. S. Reed and G. Solomon. 1960. Polynomial Codes Over Certain Finite Fields. J. Soc. Indust. Appl. Math. 8, 2 (1960), 300--304.
[42]
Sumalee Sangamuang, Pruet Boonma, and Lai Lai W. Kyii. 2015. An algorithm to improve MPI-PageRank performance by reducing synchronization time. In 2015 International Computer Science and Engineering Conference (ICSEC). 1--4.
[43]
Bianca Schroeder and Garth A Gibson. 2007. Understanding failures in petascale computers. Journal of Physics: Conference Series 78 (jul 2007), 012--022.
[44]
Gerris Flow Solver. 2019. http://gfs.sourceforge.net/wiki/index.php/Main_Page.
[45]
Hari Sundar, Rahul S. Sampath, Santi S. Adavani, Christos Davatzikos, and George Biros. 2007. Low-constant parallel algorithms for finite element simulations using linear octrees. In Supercomputing, 2007. SC '07. Proceedings of the 2007 ACM/IEEE Conference on. 1--12.
[46]
Hari Sundar, Rahul S Sampath, and George Biros. 2008. Bottom-up construction and 2: 1 balance refinement of linear octrees in parallel. SIAM Journal on Scientific Computing 30, 5 (2008), 2675--2708.
[47]
Lustre File Systems. 2019. https://lustre.org/.
[48]
Hua Tan, Eric Torniainen, David P. Markel, and Robert N. K. Browning. 2015. Numerical simulation of droplet ejection of thermal inkjet printheads. International Journal for Numerical Methods in Fluids 77 (March 2015), 544--570.
[49]
Titan. 2019. https://www.olcf.ornl.gov/titan/.
[50]
Suleyman Tosun, Vahid B. Ajabshir, Ozge Mercanoglu, and Ozcan Ozturk. 2015. Fault-Tolerant Topology Generation Method for Application-Specific Network-on-Chips. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 34, 9 (Sep. 2015), 1495--1508.
[51]
Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and Durable Data Structures for Non-volatile Byte-addressable Memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (FAST'11).
[52]
Solving Linear Systems via LU Factorization. 2019. http://www.netlib.org/utk/papers/pblas/node21.html.
[53]
Haris Volos, Sanketh Nalli, Sankarlingam Panneerselvam, Venkatanathan Varadarajan, Prashant Saxena, and Michael M. Swift. 2014. Aerie: Flexible File-system Interfaces to Storage-class Memory. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys '14).
[54]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. SIGPLAN Not. 47, 4 (March 2011), 91--104.
[55]
Jingjing Wang and Magdalena Balazinska. 2017. Elastic Memory Management for Cloud Data Analytics. In 2017 USENIX Annual Technical Conference (USENIX ATC 17). USENIX Association, Santa Clara, CA, 745--758. https://www.usenix.org/conference/atc17/technical-sessions/presentation/wang
[56]
Panruo Wu, Dong Li, Zizhong Chen, Jeffrey S. Vetter, and Sparsh Mittal. 2016. Algorithm-Directed Data Placement in Explicitly Managed Non-Volatile Memory. In Proceedings of the 25th ACM International Symposium on High-Performance Parallel and Distributed Computing (HPDC'16). Association for Computing Machinery, New York, NY, USA, 141--152.
[57]
Lingxiang Xiang and Michael Lee Scott. 2013. Compiler Aided Manual Speculation for High Performance Concurrent Data Structures. In Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '13).
[58]
Shuo Yang, Kai Wu, Yifan Qiao, Dong Li, and Jidong Zhai. 2017. Algorithm-Directed Crash Consistence in Non-volatile Memory for HPC. In 2017 IEEE International Conference on Cluster Computing (CLUSTER).
[59]
Xuechen Zhang, Kei Davis, and Song Jiang. 2010. IOrchestrator: Improving the Performance of Multi-node I/O Systems via Inter-Server Coordination. In Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC'10).
[60]
Xuechen Zhang, Kei Davis, and Song Jiang. 2011. QoS Support for End Users of I/O-intensive Applications using Shared Storage Systems. In Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis (SC'11).
[61]
Xuechen Zhang, Kei Davis, and Song Jiang. 2012. Opportunistic Data-driven Execution of Parallel Programs for Efficient I/O Services. In 2012 IEEE 26th International Parallel and Distributed Processing Symposium. 330--341.
[62]
Xuechen Zhang, Song Jiang, and Kei Davis. 2009. Making resonance a common case: A high-performance implementation of collective I/O on parallel file systems. In 2009 IEEE International Symposium on Parallel Distributed Processing. 1--12.
[63]
Xuechen Zhang, Ujjwal Khanal, Xinghui Zhao, and Stephen Ficklin. 2017. Making sense of performance in in-memory computing frameworks for scientific data analysis: A case study of the spark system. J. Parallel and Distrib. Comput. (2017).

Cited By

View all
  • (2021)Decoupling Application Logic from Persistent Memory Frameworks with AspectC++Proceedings of the 11th Workshop on Programming Languages and Operating Systems10.1145/3477113.3487269(24-30)Online publication date: 25-Oct-2021

Index Terms

  1. Compiler aided checkpointing using crash-consistent data structures in NVMM systems

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ICS '20: Proceedings of the 34th ACM International Conference on Supercomputing
      June 2020
      499 pages
      ISBN:9781450379830
      DOI:10.1145/3392717
      • General Chairs:
      • Eduard Ayguadé,
      • Wen-mei Hwu,
      • Program Chairs:
      • Rosa M. Badia,
      • H. Peter Hofstee
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 29 June 2020

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. checkpointing
      2. compiler aided
      3. non-volatile main memory

      Qualifiers

      • Research-article

      Funding Sources

      Conference

      ICS '20
      Sponsor:
      ICS '20: 2020 International Conference on Supercomputing
      June 29 - July 2, 2020
      Spain, Barcelona

      Acceptance Rates

      Overall Acceptance Rate 629 of 2,180 submissions, 29%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)76
      • Downloads (Last 6 weeks)11
      Reflects downloads up to 03 Sep 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2021)Decoupling Application Logic from Persistent Memory Frameworks with AspectC++Proceedings of the 11th Workshop on Programming Languages and Operating Systems10.1145/3477113.3487269(24-30)Online publication date: 25-Oct-2021

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media