Accelerating SeisSol by generating vectorized code for sparse matrix operators

Alexander Breuer, Alexander Heinecke, Michael Bader, Christian Pelties

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

10 Scopus citations

Abstract

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.

Original languageEnglish
Title of host publicationParallel Computing
Subtitle of host publicationAccelerating Computational Science and Engineering (CSE)
PublisherIOS Press BV
Pages347-356
Number of pages10
ISBN (Print)9781614993803
DOIs
StatePublished - 2014

Publication series

NameAdvances in Parallel Computing
Volume25
ISSN (Print)0927-5452

Keywords

  • ADER-DG
  • Code generation
  • SeisSol
  • Sparse-Matrix Multiplication
  • Vectorization

Fingerprint

Dive into the research topics of 'Accelerating SeisSol by generating vectorized code for sparse matrix operators'. Together they form a unique fingerprint.

Cite this