With the degree of complexity and size increasing in new hardware architectures, applications are more and more hindered by the main bottlenecks in computation, namely starvation, latency, overheads, and waiting for contention resolution, energy limitations and increasing needs for resilient operation. We present HPX, which is a general purpose parallel C++ runtime system implementing a new model of computation – ParalleX, that attempts to address those challenges.
We show results from using HPX for leveraging and managing asynchrony, overlapping different phases of computation and communication, suggesting ways to seamlessly expose it to programmers in an easy to use way. Our main use case presented relates to ADCIRC and DGSWEM, two toolkits widely used in coastal modeling for addressing the effects and interactions of natural processes such as winds, tides, waves and currents on hydrodynamic interfaces using the two-dimensional (vertically-integrated) and three-dimensional versions of the Shallow Water Equations.