{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:58:54Z","timestamp":1750309134549,"version":"3.41.0"},"reference-count":21,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2024,3,16]],"date-time":"2024-03-16T00:00:00Z","timestamp":1710547200000},"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. Math. Softw."],"published-print":{"date-parts":[[2024,3,31]]},"abstract":"<jats:p>Data-flow reversal is at the heart of source-transformation reverse algorithmic differentiation (reverse ST-AD), arguably the most efficient way to obtain gradients of numerical models. However, when the model implementation language uses garbage collection (GC), for instance, in Java or Python, the notion of address that is needed for data-flow reversal disappears. Moreover, GC is asynchronous and does not appear explicitly in the source. This article presents an extension to the model of reverse ST-AD suitable for a language with GC. The approach is validated on a Java implementation of a simple Navier-Stokes solver. Performance is compared with existing AD tools ADOL-C and Tapenade on an equivalent implementation in C and Fortran.<\/jats:p>","DOI":"10.1145\/3627537","type":"journal-article","created":{"date-parts":[[2023,11,18]],"date-time":"2023-11-18T10:50:02Z","timestamp":1700304602000},"page":"1-20","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Data-flow Reversal and Garbage Collection"],"prefix":"10.1145","volume":"50","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-5361-0713","authenticated-orcid":false,"given":"Laurent","family":"Hasco\u00ebt","sequence":"first","affiliation":[{"name":"INRIA Sophia-Antipolis, Biot, France"}]}],"member":"320","published-online":{"date-parts":[[2024,3,16]]},"reference":[{"key":"e_1_3_3_2_2","first-page":"1","article-title":"Automatic differentiation in machine learning: A survey","volume":"18","author":"Baydin A.","year":"2018","unstructured":"A. Baydin, B. Pearlmutter, A. Radul, and J. Siskind. 2018. Automatic differentiation in machine learning: A survey. J. Mach. Learn. Res. 18 (2018), 1\u201343.","journal-title":"J. Mach. Learn. Res."},{"key":"e_1_3_3_3_2","volume-title":"Computational Differentiation: Techniques, Applications and Tools","author":"Berz Martin","year":"1996","unstructured":"Martin Berz, Christian Bischof, George Corliss, and Andreas Griewank (Eds.). 1996. Computational Differentiation: Techniques, Applications and Tools. SIAM, Philadelphia, PA."},{"key":"e_1_3_3_4_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-68942-3"},{"key":"e_1_3_3_5_2","unstructured":"James Bradbury Roy Frostig Peter Hawkins Matthew James Johnson Chris Leary Dougal Maclaurin George Necula Adam Paszke Jake VanderPlas Skye Wanderman-Milne and Qiao Zhang. 2018. JAX: Composable Transformations of Python+NumPy Programs. Retrieved from http:\/\/github.com\/google\/jax"},{"key":"e_1_3_3_6_2","volume-title":"Automatic Differentiation: Applications, Theory, and Tools","author":"B\u00fccker M.","year":"2005","unstructured":"M. B\u00fccker, G. Corliss, P. Hovland, U. Naumann, and B. Norris. 2005. Automatic Differentiation: Applications, Theory, and Tools. Springer."},{"key":"e_1_3_3_7_2","volume-title":"Special Issue of Optimization Methods & Software: Advances in Algorithmic Differentiation","author":"Christianson Bruce","year":"2018","unstructured":"Bruce Christianson, Shaun A. Forth, and Andreas Griewank (Eds.). 2018. Special Issue of Optimization Methods & Software: Advances in Algorithmic Differentiation. Taylor & Francis, vol. 33."},{"key":"e_1_3_3_8_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4613-0075-5"},{"key":"e_1_3_3_9_2","volume-title":"6th IEEE International Workshop on Source Code Analysis and Manipulation","author":"Fagan M.","year":"2006","unstructured":"M. Fagan, L. Hasco\u00ebt, and J. Utke. 2006. Data representation alternatives in semantically augmented numerical models. In 6th IEEE International Workshop on Source Code Analysis and Manipulation."},{"key":"e_1_3_3_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-30023-3"},{"key":"e_1_3_3_11_2","volume-title":"Automatic Differentiation of Algorithms: Theory, Implementation, and Application","author":"Griewank Andreas","year":"1991","unstructured":"Andreas Griewank and George F. Corliss (Eds.). 1991. Automatic Differentiation of Algorithms: Theory, Implementation, and Application. SIAM, Philadelphia, PA."},{"key":"e_1_3_3_12_2","series-title":"Other Titles in Applied Mathematics,","doi-asserted-by":"crossref","DOI":"10.1137\/1.9780898717761","volume-title":"Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.)","author":"Griewank A.","year":"2008","unstructured":"A. Griewank and A. Walther. 2008. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.). Other Titles in Applied Mathematics, Vol. 105. SIAM, Philadelphia, PA. Retrieved from http:\/\/www.ec-securehost.com\/SIAM\/OT105.html"},{"key":"e_1_3_3_13_2","doi-asserted-by":"publisher","DOI":"10.1080\/10556788.2017.1396600"},{"key":"e_1_3_3_14_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.future.2004.11.009"},{"key":"e_1_3_3_15_2","doi-asserted-by":"publisher","DOI":"10.1080\/10556788.2016.1146269"},{"key":"e_1_3_3_16_2","unstructured":"M. Innes. 2019. Don\u2019t unroll adjoint: Differentiating SSA-form programs. Retrieved from https:\/\/fluxml.ai\/Zygote.jl\/latest\/"},{"key":"e_1_3_3_17_2","series-title":"Software, Environments, and Tools,","volume-title":"The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation","author":"Naumann U.","year":"2012","unstructured":"U. Naumann. 2012. The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation. Software, Environments, and Tools, Vol. 24. SIAM, Philadelphia, PA. Retrieved from http:\/\/www.ec-securehost.com\/SIAM\/SE24.html"},{"key":"e_1_3_3_18_2","volume-title":"NIPS 2017 Workshop Autodiff","author":"Paszke A.","year":"2017","unstructured":"A. Paszke, S. Gross, S. Chintala, G. Chanan, E. Yang, Z. DeVito, Z. Lin, A. Demaison, L. Antiga, and A. Lerer. 2017. Automatic differentiation in PyTorch. In NIPS 2017 Workshop Autodiff. Retrieved from https:\/\/pytorch.org\/"},{"key":"e_1_3_3_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3356900"},{"key":"e_1_3_3_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/2904901"},{"key":"e_1_3_3_21_2","volume-title":"NeurIPS\u201918","author":"Merri\u00ebnboer Bart van","year":"2018","unstructured":"Bart van Merri\u00ebnboer, Dan Moldovan, and Alex B. Wiltschko. 2018. Tangent: Automatic differentiation using source-code transformation for dynamically typed array programming. In NeurIPS\u201918. Retrieved from: https:\/\/github.com\/google\/tangent"},{"key":"e_1_3_3_22_2","doi-asserted-by":"publisher","DOI":"10.1201\/b11644-8"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3627537","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3627537","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T22:50:04Z","timestamp":1750287004000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3627537"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,3,16]]},"references-count":21,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,3,31]]}},"alternative-id":["10.1145\/3627537"],"URL":"https:\/\/doi.org\/10.1145\/3627537","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"type":"print","value":"0098-3500"},{"type":"electronic","value":"1557-7295"}],"subject":[],"published":{"date-parts":[[2024,3,16]]},"assertion":[{"value":"2021-06-29","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-09-29","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-03-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}