{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,19]],"date-time":"2025-03-19T13:12:38Z","timestamp":1742389958177,"version":"3.32.0"},"reference-count":26,"publisher":"Wiley","issue":"10","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4412,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1994,10]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper describes a compiler\u2010based approach to checkpointing for process recovery. The implementation is transparent to both the programmer and the hardware. The compiler\u2010generated<jats:italic>sparse potential checkpoint<\/jats:italic>code maintains the desired checkpoint interval.<jats:italic>Adaptive checkpointing<\/jats:italic>reduces the size of the checkpoints.<jats:italic>Training<\/jats:italic>is used to select low\u2010cost, high\u2010coverage potential checkpoints. The problem of selecting potential checkpoints is shown to be NP\u2010complete, and a heuristic algorithm is introduced that determines a quick suboptimal solution. These compiler\u2010assisted checkpointing techniques have been implemented in a modified version of the GNU C (GCC) compiler. Experiments involving the modified version of the GCC compiler on a Sun SPARC workstation are summarized.<\/jats:p>","DOI":"10.1002\/spe.4380241002","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T16:53:31Z","timestamp":1163782411000},"page":"871-886","source":"Crossref","is-referenced-by-count":29,"title":["Compiler\u2010assisted full checkpointing"],"prefix":"10.1002","volume":"24","author":[{"given":"Chung\u2010Chi Jim","family":"Li","sequence":"first","affiliation":[]},{"given":"Elliot M.","family":"Stewart","sequence":"additional","affiliation":[]},{"given":"W. Kent","family":"Fuchs","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","unstructured":"N. J.Alewine S.\u2010K.Chen C.\u2010C.Li W. K.FuchsandW.\u2010M.Hwu \u2018Branch recovery with compiler\u2010assisted multiple instruction retry\u2019 The Twenty\u2010Second Annual International Symposium on Fault\u2010Tolerant Computing 1992 pp.66\u201373.","DOI":"10.21236\/ADA251920"},{"key":"e_1_2_1_3_2","doi-asserted-by":"crossref","unstructured":"J.Long W. K.FuchsandJ. A.Abraham \u2018Compiler\u2010assisted static checkpoint insertion\u2019 The Twenty\u2010Second Annual International Symposium on Fault\u2010Tolerant Computing 1992 58\u201365.","DOI":"10.21236\/ADA256039"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/12.54837"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"K. D.WilkenandT.Kong \u2018Efficient memory access checking\u2019 The Twenty\u2010Third Annual International Symposium on Fault\u2010Tolerant Computing 1993 pp.566\u2013575.","DOI":"10.1109\/FTCS.1993.627359"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1972.5009007"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1137\/0213039"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/12.2235"},{"volume-title":"Using and Porting GNU CC, version 2.4.3","year":"1993","author":"Stallman R. M.","key":"e_1_2_1_9_2"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312824"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/322123.322131"},{"issue":"2","key":"e_1_2_1_12_2","first-page":"123","article-title":"Performance analysis of checkpointing strategies","volume":"2","author":"Tantawi A. N.","year":"1984","journal-title":"Theoretical Computer Science"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/358274.358282"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1986.1676821"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1987.5009472"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/12.2197"},{"key":"e_1_2_1_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/24.9847"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.90446"},{"key":"e_1_2_1_19_2","unstructured":"D. J.TaylorandM. L.Wright \u2018Backward error recovery in a UNIX environment\u2019 The Sixteenth Annual International Symposium on Fault\u2010Tolerant Computing July1986 pp.118\u2013123."},{"issue":"1","key":"e_1_2_1_20_2","first-page":"15","article-title":"Implementing remote fork() with checkpoint\/restart","volume":"3","author":"Smith J. M.","year":"1989","journal-title":"Technical Committee on Operating Systems"},{"key":"e_1_2_1_21_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312872"},{"volume-title":"Applied Numerical Analysis","year":"1984","author":"Gerald C. F.","key":"e_1_2_1_22_2"},{"volume-title":"Numerical Recipes in C: The Art of Scientific Computing","year":"1988","author":"Press W. H.","key":"e_1_2_1_23_2"},{"key":"e_1_2_1_24_2","unstructured":"SPEC Steering Committee SPEC README File May1990."},{"issue":"6","key":"e_1_2_1_25_2","doi-asserted-by":"crossref","first-page":"8","DOI":"10.1109\/MC.1984.1659158","article-title":"A technique for high\u2010performance data compression","volume":"17","author":"Welch T. A.","year":"1984","journal-title":"IEEE Computer"},{"key":"e_1_2_1_26_2","unstructured":"P. P.ChangandW.\u2010M. W.Hwu \u2018Trace selection for compiling large C application programs to microcode\u2019 The 21st Annual Workshop on Microprogramming and Microarchitecture November1988 pp.21\u201329."},{"volume-title":"Computers and Intractability: A Guide to the Theory of NP\u2010Completeness","year":"1979","author":"Garey M. R.","key":"e_1_2_1_27_2"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380241002","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380241002","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T23:52:37Z","timestamp":1736639557000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380241002"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,10]]},"references-count":26,"journal-issue":{"issue":"10","published-print":{"date-parts":[[1994,10]]}},"alternative-id":["10.1002\/spe.4380241002"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380241002","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"type":"print","value":"0038-0644"},{"type":"electronic","value":"1097-024X"}],"subject":[],"published":{"date-parts":[[1994,10]]}}}