HiFlow3: A Hardware-Aware Parallel Finite Element Package

The goal of this paper is to describe the hardware-aware parallel C++ finite element package HiFlow3. HiFlow3 aims at providing a powerful platform for simulating processes modelled by partial differential equations. Our vision is to solve boundary value problems in an appropriate way by coupling numerical simulations with modern software design and state-of-the-art hardware technologies. The main functionalities for mapping the mathematical model into parallel software are implemented in the three core modules Mesh, DoF/FEM and Linear Algebra (LA). Parallelism is realized on two levels. The modules provide efficient MPI-based distributed data structures to achieve performance on large HPC systems but also on stand-alone workstations. Additionally, the hardware-aware cross-platform approach in the LA module accelerates the solution process by exploiting the computing power from emerging technologies like multi-core CPUs and GPUs. In this context performance evaluation on different hardware-architectures will be demonstrated.

[1]  Vincent Heuveline HiFlow3: a flexible and hardware-aware parallel finite element package , 2010, POOSC '10.

[2]  Jan-Philipp Weiss,et al.  A survey on hardware‐aware and heterogeneous computing on multicore processors and accelerators , 2009, Concurr. Comput. Pract. Exp..

[3]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[4]  Jan-Philipp Weiss,et al.  Parallel Smoothers for Matrix-Based Geometric Multigrid Methods on Locally Refined Meshes Using Multicore CPUs and GPUs , 2011, Facing the Multicore-Challenge.

[5]  Anders Logg,et al.  Efficient representation of computational meshes , 2009, Int. J. Comput. Sci. Eng..

[6]  Jan-Philipp Weiss,et al.  Parallel Smoothers for Matrix-based Multigrid Methods on Unstructured Meshes Using Multicore CPUs and GPUs , 2011 .

[7]  William J. Schroeder,et al.  The Visualization Toolkit , 2005, The Visualization Handbook.

[8]  Jan-Philipp Weiss,et al.  Enhanced Parallel ILU(p)-based Preconditioners for Multi-core CPUs and GPUs -- The Power(q)-pattern Method , 2011 .

[9]  Jan-Philipp Weiss,et al.  Scalable Multi-coloring Preconditioning for Multi-core CPUs and GPUs , 2010, Euro-Par Workshops.

[10]  Jan-Philipp Weiss,et al.  A multi-platform linear algebra toolbox for finite element solvers on heterogeneous clusters , 2010, 2010 IEEE International Conference On Cluster Computing Workshops and Posters (CLUSTER WORKSHOPS).

[11]  Vincent Heuveline,et al.  Design and Implementation of Distributed Meshes in HiFlow3 , 2010, CHPC.