{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,21]],"date-time":"2026-08-21T18:31:17Z","timestamp":1787337077620,"version":"build-2736575974"},"reference-count":32,"publisher":"Society for Industrial & Applied Mathematics (SIAM)","issue":"5","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["SIAM J. Sci. Comput."],"published-print":{"date-parts":[[2007,1]]},"abstract":"<jats:p>In this paper, we describe automated memory analysis, a technique to improve the memory efficiency of a sparse linear iterative solver. Our automated memory analysis uses a language processor to predict the data movement required for an iterative algorithm based upon a MATLAB implementation. We demonstrate how automated memory analysis is used to reduce the execution time of a component of a global parallel ocean model. In particular, code modifications identified or evaluated through automated memory analysis enable a significant reduction in execution time for the conjugate gradient solver on a small serial problem. Further, we achieve a 9 in total execution time for the full model on 64 processors. The predictive capabilities of our automated memory analysis can be used to simplify the development of memory-efficient numerical algorithms or software.<\/jats:p>","DOI":"10.1137\/060661533","type":"journal-article","created":{"date-parts":[[2007,10,8]],"date-time":"2007-10-08T18:22:50Z","timestamp":1191867770000},"page":"2210-2223","source":"Crossref","is-referenced-by-count":5,"title":["Applying Automated Memory Analysis to Improve Iterative Algorithms"],"prefix":"10.1137","volume":"29","author":[{"given":"J. M.","family":"Dennis","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"E. R.","family":"Jessup","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"351","published-online":{"date-parts":[[2007,9,28]]},"reference":[{"key":"R1","doi-asserted-by":"crossref","unstructured":"P. Banerjee, N. Shenoy, A. Choudhary, S. Hauck, C. Bachmann, M. Haldar, P. Joisha, A. Jones, A. Kanhare, A. Nayak, S. Peiriyacheri, M. Walken, and D. Zaretsky,\n                      A MATLAB compiler for distributed, heterogeneous, reconfigurable computing systems\n                      , in Proceedings of the International Symposium on FPGA Custom Computing Machines (FCCM-2000), Napa Valley, CA, 2000, pp. 39\u201348.","DOI":"10.1109\/FPGA.2000.903391"},{"key":"R2","unstructured":"S. Behling, R. Bell, P. Farrell, H. Holthoff, F. O'Connell, and W. Weir,\n                      The POWER\n                      4\n                      Processor Introduction and Tuning Guide\n                      , IBM Redbooks, 2001; available online from www.redbooks.ibm.com\/redbooks\/pdfs\/sg247041.pdf."},{"key":"R3","doi-asserted-by":"publisher","DOI":"10.1155\/1999\/304639"},{"key":"R4","unstructured":"T. Bettge,\n                      Personal communication\n                      , 2006."},{"key":"R5","unstructured":"S. Carr and K. Kennedy,\n                      Blocking linear algebra codes for memory hierarchies\n                      , in Proceedings of the Fourth SIAM Conference on Parallel Processing for Scientific Computing, SIAM, Philadelphia, 1990, pp. 400\u2013405."},{"key":"R6","doi-asserted-by":"crossref","unstructured":"C. Cascaval, L. DeRose, D. A. Padua, and D. A. Reed,\n                      Compile-time based performance prediction\n                      , in LCPC '99: Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing, Springer-Verlag, London, 2000, pp. 365\u2013379.","DOI":"10.1007\/3-540-44905-1_23"},{"key":"R7","first-page":"2122","volume":"11","author":"Collins W. D.","year":"2005","journal-title":"J. Climate, CCSM Special Issue"},{"key":"R8","doi-asserted-by":"crossref","unstructured":"E. F. D'Azevedo, V. L. Eijkhout, and C. H. Romine,\n                      LAPACK Working Note\n                      56:\n                      Reducing Communication Costs in the Conjugate Gradient Algorithm on Distributed Memory Multiprocessor\n                      , Report CS-93-185, University of Tennessee, Knoxville, 1993.","DOI":"10.2172\/10176473"},{"key":"R9","doi-asserted-by":"crossref","unstructured":"J. M. Dennis,\n                      Inverse space-filling curve partitioning of a global ocean model\n                      , in Proceedings of the 21st IEEE International Parallel and Distributed Processing Symposium (Long Beach, CA, 2007), CD-ROM, IEEE, Piscataway, NJ, 2007.","DOI":"10.1109\/IPDPS.2007.370215"},{"key":"R10","doi-asserted-by":"publisher","DOI":"10.1145\/316686.316693"},{"key":"R11","doi-asserted-by":"publisher","DOI":"10.1145\/77626.77627"},{"key":"R12","doi-asserted-by":"crossref","unstructured":"T. Fahringer,\n                      Estimating Cache Performance for Sequential and Data Parallel Programs\n                      , Tech. Report TR 97-9, Institute for Software Technology and Parallel Systems, University of Vienna, Vienna, Austria, 1997.","DOI":"10.1007\/BFb0031655"},{"key":"R13","doi-asserted-by":"publisher","DOI":"10.1137\/S1064827596302205"},{"key":"R14","doi-asserted-by":"crossref","unstructured":"P. G. Joisha and P. Banerjee,\n                      Static array storage optimization in Matlab\n                      , in ACM SIGPLAN Conference on Programming Language Design and Implementation, San Diego, CA, 2003, pp. 258\u2013268.","DOI":"10.1145\/781131.781160"},{"key":"R15","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.894"},{"key":"R16","doi-asserted-by":"publisher","DOI":"10.1177\/1094342005056114"},{"key":"R17","doi-asserted-by":"publisher","DOI":"10.1145\/106974.106981"},{"key":"R18","doi-asserted-by":"publisher","DOI":"10.1016\/0024-3795(80)90247-5"},{"key":"R19","unstructured":"PAPI: Performance Application Programming Interface: User's Guide\n                      ; available online from http:\/\/icl.cs.utk.edu\/papi, 2005."},{"key":"R20","unstructured":"The Parallel Ocean Program (POP)\n                      ; available online from http:\/\/climate.lanl.gov\/Models\/ POP, 2006."},{"key":"R21","doi-asserted-by":"crossref","unstructured":"D. Patterson, T. Anderson, N. Cardwell, R. Fromm, K. Keeton, C. Kozyrakis, R. Thomas, and K. Yellick,\n                      A case for intelligent RAM\n                      , IEEE Micro, 17 (2) (1997), pp. 34\u201344.","DOI":"10.1109\/40.592312"},{"key":"R22","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2004.840306"},{"key":"R23","doi-asserted-by":"crossref","unstructured":"M. J. Quinn, A. Malishevsky, N. Seelam, and Y Zhao,\n                      Preliminary results from a parallel Matlab compiler\n                      , in Proceedings of the International Parallel and Distributed Processing Symposium, IEEE Computer Society, Orlando, FL, 1998, pp. 81\u201387.","DOI":"10.1109\/IPPS.1998.669894"},{"key":"R24","doi-asserted-by":"publisher","DOI":"10.1090\/S0025-5718-1981-0616364-6"},{"key":"R25","unstructured":"H. D. Simon,\n                      The Lanczos Algorithm for Solving Symmetric Linear Systems\n                      , Ph.D. thesis, University of California, Berkeley, CA, 1982."},{"key":"R26","unstructured":"H. D. Simon and A. Yeremin,\n                      A new approach to construction of efficient iterative schemes for massively parallel applications: Variable block CG and BiCG methods and variable block Arnoldi procedure\n                      , in Proceedings of the Sixth SIAM Conference on Parallel Processing for Scientific Computing, SIAM, Philadelphia, 1993, pp. 57\u201360."},{"key":"R27","doi-asserted-by":"publisher","DOI":"10.1016\/0167-2789(92)90225-C"},{"key":"R28","doi-asserted-by":"crossref","unstructured":"A. Snavely, X. Gao, C. Lee, L. Carrington, N. Wolter, J. Labarta, J. Gimenez, and P. Jones,\n                      Performance modeling of HPC applications\n                      , in Parallel Computing (PARCO2003), Elsevier, Dresden, Germany, 2003, pp. 777\u2013784.","DOI":"10.1016\/S0927-5452(04)80095-9"},{"key":"R29","unstructured":"M. Snir, S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra,\n                      MPI: The Complete Reference: Volume\n                      1\n                      , The MPI Core\n                      , MIT Press, Cambridge, MA, 2000."},{"key":"R30","unstructured":"Sun Microsystems,\n                      The Ultra\n                      2\n                      Architecture: Technical White Paper\n                      ; available online from http:\/\/pennsun.essc.psu.edu\/customerweb\/WhitePapers\/, 2005."},{"key":"R31","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2003.1178879"},{"key":"R32","unstructured":"S. Vellas,\n                      Scalar Code Optimization\n                      I; available online from http:\/\/sc.tamu.edu\/help\/origins\/ sgi_scalar_r14k_opt.pdf, 2005."}],"container-title":["SIAM Journal on Scientific Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/epubs.siam.org\/doi\/pdf\/10.1137\/060661533","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,21]],"date-time":"2026-08-21T17:43:32Z","timestamp":1787334212000},"score":1,"resource":{"primary":{"URL":"https:\/\/epubs.siam.org\/doi\/10.1137\/060661533"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,1]]},"references-count":32,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2007,1]]}},"alternative-id":["10.1137\/060661533"],"URL":"https:\/\/doi.org\/10.1137\/060661533","relation":{},"ISSN":["1064-8275","1095-7197"],"issn-type":[{"value":"1064-8275","type":"print"},{"value":"1095-7197","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,1]]}}}