{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,31]],"date-time":"2026-03-31T11:47:44Z","timestamp":1774957664533,"version":"3.50.1"},"publisher-location":"Cham","reference-count":20,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783032071934","type":"print"},{"value":"9783032071941","type":"electronic"}],"license":[{"start":{"date-parts":[[2025,10,15]],"date-time":"2025-10-15T00:00:00Z","timestamp":1760486400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,10,15]],"date-time":"2025-10-15T00:00:00Z","timestamp":1760486400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026]]},"DOI":"10.1007\/978-3-032-07194-1_3","type":"book-chapter","created":{"date-parts":[[2025,10,14]],"date-time":"2025-10-14T18:07:09Z","timestamp":1760465229000},"page":"36-53","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Layout-Agnostic MPI Abstraction for\u00a0Distributed Computing in\u00a0Modern C++"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2231-4073","authenticated-orcid":false,"given":"Ji\u0159\u00ed","family":"Klepl","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0985-8949","authenticated-orcid":false,"given":"Martin","family":"Kruli\u0161","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-4470-2748","authenticated-orcid":false,"given":"Maty\u00e1\u0161","family":"Brabec","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2025,10,15]]},"reference":[{"key":"3_CR1","doi-asserted-by":"crossref","unstructured":"Avans, C.N., Ciesko, J., Pearson, C., Suggs, E.D., Olivier, S.L., Skjellum, A.: Performance insights into supporting kokkos views in the kokkoscomm mpi library. In: 2024 IEEE International Conference on Cluster Computing Workshops (CLUSTER Workshops), pp. 186\u2013187. IEEE (2024)","DOI":"10.1109\/CLUSTERWorkshops61563.2024.00051"},{"key":"3_CR2","unstructured":"Bauke, H.: MPL - A message passing library (2014-2015). https:\/\/github.com\/rabauke\/mpl"},{"key":"3_CR3","unstructured":"Demiralp, A.C., Martin, P., Sakic, N., Kr\u00fcger, M., Gerrits, T.: A C++ 20 interface for MPI 4.0. arXiv preprint arXiv:2306.11840 (2023)"},{"key":"3_CR4","unstructured":"Gregor, D., Troyer, M.: Boost. mpi. MPI, November (2006)"},{"key":"3_CR5","doi-asserted-by":"crossref","unstructured":"Grosser, T., Groesslinger, A., Lengauer, C.: Polly: performing polyhedral optimizations on a low-level intermediate representation. Parallel Processing Letters, p. 1250010 (2012)","DOI":"10.1142\/S0129626412500107"},{"key":"3_CR6","unstructured":"ISO\/IEC JTC1\/SC22\/WG21: working draft, standard for programming language c++. Tech. Rep. N4950 (2023). https:\/\/open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2023\/n4950.pdf, revises: N4944"},{"key":"3_CR7","doi-asserted-by":"crossref","unstructured":"Klepl, J., \u0160melko, A., Rozsypal, L., Kruli\u0161, M.: Abstractions for C++ code optimizations in parallel high-performance applications. Parallel Comput. p. 103096 (2024)","DOI":"10.1016\/j.parco.2024.103096"},{"key":"3_CR8","unstructured":"Message passing interface forum: MPI: a message-passing interface standard version 4.1 (2023). https:\/\/www.mpi-forum.org\/docs\/mpi-4.1\/mpi41-report.pdf"},{"key":"3_CR9","unstructured":"MPICH Team: MPICH v4.3.0 Manpages (2025). https:\/\/www.mpich.org\/static\/docs\/v4.3.0\/"},{"key":"3_CR10","doi-asserted-by":"crossref","unstructured":"Namjoshi, K.S., Singhania, N.: Loopy: programmable and formally verified loop transformations. In: International Static Analysis Symposium, pp. 383\u2013402. Springer (2016)","DOI":"10.1007\/978-3-662-53413-7_19"},{"key":"3_CR11","unstructured":"NVIDIA: CuTe layout documentation (2025). https:\/\/github.com\/NVIDIA\/cutlass\/blob\/main\/media\/docs\/cpp\/cute\/01_layout.md, documentation on CuTe layout from the NVIDIA CUTLASS repository"},{"key":"3_CR12","doi-asserted-by":"crossref","unstructured":"Pellegrini, S., Prodan, R., Fahringer, T.: A lightweight C++ interface to MPI. In: 2012 20th Euromicro International Conference on Parallel, Distributed and Network-based Processing, pp. 3\u201310. IEEE (2012)","DOI":"10.1109\/PDP.2012.42"},{"key":"3_CR13","unstructured":"Pop, S., Cohen, A., Bastoul, C., Girbal, S., Silber, G.A., Vasilache, N.: GRAPHITE: Polyhedral analyses and optimizations for GCC. In: proceedings of the 2006 GCC developers summit, pp. 90\u201391. Citeseer (2006)"},{"key":"3_CR14","unstructured":"Pouchet, L.N., Yuki, T.: PolyBench\/C 4.2.1 (2016). https:\/\/sourceforge.net\/projects\/polybench"},{"key":"3_CR15","doi-asserted-by":"crossref","unstructured":"Ragan-Kelley, J., Adams, A., Paris, S., Levoy, M., Amarasinghe, S., Durand, F.: Decoupling algorithms from schedules for easy optimization of image processing pipelines. ACM Trans. Graph. (TOG), pp. 1\u201312 (2012)","DOI":"10.1145\/2185520.2335383"},{"key":"3_CR16","doi-asserted-by":"crossref","unstructured":"\u0160melko, A., Kruli\u0161, M., Kratochv\u00edl, M., Klepl, J., Mayer, J., \u0160im\u016fnek, P.: Astute approach to handling memory layouts of regular data structures. In: Algorithms and Architectures for Parallel Processing: 22nd International Conference, ICA3PP 2022, Copenhagen, Denmark, October 10\u201312, 2022, Proceedings, pp. 507\u2013528. Springer (2023)","DOI":"10.1007\/978-3-031-22677-9_27"},{"key":"3_CR17","unstructured":"The open MPI community: open MPI v5.0.x \u2014 Open MPI 5.0.x documentation (2025). https:\/\/docs.open-mpi.org\/en\/v5.0.x\/"},{"key":"3_CR18","unstructured":"Trott, C., et al.: MDSPAN. Tech. Rep. P0009r18, WG21 (2022). https:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2022\/p0009r18.html"},{"key":"3_CR19","doi-asserted-by":"crossref","unstructured":"Trott, C.R., et\u00a0al.: Kokkos 3: programming model extensions for the exascale era. IEEE Trans. Parallel Distrib. Syst. pp. 805\u2013817 (2021)","DOI":"10.1109\/TPDS.2021.3097283"},{"key":"3_CR20","doi-asserted-by":"crossref","unstructured":"Uhl, T.N., et al.: KaMPIng: flexible and (Near) Zero-Overhead C++ Bindings for MPI. In: SC24: International Conference for High Performance Computing, Networking, Storage and Analysis, pp. 1\u201321. IEEE (2024)","DOI":"10.1109\/SC41406.2024.00050"}],"container-title":["Lecture Notes in Computer Science","Recent Advances in the Message Passing Interface"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-032-07194-1_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,3,31]],"date-time":"2026-03-31T10:52:53Z","timestamp":1774954373000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-032-07194-1_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,15]]},"ISBN":["9783032071934","9783032071941"],"references-count":20,"URL":"https:\/\/doi.org\/10.1007\/978-3-032-07194-1_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,10,15]]},"assertion":[{"value":"15 October 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"The authors have no competing interests to declare that are relevant to the content of this article.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Disclosure of Interests"}}]}}