MemMan: A Fortran and C++ Interoperable Memory Manager on Modern High-Performance Computing Platforms

Fuente: Zenodo
Saved in:
Bibliographic Details
Main Authors: Holeksa, Claudius, Cojean, Terry, Chen, Yen-Chen, Kosukhin, Sergey, Behrens, Jörg, Kornblueh, Luis, Frauen, Claudia, Anzt, Hartwig
Format: Recurso digital
Published: Zenodo 2026
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866901747804405760
author Holeksa, Claudius
Cojean, Terry
Chen, Yen-Chen
Kosukhin, Sergey
Behrens, Jörg
Kornblueh, Luis
Frauen, Claudia
Anzt, Hartwig
author_facet Holeksa, Claudius
Cojean, Terry
Chen, Yen-Chen
Kosukhin, Sergey
Behrens, Jörg
Kornblueh, Luis
Frauen, Claudia
Anzt, Hartwig
contents <p>In recent years, scientific High Performance Computing (HPC) software stacks are increasingly embracing C++ because of the extensive ecosystem and the superior GPU support across different vendors. However, many important applications are still written in Fortran. The weather and climate prediction model, ICON, for example, is written in Fortran and is still an operational model for daily weather forecasts for several countries. A Fortran code containing millions of lines of code, like ICON, cannot be easily rewritten in C++. The reasonable solution would be to rewrite components of the code in C++. However, there is no standard for cross-compiling Fortran and C++ code. Interfacing C++ and Fortran code is a tedious task. Cross-compiling can be error-prone because there is no proper compiler message or debugger for cross-compiling. For an alternative approach enabling coexistence and interplay of C++ and Fortran code, we developed a memory manager library, MemMan, which handles data passing between Fortran and C++ codes. MemMan simplifies Fortran-C++ interfacing by handling the argument passing in the library. MemMan manages not only CPU memories, but also GPU memories of different vendors. The memory manager library assists an incremental rewrite of large Fortran applications into C++. MemMan was motivated by the modernization effort of the ICON code, but it has been made general such that it works for all Fortran and C++ cross-compile applications using GPUs. With the help of MemMan, a Fortran application can easily try out performance portability libraries such as Kokkos and numerical libraries such as Ginkgo.</p>
format Recurso digital
id zenodo_https___doi_org_10_1145_3784828_3785257
institution Zenodo
language
publishDate 2026
publisher Zenodo
record_format zenodo
spellingShingle MemMan: A Fortran and C++ Interoperable Memory Manager on Modern High-Performance Computing Platforms
Holeksa, Claudius
Cojean, Terry
Chen, Yen-Chen
Kosukhin, Sergey
Behrens, Jörg
Kornblueh, Luis
Frauen, Claudia
Anzt, Hartwig
<p>In recent years, scientific High Performance Computing (HPC) software stacks are increasingly embracing C++ because of the extensive ecosystem and the superior GPU support across different vendors. However, many important applications are still written in Fortran. The weather and climate prediction model, ICON, for example, is written in Fortran and is still an operational model for daily weather forecasts for several countries. A Fortran code containing millions of lines of code, like ICON, cannot be easily rewritten in C++. The reasonable solution would be to rewrite components of the code in C++. However, there is no standard for cross-compiling Fortran and C++ code. Interfacing C++ and Fortran code is a tedious task. Cross-compiling can be error-prone because there is no proper compiler message or debugger for cross-compiling. For an alternative approach enabling coexistence and interplay of C++ and Fortran code, we developed a memory manager library, MemMan, which handles data passing between Fortran and C++ codes. MemMan simplifies Fortran-C++ interfacing by handling the argument passing in the library. MemMan manages not only CPU memories, but also GPU memories of different vendors. The memory manager library assists an incremental rewrite of large Fortran applications into C++. MemMan was motivated by the modernization effort of the ICON code, but it has been made general such that it works for all Fortran and C++ cross-compile applications using GPUs. With the help of MemMan, a Fortran application can easily try out performance portability libraries such as Kokkos and numerical libraries such as Ginkgo.</p>
title MemMan: A Fortran and C++ Interoperable Memory Manager on Modern High-Performance Computing Platforms
url https://doi.org/10.1145/3784828.3785257