Wednesday, 25 January 2017: 11:30 AM
Conference Center: Chelan 2 (Washington State Convention Center )
Here we present how the auto-parallelizing library LibGeoDecomp enables scientific applications to utilize the asynchronous C++ based runtime system HPX. We will specifically talk about two applications, DGSWEM and ADCIRC, which are best-in-class simulation codes for coastal inundation problems, based on shallow water equation models. Both are written in Fortran and have been parallelized via MPI. Both struggle with load imbalances that are intrinsic to their simulation models and domains. HPX provides users with a rich set of abstractions to write code that scales on any architecture, from smartphones to supercomputers. Users can focus on describing which computational tasks depend on which other tasks while HPX takes care of the parallel execution and helps with the load balancing. Combining HPX, a modern, C++ based library, with DGSWEM, a code written in Fortran and parallelized with MPI was not a trivial task. LibGeoDecomp, along with its HPX dataflow backend, provides a painless platform for scientists to write highly-scalable, portable and efficient code. Novel techniques used to facilitate Fortran/C++ interoperability allow DGSWEM physics subroutines to be used in their native Fortran, eliminating the error-prone and time-consuming process of rewriting these subroutines in C or C++, and still take advantage of HPX's asynchronous communication, efficient thread handling and load-migration capabilites.
- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner