Skip to main content
Have a personal or library account? Click to login
Improving Interoperability in Scientific Computing via MaRDI Open Interfaces Cover

Improving Interoperability in Scientific Computing via MaRDI Open Interfaces

Open Access
|Nov 2025

Figures & Tables

Figure 1

Schematic comparison of two approaches to the problem of multiple languages/multiple implementations. A Standard pairwise bindings, B Bindings via Open Interfaces (OIF).

Figure 2

Data flow from user to implementation in MaRDI Open Interfaces.

Figure 3

UML sequence diagram for the initialization phase, in which user requests an implementation for an interface of interest. The abbreviation “impl” stands for “implementation”.

Figure 4

UML sequence diagram showing the function invocations when the user does the actual computations. The diagram shows invocation of a hypothetical method compute with two arguments that are converted to a list oif_args and then unpacked by the Bridge component to native data types of the implementation.

Figure 5

UML sequence diagram showing the function invocations for the unloading phase when the user has finished using the implementation.

Figure 6

Example solutions obtained using MaRDI Open Interfaces: A Solution of the problem (2) using scipy_ode implementation with integrator dopri5 (Dormand–Prince 5(4) method). B Solution of the problem (3) using jl_diffeq implementation with integrator Rosenbrock23.

Table 1

Runtimes, in seconds, of evaluating RHS implementations for system (2) 10000 times at resolution N=6400.

IMPLEMENTATION LANGUAGERUNTIME, SECONDS
C0.115 ± 0.008
Julia0.122 ± 0.016
Python (Numba)0.116 ± 0.001
Table 2

Run times, in seconds, of time integration of system (2) using different user languages: C, Julia, or Python, with “Julia (C)” meaning that RHS implementation is in C), different ways of invoking implementations: via Open Interfaces (OIF) or directly (RAW), and three different implementations (DOPRI5-C—C translation of the original Fortran code [11], DP5 from Julia’s OrdinaryDiffEq.jl package, DOPRI5—Python wrapper over the original Fortran code [11] from SciPy).

#USER LANGUAGEOIF/RAWIMPLEMENTATIONN
1600640025 600
1COIFDOPRI5-C0.068 ± 0.0011.011 ± 0.01721.006 ± 0.100
CRAWDOPRI5-C0.069 ± 0.0010.951 ± 0.01220.699 ± 0.121
2COIFDP50.082 ± 0.0000.847 ± 0.00320.700 ± 0.049
Julia (C)RAWDP50.056 ± 0.0020.820 ± 0.00820.364 ± 0.073
JuliaRAWDP50.067 ± 0.0090.868 ± 0.00421.058 ± 0.067
3PythonRAWDOPRI50.113 ± 0.0001.573 ± 0.01030.829 ± 0.121
PythonOIFDOPRI50.122 ± 0.0091.575 ± 0.00530.944 ± 0.122
PythonOIFDP50.196 ± 0.0031.466 ± 0.00528.147 ± 0.040
DOI: https://doi.org/10.5334/jors.569 | Journal eISSN: 2049-9647
Language: English
Submitted on: Apr 4, 2025
Accepted on: Oct 31, 2025
Published on: Nov 13, 2025
Published by: Ubiquity Press
In partnership with: Paradigm Publishing Services
Publication frequency: 1 issue per year

© 2025 Dmitry I. Kabanov, Stephan Rave, Mario Ohlberger, published by Ubiquity Press
This work is licensed under the Creative Commons Attribution 4.0 License.