SpECTRE: A task-based discontinuous Galerkin code for relativistic astrophysics

  • Lawrence E. Kidder
  • , Scott E. Field
  • , Francois Foucart
  • , Erik Schnetter
  • , Saul A. Teukolsky
  • , Andy Bohn
  • , Nils Deppe
  • , Peter Diener
  • , François Hébert
  • , Jonas Lippuner
  • , Jonah Miller
  • , Christian D. Ott
  • , Mark A. Scheel
  • , Trevor Vincent

Research output: Contribution to journalArticlepeer-review

93 Scopus citations

Abstract

We introduce a new relativistic astrophysics code, SpECTRE, that combines a discontinuous Galerkin method with a task-based parallelism model. SpECTRE's goal is to achieve more accurate solutions for challenging relativistic astrophysics problems such as core-collapse supernovae and binary neutron star mergers. The robustness of the discontinuous Galerkin method allows for the use of high-resolution shock capturing methods in regions where (relativistic) shocks are found, while exploiting high-order accuracy in smooth regions. A task-based parallelism model allows efficient use of the largest supercomputers for problems with a heterogeneous workload over disparate spatial and temporal scales. We argue that the locality and algorithmic structure of discontinuous Galerkin methods will exhibit good scalability within a task-based parallelism framework. We demonstrate the code on a wide variety of challenging benchmark problems in (non)-relativistic (magneto)-hydrodynamics. We demonstrate the code's scalability including its strong scaling on the NCSA Blue Waters supercomputer up to the machine's full capacity of 22,380 nodes using 671,400 threads.

Original languageEnglish
Pages (from-to)84-114
Number of pages31
JournalJournal of Computational Physics
Volume335
DOIs
StatePublished - Apr 15 2017

Keywords

  • Discontinuous Galerkin
  • Hydrodynamics
  • Magnetohydrodynamics
  • Task-based parallelism

Fingerprint

Dive into the research topics of 'SpECTRE: A task-based discontinuous Galerkin code for relativistic astrophysics'. Together they form a unique fingerprint.

Cite this