A Generic Interface for Godunov-Type Finite Volume Methods on Adaptive Triangular Meshes
We present and evaluate a programming interface for high performance Godunov-type finite volume applications with the framework sam(oa)\(^2\). This interface requires application developers only to provide problem-specific implementations of a set of operators, while sam(oa)\(^2\) transparently manages HPC features such as memory-efficient adaptive mesh refinement, parallelism in distributed and shared memory and vectorization of Riemann solvers. We focus especially on the performance of vectorization, which can be either managed by the framework (with compiler auto-vectorization of the operator calls) or directly by the developers in the operator implementation (possibly using more advanced techniques). We demonstrate the interface’s performance using two example applications based on variations of the shallow water equations. Our performance results show successful vectorization using both approaches, with similar performance. They also show that the applications developed with the new interface achieve performance comparable to analogous applications developed without the new layer of abstraction.
KeywordsHigh performance computing Vectorization Finite volume methods Shallow water equations
Chaulio R. Ferreira appreciates the support of CNPq, the Brazilian Council of Technological and Scientific Development (grant no. 234439/2014-9). Computing resources were provided by the Leibniz Supercomputing Center (project pr85ri).
- 5.Burstedde, C., Calhoun, D., Mandli, K., Terrel, A.R.: ForestClaw: hybrid forest-of-octrees AMR for hyperbolic conservation laws. In: Parallel Computing: Accelerating Computational Science and Engineering, vol. 25, pp. 253–262 (2014)Google Scholar
- 7.Ferreira, C.R., Bader, M.: Load balancing and patch-based parallel adaptive mesh refinement for tsunami simulation on heterogeneous platforms using Xeon Phi coprocessors. In: Proceeding of PASC, pp. 12:1–12:12. ACM (2017)Google Scholar
- 8.Ferreira, C.R., Mandli, K.T., Bader, M.: Vectorization of Riemann solvers for the single-and multi-layer Shallow Water Equations. In: International Conference on High Performance Computing & Simulation, pp. 415–422. IEEE (2018)Google Scholar
- 11.Jeffers, J., Reinders, J.: Intel Xeon Phi Coprocessor High-performance Programming. Newnes, Oxford (2013)Google Scholar
- 12.LeVeque, R.J.: Finite Volume Methods for Hyperbolic Problems. Cambridge University Press (2002). www.clawpack.org/book.html
- 16.McCalpin, J.D.: Memory bandwidth and machine balance in current high performance computers. IEEE TCCA Newsl. 2, 19–25 (1995)Google Scholar
- 19.Rettenberger, S., Meister, O., Bader, M., Gabriel, A.A.: ASAGI - a parallel server for adaptive geoinformation. In: Proceedings of EASC, pp. 2:1–2:9. ACM (2016)Google Scholar
- 20.Sampath, R.S., Adavani, S.S., Sundar, H., Lashuk, I., Biros, G.: Dendro: Parallel algorithms for multigrid and AMR methods on 2:1 balanced octrees. In: Proc. 2008 ACM/IEEE Conference on Supercomputing, pp. 18:1–18:12. IEEE Press (2008)Google Scholar
- 22.Wahib, M., Maruyama, N., Aoki, T.: Daino: a high-level framework for parallel and efficient AMR on GPUs. In: Proceedings of International Conference on HPC, Networking, Storage and Analysis, pp. 53:1–53:12. IEEE Press (2016)Google Scholar