Skip to main content

Open Interfaces for improving Interoperability in Scientific Computing

Project description

MaRDI Open Interfaces

QA DOI

MaRDI Open Interfaces is a project aiming to improve interoperability in scientific computing by removing two hurdles that computational scientists usually face in their daily work.

These hurdles are the following. First, numerical solvers are often implemented in different programming languages. Second, these solvers have potentially significantly diverging interfaces in terms of function names, order of function arguments, and the invocation order. Therefore, when a computational scientist wants to switch from one solver to another, it could take non-negligible effort in code modification and testing for the correctness.

Open Interfaces aim to alleviate these problems by providing automatic data marshalling between different languages and a set of interfaces for typical numerical problems such as integration of differential equations and optimization.

This project is the part of the Mathematical Research Data Initiative (MaRDI).

Data flow

Architecture of the MaRDI Open Interfaces

This figure shows the software architecture of the MaRDI Open Interfaces. There are two principal decoupled parts. The left part is user-facing and allows a user to request an implementation of some numerical procedure and then invoke different functions in this implementation to conduct computations using a unified interface (Gateway) that hides discrepancies between different implementations. The other part (on the right) is completely hidden from the user and works with an implementation of the interface. Particularly, it loads the implementation and its adapter and converts user data to the native data for the implementation.

Installation of Python bindings and implementations

The Python bindings and implementations of the interfaces are available from Python Package Index (PyPI) and can be installed using

pip install openinterfaces

Run examples

Examples are provided in the examples directory in this repository. Documentation explaining some of these examples is available here: https://mardi4nfdi.github.io/open-interfaces/.

Funding

This work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy EXC 2044-390685587, “Mathematics Münster: Dynamics–Geometry–Structure” and the National Research Data Infrastructure, project number 460135501, NFDI 29/1 “MaRDI – Mathematical Research Data Initiative [Mathematische Forschungsdateninitiative]”.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openinterfaces-0.5.5.tar.gz (44.2 kB view details)

Uploaded Source

File details

Details for the file openinterfaces-0.5.5.tar.gz.

File metadata

  • Download URL: openinterfaces-0.5.5.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for openinterfaces-0.5.5.tar.gz
Algorithm Hash digest
SHA256 8ee03c82507159e4c70c0070f010f2bad2703f5ea4cb69d30da14ca7ca288242
MD5 fdda11adc17807224fe49efc578e8d8e
BLAKE2b-256 d82b6c742a9f7090ad0c16f50a193f91270186fbf2ffcc8fd31b82935faaa004

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page