On December 10, 2015, Zach Byerly presented a paper outlining a technique for interfacing C and C++ codes to Fortran subroutines. This was a direct result of the STORM team’s efforts to join HPX and LibGeoDecomp to the discontinuous Galerkin version of ADCIRC, DGSWEM.
Many HPC applications developed over the past two
decades have used Fortran and MPI-based parallelization. As
the size of today’s HPC resources continues to increase, these
codes struggle to efficiently utilize the million-way parallelism of
these platforms. Rewriting these codes from scratch to leverage
modern programming paradigms would be time-consuming and
error-prone. We evaluate a robust approach for interfacing
with next-generation C++-based libraries and drivers. We have
successfully used this technique to modify the Fortran code
DGSWEM (Discontinuous Galerkin Shallow Water Equation
Model), allowing it to take advantage of the new parallel runtime
system HPX. Our goal was to make as few modifications to the
DGSWEM Fortran source code as possible, thereby minimizing
the chances of introducing bugs and reducing the amount of
re-verification that needed to be done.
Read the paper here.