APS Logo

Design, optimization, and updated status of SpECTRE's C++ tensor expression interface

ORAL

Abstract

In order to evaluate tensor equations, our numerical relativity code, SpECTRE, implements its own C++ tensor class, and many equations are written as for loops that perform component-wise operations. Not only are the same loop structures needed repeatedly throughout the code for different equations, but the process of writing these loops is error prone, tedious, and costs developer time. SpECTRE has previously addressed these issues by implementing an interface that enables writing tensor equations in C++ with syntax that resembles tensor index notation found in equations used in numerical relativity. However, in order for this interface to be usable to us, we need its runtime performance to be on par with the runtime performance of the for loop implementation for equations. In this talk, I will discuss design decisions, implementation details, and new runtime optimizations made for SpECTRE's tensor expression interface, as well as provide benchmarking results and an overall update on its status and features.

Presenters

  • Alexandra L Macedo

    California State University, Fullerton

Authors

  • Alexandra L Macedo

    California State University, Fullerton

  • Nils Deppe

    Caltech, Cornell University