{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,23]],"date-time":"2025-10-23T11:24:45Z","timestamp":1761218685222,"version":"3.37.3"},"reference-count":37,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2024,10,1]],"date-time":"2024-10-01T00:00:00Z","timestamp":1727740800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2024,10,1]],"date-time":"2024-10-01T00:00:00Z","timestamp":1727740800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2024,8,2]],"date-time":"2024-08-02T00:00:00Z","timestamp":1722556800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/http\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000270","name":"Natural Environment Research Council","doi-asserted-by":"publisher","award":["NE\/T001607\/1"],"award-info":[{"award-number":["NE\/T001607\/1"]}],"id":[{"id":"10.13039\/501100000270","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Computational Science"],"published-print":{"date-parts":[[2024,10]]},"DOI":"10.1016\/j.jocs.2024.102405","type":"journal-article","created":{"date-parts":[[2024,8,6]],"date-time":"2024-08-06T17:47:27Z","timestamp":1722966447000},"page":"102405","update-policy":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":1,"special_numbering":"C","title":["Step-based checkpointing with high-level algorithmic differentiation"],"prefix":"10.1016","volume":"82","author":[{"ORCID":"https:\/\/2.zoppoz.workers.dev:443\/https\/orcid.org\/0000-0001-5742-4363","authenticated-orcid":false,"given":"James R.","family":"Maddison","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"78","reference":[{"issue":"4","key":"10.1016\/j.jocs.2024.102405_b1","doi-asserted-by":"crossref","first-page":"C369","DOI":"10.1137\/120873558","article-title":"Automated derivation of the adjoint of high-level transient finite element programs","volume":"35","author":"Farrell","year":"2013","journal-title":"SIAM J. Sci. Comput."},{"issue":"2","key":"10.1016\/j.jocs.2024.102405_b2","doi-asserted-by":"crossref","first-page":"9:1","DOI":"10.1145\/2566630","article-title":"Unified Form Language: A domain-specific language for weak formulations of partial differential equations","volume":"40","author":"Aln\u00e6s","year":"2014","journal-title":"ACM Trans. Math. Software"},{"article-title":"Automated solution of differential equations by the finite element method","year":"2012","series-title":"Lecture Notes in Computational Science and Engineering","key":"10.1016\/j.jocs.2024.102405_b3"},{"issue":"100","key":"10.1016\/j.jocs.2024.102405_b4","first-page":"9","article-title":"The FEniCS project version 1.5","volume":"3","author":"Aln\u00e6s","year":"2015","journal-title":"Arch. Numer. Softw."},{"issue":"38","key":"10.1016\/j.jocs.2024.102405_b5","article-title":"dolfin-adjoint 2018.1: automated adjoints for FEniCS and Firedrake","volume":"4","author":"Mitusch","year":"2019","journal-title":"J. Open Sour. Softw."},{"year":"2008","series-title":"Evaluating Derivatives","author":"Griewank","key":"10.1016\/j.jocs.2024.102405_b6"},{"issue":"153","key":"10.1016\/j.jocs.2024.102405_b7","first-page":"1","article-title":"Automatic differentiation in machine learning: a survey","volume":"18","author":"Baydin","year":"2018","journal-title":"J. Mach. Learn. Res."},{"key":"10.1016\/j.jocs.2024.102405_b8","doi-asserted-by":"crossref","first-page":"95","DOI":"10.1016\/j.cma.2014.03.010","article-title":"Rapid development and adjoining of transient finite element models","volume":"276","author":"Maddison","year":"2014","journal-title":"Comput. Methods Appl. Mech. Engrg."},{"issue":"1","key":"10.1016\/j.jocs.2024.102405_b9","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1145\/347837.347846","article-title":"Algorithm 799: Revolve: An implementation of checkpointing for the reverse or adjoint mode of computational differentiation","volume":"26","author":"Griewank","year":"2000","journal-title":"ACM Trans. Math. Software"},{"issue":"1","key":"10.1016\/j.jocs.2024.102405_b10","doi-asserted-by":"crossref","first-page":"35","DOI":"10.1080\/10556789208805505","article-title":"Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation","volume":"1","author":"Griewank","year":"1992","journal-title":"Optim. Methods Softw."},{"issue":"4","key":"10.1016\/j.jocs.2024.102405_b11","doi-asserted-by":"crossref","first-page":"2549","DOI":"10.1137\/080727890","article-title":"Minimal repetition dynamic checkpointing algorithm for unsteady adjoint calculation","volume":"31","author":"Wang","year":"2009","journal-title":"SIAM J. Sci. Comput."},{"issue":"2","key":"10.1016\/j.jocs.2024.102405_b12","doi-asserted-by":"crossref","first-page":"836","DOI":"10.1137\/080742439","article-title":"New algorithms for optimal online checkpointing","volume":"32","author":"Stumm","year":"2010","journal-title":"SIAM J. Sci. Comput."},{"issue":"3","key":"10.1016\/j.jocs.2024.102405_b13","doi-asserted-by":"crossref","first-page":"1946","DOI":"10.1137\/080718036","article-title":"MultiStage approaches for optimal offline checkpointing","volume":"31","author":"Stumm","year":"2009","journal-title":"SIAM J. Sci. Comput."},{"issue":"3","key":"10.1016\/j.jocs.2024.102405_b14","doi-asserted-by":"crossref","first-page":"C232","DOI":"10.1137\/15M1019222","article-title":"Optimal multistage algorithm for adjoint computation","volume":"38","author":"Aupy","year":"2016","journal-title":"SIAM J. Sci. Comput."},{"key":"10.1016\/j.jocs.2024.102405_b15","doi-asserted-by":"crossref","first-page":"1147","DOI":"10.1016\/j.procs.2016.05.444","article-title":"Asynchronous two-level checkpointing scheme for large-scale adjoints in the spectral-element solver Nek5000","volume":"80","author":"Schanen","year":"2016","journal-title":"Procedia Comput. Sci."},{"issue":"2","key":"10.1016\/j.jocs.2024.102405_b16","doi-asserted-by":"crossref","DOI":"10.1145\/3378672","article-title":"H-Revolve: a framework for adjoint computation on synchronous hierarchical platforms","volume":"46","author":"Herrmann","year":"2020","journal-title":"ACM Trans. Math. Software"},{"key":"10.1016\/j.jocs.2024.102405_b17","series-title":"Euro-Par 2019: Parallel Processing","first-page":"87","article-title":"Combining checkpointing and data compression to accelerate adjoint-based optimization problems","author":"Kukreja","year":"2019"},{"key":"10.1016\/j.jocs.2024.102405_b18","doi-asserted-by":"crossref","first-page":"427","DOI":"10.1007\/s10107-006-0042-z","article-title":"Optimal Jacobian accumulation is NP-complete","volume":"112","author":"Naumann","year":"2008","journal-title":"Math. Program."},{"key":"10.1016\/j.jocs.2024.102405_b19","series-title":"Proceedings of Machine Learning and Systems","first-page":"497","article-title":"Checkmate: Breaking the memory wall with optimal tensor rematerialization","volume":"Vol. 2","author":"Jain","year":"2020"},{"year":"2021","series-title":"Dynamic tensor rematerialization","author":"Kirisame","key":"10.1016\/j.jocs.2024.102405_b20"},{"issue":"8","key":"10.1016\/j.jocs.2024.102405_b21","doi-asserted-by":"crossref","first-page":"1401","DOI":"10.1016\/j.future.2004.11.009","article-title":"\u201cTo be recorded\u201d analysis in reverse-mode automatic differentiation","volume":"21","author":"Hasco\u00ebt","year":"2005","journal-title":"Future Gener. Comput. Syst."},{"key":"10.1016\/j.jocs.2024.102405_b22","series-title":"Computational Science \u2013 ICCS 2021","first-page":"451","article-title":"Revolve-based adjoint checkpointing for multistage time integration","author":"Zhang","year":"2021"},{"key":"10.1016\/j.jocs.2024.102405_b23","doi-asserted-by":"crossref","DOI":"10.1016\/j.jocs.2022.101913","article-title":"Optimal checkpointing for adjoint multistage time-stepping schemes","volume":"66","author":"Zhang","year":"2023","journal-title":"J. Comput. Sci."},{"issue":"5","key":"10.1016\/j.jocs.2024.102405_b24","doi-asserted-by":"crossref","first-page":"C417","DOI":"10.1137\/18M1209465","article-title":"Automated calculation of higher order partial differential equation constrained derivative information","volume":"41","author":"Maddison","year":"2019","journal-title":"SIAM J. Sci. Comput."},{"year":"2016","series-title":"Providing the ARCHER Community with Adjoint Modelling Tools for High-Performance Oceanographic and Cryospheric Computation","author":"Pringle","key":"10.1016\/j.jocs.2024.102405_b25"},{"issue":"11","key":"10.1016\/j.jocs.2024.102405_b26","doi-asserted-by":"crossref","DOI":"10.1029\/2020JC016370","article-title":"Bathymetric influences on Antarctic ice-shelf melt rates","volume":"125","author":"Goldberg","year":"2020","journal-title":"J. Geophys. Res.: Oceans"},{"issue":"3","key":"10.1016\/j.jocs.2024.102405_b27","doi-asserted-by":"crossref","DOI":"10.1145\/2998441","article-title":"Firedrake: Automating the finite element method by composing abstractions","volume":"43","author":"Rathgeber","year":"2016","journal-title":"ACM Trans. Math. Software"},{"issue":"95","key":"10.1016\/j.jocs.2024.102405_b28","doi-asserted-by":"crossref","first-page":"6148","DOI":"10.21105\/joss.06148","article-title":"checkpoint_schedules: schedules for incremental checkpointing of adjoint simulations","volume":"9","author":"Dolci","year":"2024","journal-title":"J. Open Sour. Softw."},{"year":"2018","series-title":"An Algorithmic Differentiation Tool for FEniCS","author":"Mitusch","key":"10.1016\/j.jocs.2024.102405_b29"},{"key":"10.1016\/j.jocs.2024.102405_b30","unstructured":"M. Abadi, P. Barham, J. Chen, Z. Chen, A. Davis, J. Dean, M. Devin, S. Ghemawat, G. Irving, M. Isard, M. Kudlur, J. Levenberg, R. Monga, S. Moore, D.G. Murray, B. Steiner, P. Tucker, V. Vasudevan, P. Warden, M. Wicke, Y. Yu, X. Zhen, TensorFlow: a system for large-scale machine learning, in: 12th USENIX Symposium on Operating Systems Design and Implementation, OSDI\u201916, ISBN: 978-1-931971-33-1, 2016, pp. 265\u2013283."},{"year":"2006","series-title":"Atmospheric And Oceanic Fluid Dynamics","author":"Vallis","key":"10.1016\/j.jocs.2024.102405_b31"},{"key":"10.1016\/j.jocs.2024.102405_b32","series-title":"LLVM \u201915: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC","first-page":"1","article-title":"Numba: a LLVM-based Python JIT compiler","author":"Lam","year":"2015"},{"year":"2024","series-title":"Software Used in \u2018On the Implementation of Checkpointing with High-Level Algorithmic Differentiation\u2019","key":"10.1016\/j.jocs.2024.102405_b33"},{"year":"2024","series-title":"tlm-adjoint\/tlm_adjoint: tlm_adjoint 2024-05-06","key":"10.1016\/j.jocs.2024.102405_b34"},{"year":"2024","series-title":"Benchmark Scripts for \u2018Step-Based Checkpointing with High-Level Algorithmic Differentiation\u2019","author":"Maddison","key":"10.1016\/j.jocs.2024.102405_b35"},{"issue":"2","key":"10.1016\/j.jocs.2024.102405_b36","doi-asserted-by":"crossref","first-page":"202","DOI":"10.1029\/TR029i002p00202","article-title":"The westward intensification of wind-driven ocean currents","volume":"29","author":"Stommel","year":"1948","journal-title":"EOS Trans. Am. Geophys. Union"},{"key":"10.1016\/j.jocs.2024.102405_b37","doi-asserted-by":"crossref","unstructured":"S. Balay, S. Abhyankar, M.F. Adams, S. Benson, J. Brown, P. Brune, K. Buschelman, E. Constantinescu, L. Dalcin, A. Dener, V. Eijkhout, J. Faibussowitsch, W.D. Gropp, V. Hapla, T. Isaac, P. Jolivet, D. Karpeev, D. Kaushik, M.G. Knepley, F. Kong, S. Kruger, D.A. May, L.C. McInnes, R.T. Mills, L. Mitchell, T. Munson, J.E. Roman, K. Rupp, P. Sanan, J. Sarich, B.F. Smith, S. Zampini, H. Zhang, H. Zhang, J. Zhang, PETSc\/TAO Users Manual, ANL-21\/39 - Revision 3.20, 2023, https:\/\/2.zoppoz.workers.dev:443\/http\/dx.doi.org\/10.2172\/2205494.","DOI":"10.2172\/2205494"}],"container-title":["Journal of Computational Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/api.elsevier.com\/content\/article\/PII:S1877750324001984?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/api.elsevier.com\/content\/article\/PII:S1877750324001984?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2024,9,15]],"date-time":"2024-09-15T06:22:52Z","timestamp":1726381372000},"score":1,"resource":{"primary":{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/linkinghub.elsevier.com\/retrieve\/pii\/S1877750324001984"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,10]]},"references-count":37,"alternative-id":["S1877750324001984"],"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/j.jocs.2024.102405","relation":{},"ISSN":["1877-7503"],"issn-type":[{"type":"print","value":"1877-7503"}],"subject":[],"published":{"date-parts":[[2024,10]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Step-based checkpointing with high-level algorithmic differentiation","name":"articletitle","label":"Article Title"},{"value":"Journal of Computational Science","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1016\/j.jocs.2024.102405","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2024 The Author(s). Published by Elsevier B.V.","name":"copyright","label":"Copyright"}],"article-number":"102405"}}