Accelerating SeisSol by Generating Vectorized Code for Sparse Matrix Operators

SeisSol is a software package for the simulation of seismic wave phenomena on unstructured grids, based on the discontinuous Galerkin method combined with ADER time discretization. A recent study shows that the intra-element performance of SeisSol is critical for its overall performance. Most of the element matrices are sparse operators implemented employing a standard sparse matrix storage scheme. Since their sparsity patterns are known a-priori we follow a different approach in this work. Here, we execute an enriched offline and initialization phase which is used to generate hardware-aware code, featuring optimal vectorization and removing indirect memory accesses by eliminating the index arrays and hard-wiring them into the code. Due to these optimizations we are able to run intra-element sparse matrix operations at up to 50% of achievable peak performance of an Intel Sandy Bridge core which results in speeding up SeisSol by a factor of more than 2.1 compared to the original implementation.

[1]  Martin Käser,et al.  SeisSol – A Software for Seismic Wave Propagation Simulations , 2010 .

[2]  M. Dumbser,et al.  An arbitrary high-order Discontinuous Galerkin method for elastic waves on unstructured meshes — III. Viscoelastic attenuation , 2007 .

[3]  M. Dumbser,et al.  An arbitrary high-order discontinuous Galerkin method for elastic waves on unstructured meshes — II. The three-dimensional isotropic case , 2006 .

[4]  Alexander Heinecke,et al.  Cache‐oblivious matrix algorithms in the age of multicores and many cores , 2015, Concurr. Comput. Pract. Exp..

[5]  Robert A. van de Geijn,et al.  Anatomy of high-performance matrix multiplication , 2008, TOMS.

[6]  Ulrich Rüde,et al.  High performance smart expression template math libraries , 2012, 2012 International Conference on High Performance Computing & Simulation (HPCS).

[7]  R. Geijn,et al.  0 BLIS : A Modern Alternative to the BLAS FIELD , 2012 .

[8]  M. Dumbser,et al.  An arbitrary high-order discontinuous Galerkin method for elastic waves on unstructured meshes - I. The two-dimensional isotropic case with external source terms , 2006 .

[9]  J. Ampuero,et al.  Three‐dimensional dynamic rupture simulation with a high‐order discontinuous Galerkin method on unstructured tetrahedral meshes , 2012 .

[10]  Michael Dumbser,et al.  An arbitrary high-order discontinuous Galerkin method for elastic waves on unstructured meshes - IV. Anisotropy , 2007 .

[11]  Olaf Krzikalla,et al.  Scout: A Source-to-Source Transformator for SIMD-Optimizations , 2011, Euro-Par Workshops.

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

[13]  Dirk Pflüger,et al.  Emerging Architectures Enable to Boost Massively Parallel Data Mining Using Adaptive Sparse Grids , 2013, International Journal of Parallel Programming.

[14]  Martin Käser,et al.  Wavefield modeling in exploration seismology using the discontinuous Galerkin finite-element method on HPC infrastructure , 2010 .