{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T22:54:49Z","timestamp":1777676089332,"version":"3.51.4"},"reference-count":48,"publisher":"SAGE Publications","issue":"2","license":[{"start":{"date-parts":[[2024,9,25]],"date-time":"2024-09-25T00:00:00Z","timestamp":1727222400000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100002347","name":"Bundesministerium f\u00fcr Bildung und Forschung","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100002347","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Freistaat Bayern"},{"name":"Ministry of Science, Research and the Arts Baden-W\u00fcrttemberg"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["The International Journal of High Performance Computing Applications"],"published-print":{"date-parts":[[2025,3]]},"abstract":"<jats:p>Sparse linear iterative solvers are essential for many large-scale simulations. Much of the runtime of these solvers is often spent in the implicit evaluation of matrix polynomials via a sequence of sparse matrix-vector products. A variety of approaches has been proposed to make these polynomial evaluations explicit (i.e., fix the coefficients), e.g., polynomial preconditioners or s-step Krylov methods. Furthermore, it is nowadays a popular practice to approximate triangular solves by a matrix polynomial to increase parallelism. Such algorithms allow to evaluate the polynomial using a so-called matrix power kernel (MPK), which computes the product between a power of a sparse matrix [Formula: see text] and a dense vector [Formula: see text], i.e., [Formula: see text], or a related operation. Recently we have shown that using the level-based formulation of sparse matrix-vector multiplications in the Recursive Algebraic Coloring Engine (RACE) framework we can perform temporal cache blocking of MPK to increase its performance. In this work, we demonstrate the application of this cache-blocking optimization in sparse iterative solvers. By integrating the RACE library into the Trilinos framework, we demonstrate the speedups achieved in (preconditioned) s-step GMRES, polynomial preconditioners, and algebraic multigrid (AMG). For MPK-dominated algorithms we achieve speedups of up to 3[Formula: see text] on modern multi-core compute nodes. For algorithms with moderate contributions from subspace orthogonalization, the gain reduces significantly, which is often caused by the insufficient quality of the orthogonalization routines. Finally, we showcase the application of RACE-accelerated solvers in a real-world wind turbine simulation (Nalu-Wind) and highlight the new opportunities and perspectives opened up by RACE as a cache-blocking technique for MPK-enabled sparse solvers.<\/jats:p>","DOI":"10.1177\/10943420241283828","type":"journal-article","created":{"date-parts":[[2024,9,26]],"date-time":"2024-09-26T14:15:25Z","timestamp":1727360125000},"page":"230-250","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":3,"title":["Algebraic temporal blocking for sparse iterative solvers on multi-core CPUs"],"prefix":"10.1177","volume":"39","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-4548-8727","authenticated-orcid":false,"given":"Christie","family":"Alappat","sequence":"first","affiliation":[{"name":"Erlangen National High Performance Computing Center, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jonas","family":"Thies","sequence":"additional","affiliation":[{"name":"Institute of Applied Mathematics, Delft University of Technology, Delft, The Netherlands"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8723-2781","authenticated-orcid":false,"given":"Georg","family":"Hager","sequence":"additional","affiliation":[{"name":"Erlangen National High Performance Computing Center, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Holger","family":"Fehske","sequence":"additional","affiliation":[{"name":"Erlangen National High Performance Computing Center, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gerhard","family":"Wellein","sequence":"additional","affiliation":[{"name":"Erlangen National High Performance Computing Center, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, Germany"},{"name":"Institute of Applied Mathematics, Delft University of Technology, Delft, The Netherlands"},{"name":"Department of Computer Science, Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg, Erlangen, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"179","published-online":{"date-parts":[[2024,9,25]]},"reference":[{"key":"bibr1-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1002\/nla.1892"},{"key":"bibr2-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1016\/S0021-9991(03)00194-3"},{"key":"bibr3-10943420241283828","volume-title":"Recursive algebraic coloring engine librar","author":"Alappat C","year":"2019"},{"key":"bibr4-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1145\/3399732"},{"key":"bibr5-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-50743-5\/_\/21"},{"key":"bibr6-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2022.3223512"},{"key":"bibr7-10943420241283828","volume-title":"AOCL-BLIS","author":"AMD","year":"2022"},{"key":"bibr8-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1142\/S0129053389000056"},{"key":"bibr9-10943420241283828","doi-asserted-by":"publisher","DOI":"10.3233\/SPR-2012-0352"},{"key":"bibr10-10943420241283828","doi-asserted-by":"publisher","DOI":"10.2172\/1491860"},{"key":"bibr11-10943420241283828","volume-title":"Two-stage Gauss-Seidel preconditioners and smoothers for Krylov solvers on a GPU cluster","author":"Berger-Vergiat L","year":"2021"},{"key":"bibr12-10943420241283828","doi-asserted-by":"publisher","DOI":"10.2307\/2006422"},{"key":"bibr13-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2018.04.017"},{"key":"bibr14-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/0728088"},{"key":"bibr15-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1016\/0377-0427(89)90045-9"},{"key":"bibr16-10943420241283828","volume-title":"s-step Orthomin and GMRES implemented on parallel computers","author":"Chronopoulos AT","year":"2020"},{"key":"bibr17-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/99.660313"},{"key":"bibr18-10943420241283828","volume-title":"Auto-Tuning Stencil Codes for Cache-Based Multicore Platforms","author":"Datta K","year":"2009"},{"key":"bibr19-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1145\/2049662.2049663"},{"key":"bibr20-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2008.4536305"},{"key":"bibr21-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2017.48"},{"key":"bibr22-10943420241283828","first-page":"160","volume":"3","author":"Erhel J","year":"1995","journal-title":"Electronic Transactions on Numerical Analysis"},{"key":"bibr23-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-8191(84)90380-6"},{"key":"bibr24-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2006.105"},{"key":"bibr25-10943420241283828","unstructured":"Hoemmen M (2010) Communication-Avoiding Krylov Subspace Methods. PhD Thesis. USA, AAI3413388."},{"key":"bibr26-10943420241283828","unstructured":"Intel (2022) Intel math kernel library. Available at: https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/tools\/oneapi\/onemkl.html."},{"key":"bibr27-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/0720025"},{"key":"bibr28-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/130930352"},{"key":"bibr29-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1007\/BF01385649"},{"key":"bibr30-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1002\/nla.2427"},{"key":"bibr31-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/1.9781611976137.4"},{"key":"bibr32-10943420241283828","doi-asserted-by":"publisher","DOI":"10.21136\/AM.1992.104515"},{"key":"bibr33-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1145\/1654059.1654096"},{"key":"bibr34-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2015.05.315"},{"key":"bibr35-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/HPEC49654.2021.9622869"},{"key":"bibr36-10943420241283828","doi-asserted-by":"publisher","DOI":"10.2172\/1259544"},{"key":"bibr37-10943420241283828","unstructured":"Rajamanickam S, Acer S, Berger-Vergiat L, et al. (2021) Kokkos kernels: performance portable sparse\/dense linear algebra and graph kernels. Available at: https:\/\/doi.org\/10.48550\/ARXIV.2103.11991."},{"key":"bibr38-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/0724013"},{"key":"bibr39-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/0907058"},{"key":"bibr40-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1088\/1742-6596\/1452\/1\/012071"},{"key":"bibr41-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/18M1179018"},{"key":"bibr42-10943420241283828","volume-title":"The trilinos project website","author":"Trilinos Project Team T","year":"2020"},{"key":"bibr43-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1145\/2764454"},{"key":"bibr44-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1017\/S0962492915000021"},{"key":"bibr45-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2014.48"},{"key":"bibr46-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2014.81"},{"key":"bibr47-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPSW.2017.65"},{"key":"bibr48-10943420241283828","doi-asserted-by":"publisher","DOI":"10.1137\/20M1342562"}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/10943420241283828","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/10943420241283828","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/10943420241283828","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T08:17:38Z","timestamp":1777450658000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/10943420241283828"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,9,25]]},"references-count":48,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2025,3]]}},"alternative-id":["10.1177\/10943420241283828"],"URL":"https:\/\/doi.org\/10.1177\/10943420241283828","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"value":"1094-3420","type":"print"},{"value":"1741-2846","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,9,25]]}}}