DeepAI AI Chat
Log In Sign Up

An Algebraic Programming Style for Numerical Software and its Optimization

by   T. B. Dinesh, et al.
Edmentum Inc.
University of Bergen
Centrum Wiskunde & Informatica

The abstract mathematical theory of partial differential equations (PDEs) is formulated in terms of manifolds, scalar fields, tensors, and the like, but these algebraic structures are hardly recognizable in actual PDE solvers. The general aim of the Sophus programming style is to bridge the gap between theory and practice in the domain of PDE solvers. Its main ingredients are a library of abstract datatypes corresponding to the algebraic structures used in the mathematical theory and an algebraic expression style similar to the expression style used in the mathematical theory. Because of its emphasis on abstract datatypes, Sophus is most naturally combined with object-oriented languages or other languages supporting abstract datatypes. The resulting source code patterns are beyond the scope of current compiler optimizations, but are sufficiently specific for a dedicated source-to-source optimizer. The limited, domain-specific, character of Sophus is the key to success here. This kind of optimization has been tested on computationally intensive Sophus style code with promising results. The general approach may be useful for other styles and in other application domains as well.


page 1

page 2

page 3

page 4


A user-guide to Gridap – grid-based approximation of partial differential equations in Julia

We present Gridap, a new scientific software library for the numerical a...

Paraiso : An Automated Tuning Framework for Explicit Solvers of Partial Differential Equations

We propose Paraiso, a domain specific language embedded in functional pr...

Scaling up Deep Learning for PDE-based Models

In numerous applications, forecasting relies on numerical solvers for pa...

Compilation of mathematical expressions in Kotlin

Interpreting mathematical expressions at runtime is a standard task in s...

What is algebraic about algebraic effects and handlers?

This note recapitulates and expands the contents of a tutorial on the ma...

Generic Zero-Cost Reuse for Dependent Types

Dependently typed languages are well known for having a problem with cod...