Strong Scaling of HPX and MPI AMR

We compared an application which is using a 3-D adaptive mesh refinement (AMR) algorithm to solve the semi-linear wave equation with exponent p = 7 with second order finite differencing in space and Runge-Kutta third order integration in time. We implemented this application using conventional techniques based on MPI and using HPX. The figures below show a comparison of the strong scaling behavior of both applications.

In application performance experiments, the HPX runtime system substantially reduced starvation and latency effects which resulted in better load-balancing and better strong scaling than comparison code written using MPI. As levels of refinement were added to the simulation, strong scaling improved in the HPX version. The MPI comparison code showed the opposite behavior: strong scaling decreased as levels of refinement were added. The reduction in starvation and the mitigation of latencies when using the HPX runtime system comes at a cost of increased overhead and contention. Some of this overhead can be controlled and partially amortized by adjusting the task granularity of a simulation. This reduces the number of lightweight threads used and allows the user to optimize the granularity for a particular simulation configuration.


As levels of refinement are added, the strong scaling of the MPI application becomes worse.


As levels of refinement are added, the strong scaling of the equivalent HPX application improves.

GD Star Rating
Strong Scaling of HPX and MPI AMR, 5.0 out of 5 based on 2 ratings
    This entry was posted in Performance and tagged , by Hartmut Kaiser. Bookmark the permalink.

    About Hartmut Kaiser

    Hartmut is an Adjunct Professor of Computer Science at Louisiana State University. At the same time, he holds the position of a senior scientist at the Center for Computation and Technology (LSU). He received his doctorate from the Technical University of Chemnitz (Germany) in 1988. He is probably best known through his involvement in open source software projects, mainly as the author of several C++ libraries he has contributed to Boost, which are in use by thousands of developers worldwide. His current research is focused on leading the STE||AR group at CCT working on the practical design and implementation of the ParalleX execution model and related programming methods. In addition, he architected and developed the core library modules of SAGA for C++, a Simple API for Grid Applications.

    Leave a Reply

    Your email address will not be published. Required fields are marked *