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.4.tar.gz (44.2 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: openinterfaces-0.5.4.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.4.tar.gz
Algorithm Hash digest
SHA256 bdebd7c0f106f93dc260a08ada889c3963dc221b50098b768bea0d0afcf3dc86
MD5 56103aabcacabd048736325256fd7877
BLAKE2b-256 ee1a38b2c9f6d85d617e4970221ac1dbfb27f9e3b4ea43f4e921a48366e9b4d6

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