{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T14:19:37Z","timestamp":1780928377747,"version":"3.54.1"},"reference-count":59,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T00:00:00Z","timestamp":1780876800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2026,6,30]]},"abstract":"<jats:p>\n                    C++ leans towards a memory-inefficient storage of structs: The compiler inserts padding bits, while it is not able to exploit knowledge about the range of integers, enums or bitsets. Furthermore, the language provides no support for arbitrary floating-point precisions. We propose a language extension based upon attributes through which developers can guide the compiler what memory arrangements would be beneficial: Can multiple booleans or integers with limited range be squeezed into one bit field, do floating-point numbers hold fewer significant bits than in the IEEE standard, and is a programmer willing to trade attribute ordering guarantees for a more compact object representation? The extension offers the opportunity to fall back to normal alignment and native C++ floating-point representations via plain C++ assignments, no dependencies upon external libraries are introduced, and the resulting code remains (syntactically) standard C++. As MPI remains the\n                    <jats:italic toggle=\"yes\">de facto<\/jats:italic>\n                    standard for distributed memory calculations in C++, we furthermore propose additional attributes which streamline the MPI datatype modelling in combination with our memory optimisation extensions. Our work implements the language annotations within LLVM and demonstrates their potential impact through smoothed particle hydrodynamics benchmarks. They uncover the potential gains in terms of performance and development productivity.\n                  <\/jats:p>","DOI":"10.1145\/3799887","type":"journal-article","created":{"date-parts":[[2026,3,10]],"date-time":"2026-03-10T14:12:08Z","timestamp":1773151928000},"page":"1-53","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["An Extension of C++ with Memory-Centric Specifications for HPC to Reduce Memory Footprints and Streamline MPI Development"],"prefix":"10.1145","volume":"52","author":[{"ORCID":"https:\/\/orcid.org\/0009-0009-8613-3632","authenticated-orcid":false,"given":"Pawel K.","family":"Radtke","sequence":"first","affiliation":[{"name":"Computer Science, Durham University, Durham, United Kingdom of Great Britain and Northern Ireland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4976-3028","authenticated-orcid":false,"given":"Cristian","family":"Barrera-Hinojosa","sequence":"additional","affiliation":[{"name":"Instituto de Fisica y Astronomia, Universidad de Valparaiso, Valparaiso, Chile"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3539-3831","authenticated-orcid":false,"given":"Mladen","family":"Ivkovic","sequence":"additional","affiliation":[{"name":"Computer Science, Durham University, Durham, United Kingdom of Great Britain and Northern Ireland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6208-1841","authenticated-orcid":false,"given":"Tobias","family":"Weinzierl","sequence":"additional","affiliation":[{"name":"Computer Science, Durham University, Durham, United Kingdom of Great Britain and Northern Ireland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,6,8]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1177\/10943420211003313"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2021.3084071"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.2019.00023"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","unstructured":"Dinshaw S. Balsara. 1995. Von Neumann stability analysis of smooth particle hydrodynamics\u2013suggestions for optimal algorithms. Journal of Computational Physics 121 2 (Jan. 1995) 357\u2013372. DOI: 10.1016\/S0021-9991(95)90221-X","DOI":"10.1016\/S0021-9991(95)90221-X"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1137\/1.9780898717969"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-69389-5_25"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.future.2009.05.011"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.5555\/3571885.3571888"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1137\/17M1140819"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1137\/22M1487709"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1137\/20m1334796"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1098\/rsos.211631"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1111\/j.1365-2966.2012.21439.x"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1137\/18M1168832"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1002\/fld.2481"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1177\/1094342010391989"},{"key":"e_1_3_2_18_2","first-page":"31","volume-title":"Proceedings of the 2019 IEEE\/ACM 9th Workshop on Irregular Applications: Architectures and Algorithms (IA3)","author":"Doucet Nicolas","year":"2019","unstructured":"Nicolas Doucet, Hatem Ltaief, Damien Gratadour, and David Keyes. 2019. Mixed-precision tomographic reconstructor computations on hardware accelerators. In Proceedings of the 2019 IEEE\/ACM 9th Workshop on Irregular Applications: Architectures and Algorithms (IA3), 31\u201338."},{"key":"e_1_3_2_19_2","first-page":"421","volume-title":"Parallel Computing: On the Road to Exascale","volume":"27","author":"Eckhardt Wolfgang","year":"2015","unstructured":"Wolfgang Eckhardt, Robert Glas, Denys Korzh, Stefan Wallner, and Tobias Weinzierl. 2015. On-the-fly memory compression for multibody algorithms. In Parallel Computing: On the Road to Exascale. Gerhard R. Joubert, Hugh Leather, Mark Parsons, and Frans Peters (Eds), Advances in Parallel Computing, Vol. 27, 421\u2013430."},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/tetc.2021.3069165"},{"key":"e_1_3_2_21_2","doi-asserted-by":"crossref","first-page":"729","DOI":"10.1007\/978-3-642-32820-6_72","volume-title":"Euro-Par 2012 Parallel Processing","author":"Filgueira Rosa","year":"2012","unstructured":"Rosa Filgueira, Malcolm Atkinson, Albert Nu\u00f1ez, and Javier Fern\u00e1ndez. 2012. An adaptive, scalable, and portable technique for speeding up MPI-based applications. In Euro-Par 2012 Parallel Processing. Christos Kaklamanis, Theodore Papatheodorou, and Paul G. Spirakis (Eds.), Springer, Berlin, 729\u2013740."},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368086"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1177\/1094342019840806"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_3_2_25_2","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma Erich","year":"1994","unstructured":"Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Prentice Hall."},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1093\/mnras\/181.3.375"},{"key":"e_1_3_2_27_2","volume-title":"Using Advanced MPI: Modern Features of the Message-Passing Interface","author":"Gropp William","year":"2014","unstructured":"William Gropp, Torsten Hoefler, Rajeev Thakur, and Ewing Lusk. 2014. Using Advanced MPI: Modern Features of the Message-Passing Interface. The MIT Press."},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICPPW.2010.38"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0962492922000022"},{"key":"e_1_3_2_30_2","first-page":"13","volume-title":"Proceedings of the International Conference on Parallel Computing in Electrical Engineering (PARELEC \u201900)","author":"Hillson Roger","year":"2000","unstructured":"Roger Hillson and Michal Iglewski. 2000. C++2MPI: A software tool for automatically generating MPI datatypes from C++ classes. In Proceedings of the International Conference on Parallel Computing in Electrical Engineering (PARELEC \u201900), 13\u201317."},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1177\/10943420231201144"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.5555\/1212138"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2018.00052"},{"key":"e_1_3_2_34_2","first-page":"59","volume-title":"Proceedings of the 2004 ACM\/IEEE Conference on SupercomputingSC \u201904","author":"Ke Jian","year":"2004","unstructured":"Jian Ke, M. Burtscher, and E. Speight. 2004. Runtime compression of MPI messanes to improve the performance and scalability of parallel applications. In Proceedings of the 2004 ACM\/IEEE Conference on Supercomputing (SC \u201904), 59\u201359."},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3458744.3473359"},{"key":"e_1_3_2_36_2","doi-asserted-by":"crossref","first-page":"50","DOI":"10.1109\/SC.2006.30","volume-title":"Proceedings of the ACM\/IEEE SC 2006 Conference (SC \u201906)","author":"Langou Julie","year":"2006","unstructured":"Julie Langou, Julien Langou, Piotr Luszczek, Jakub Kurzak, Alfredo Buttari, and Jack Dongarra. 2006. Exploiting the performance of 32 bit floating point arithmetic in obtaining 64 bit accuracy (revisiting iterative refinement for linear systems). In Proceedings of the ACM\/IEEE SC 2006 Conference (SC \u201906). IEEE, 50\u201368. DOI: 10.1109\/SC.2006.30"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1098\/rspa.2019.0801"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1109\/TVCG.2014.2346458"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3190339.3190344"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3581784.3627042"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1146\/annurev.aa.30.090192.002551"},{"key":"e_1_3_2_42_2","unstructured":"Joseph J. Monaghan and John C. Lattanzio. 1985. A refined particle method for astrophysical problems. Astronomy and Astrophysics 149 1 (Aug. 1985) 135\u2013143."},{"issue":"11","key":"e_1_3_2_43_2","doi-asserted-by":"crossref","first-page":"e5941","DOI":"10.1002\/cpe.5941","article-title":"Delayed approximate matrix assembly in multigrid with dynamic precisions","volume":"33","author":"Murray Charles D.","year":"2020","unstructured":"Charles D. Murray and Tobias Weinzierl. 2020. Delayed approximate matrix assembly in multigrid with dynamic precisions. Concurrency and Computation: Practice and Experience 33, 11 (2020), e5941.","journal-title":"Concurrency and Computation: Practice and Experience"},{"key":"e_1_3_2_44_2","doi-asserted-by":"crossref","first-page":"25","DOI":"10.1007\/978-3-030-43229-4_3","volume-title":"Parallel Processing and Applied Mathematics: Proceedings of the 13th International Conference on Parallel Processing and Applied Mathematics","author":"Murray Charles D.","year":"2020","unstructured":"Charles D. Murray and Tobias Weinzierl. 2020. Lazy stencil integration in multigrid algorithms. In Parallel Processing and Applied Mathematics: Proceedings of the 13th International Conference on Parallel Processing and Applied Mathematics, 25\u201337."},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1016\/0021-9991(87)90074-X"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2015.08.021"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jcp.2010.12.011"},{"issue":"21","key":"e_1_3_2_48_2","doi-asserted-by":"crossref","first-page":"e70199","DOI":"10.1002\/cpe.70199","article-title":"Annotation-guided AoS-to-SoA conversions and GPU offloading with data views in C++","volume":"37","author":"Radtke Pawel K.","year":"2025","unstructured":"Pawel K. Radtke and Tobias Weinzierl. 2025. Annotation-guided AoS-to-SoA conversions and GPU offloading with data views in C++. Concurrency and Computation: Practice and Experience 37, 21\u201322 (2025), e70199.","journal-title":"Concurrency and Computation: Practice and Experience"},{"key":"e_1_3_2_49_2","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4842-5574-2","volume-title":"Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL","author":"Reinders James","year":"2021","unstructured":"James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, and Xinmin Tian. 2021. Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL. Apress Open, New York, NY."},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICPPW.2006.56"},{"key":"e_1_3_2_51_2","doi-asserted-by":"crossref","unstructured":"Matthieu Schaller Josh Borrow Peter W. Draper Mladen Ivkovic Stuart McAlpine Bert Vandenbroucke Yannick Bah\u00e9 Evgenii Chaikin Aidan B. G. Chalk Tsang Keung Chan et al. 2024. SWIFT: A modern highly-parallel gravity and smoothed particle hydrodynamics solver for astrophysical and cosmological applications. Monthly Notices of the Royal Astronomical Society 530 2 (May 2024) 2378\u20132419. DOI: 10.1093\/mnras\/stae922","DOI":"10.1093\/mnras\/stae922"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/2929908.2929916"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1093\/mnras\/stad2419"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1111\/j.1365-2966.2005.09655.x"},{"key":"e_1_3_2_55_2","unstructured":"Matthias Steinmetz and E. Mueller. 1993. On the capabilities and limits of smoothed particle hydrodynamics. Astronomy and Astrophysics 268 1 (Feb. 1993) 391\u2013410."},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2018.8342167"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304006"},{"issue":"3","key":"e_1_3_2_58_2","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3165280","article-title":"Algebraic-geometric matrix-free multigrid on dynamically adaptive cartesian meshes","volume":"44","author":"Weinzierl Marion","year":"2018","unstructured":"Marion Weinzierl and Tobias Weinzierl. 2018. Algebraic-geometric matrix-free multigrid on dynamically adaptive cartesian meshes. ACM Transactions on Mathematical Software 44, 3, Article 32 (2018), 1\u201344.","journal-title":"ACM Transactions on Mathematical Software"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/3319797"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2015.12.007"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3799887","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,6,8]],"date-time":"2026-06-08T13:26:01Z","timestamp":1780925161000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3799887"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,6,8]]},"references-count":59,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2026,6,30]]}},"alternative-id":["10.1145\/3799887"],"URL":"https:\/\/doi.org\/10.1145\/3799887","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,6,8]]},"assertion":[{"value":"2024-07-02","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-02-08","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-06-08","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}