Confederated modular differential equation APIs for accelerated algorithm development and benchmarking. (June 2019) - Rackauckas, Christopher
Highlights: A Julia-based type-dispatch API is used to build a confederated system where researchers can use to add their own methods to the standard Julia differential equations ecosystem without requiring modification of core packages. Polyalgorithms over the available methods in the ecosystem are utilized to give intelligent default behavior for end users. The system allows for directly specifying the choice of algorithm in end user software, make it easy to utilize production scientific software as the benchmarking platform for the differential equation solvers. Abstract: Performant numerical solving of differential equations is required for large-scale scientific modeling. In this manuscript we focus on two questions: (1) how can researchers empirically verify theoretical advances and consistently compare methods in production software settings and (2) how can users (scientific domain experts) keep up with the state-of-the-art methods to select those which are most appropriate? Here we describe how the confederated modular API of DifferentialEquations.jl addresses these concerns. We detail the package-free API which allows numerical methods researchers to readily utilize and benchmark any compatible method directly in full-scale scientific applications. In addition, we describe how the complexity of the method choices is abstracted via a polyalgorithm. We show how scientific tooling built on top of DifferentialEquations.jl, such as packages for dynamical systems quantification and quantum optics simulation, both benefit from this structure and provide themselves as convenient benchmarking tools.