Portal/TA2: Difference between revisions
→Open Interfaces: Expand description of the Measure 2.2 Open interfaces |
Grammatical errors |
||
Line 39: | Line 39: | ||
===Open Interfaces=== | ===Open Interfaces=== | ||
The scientific-computing community uses several different programming languages for implementing numerical solvers. Moreover, these solvers often have significantly different programming interfaces. Both of these factors impede interoperability, as switching from, say, a Python solver for time integration to another solver implemented in C requires writing bindings and adapting the calling code to different function names and the order of arguments. | |||
Our goal is to simplify interoperability in scientific computing by alleviating these difficulties. To this aim, we establish generic open interfaces standards between numerical solvers for typical computational problems that allow to seamlessly interconnect and exchange the models and algorithms implemented by these packages in complex modeling or simulation workflows. Also, we develop a mediator library that connects user code to an implementation code via an interface and automates data marshalling between programming languages so that writing explicit bindings is not required. Therefore, users could switch more easily from one implementation to another, while working through the same programming interface without being concerned with technical details such as calling a function in one programming language from another one. | Our goal is to simplify interoperability in scientific computing by alleviating these difficulties. To this aim, we establish generic open interfaces standards between numerical solvers for typical computational problems that allow to seamlessly interconnect and exchange the models and algorithms implemented by these packages in complex modeling or simulation workflows. Also, we develop a mediator library that connects user code to an implementation code via an interface and automates data marshalling between programming languages so that writing explicit bindings is not required. Therefore, users could switch more easily from one implementation to another, while working through the same programming interface without being concerned with technical details such as calling a function in one programming language from another one. | ||
Specifically, we develop such interfaces for common computational problems such as initial-value problems for ordinary differential equations (time integration), optimization, discrete PDE models based on a reusable language-agnostic core API toolkit. Through a developer platform we assist other scientific-computing communities with establishing open interface for their respective software stacks. | Specifically, we develop such interfaces for common computational problems such as initial-value problems for ordinary differential equations (time integration), optimization, discrete PDE models based on a reusable language-agnostic core API toolkit. Through a developer platform, we assist other scientific-computing communities with establishing open interface for their respective software stacks. | ||
===Model Order Reduction Benchmark (MORB) and its Ontology (MORBO)=== | ===Model Order Reduction Benchmark (MORB) and its Ontology (MORBO)=== |
Revision as of 15:54, 22 April 2024
Task area 2: Scientific Computing
Mission
Scientific computing is a cross-disciplinary topic intersecting applied mathematics and computational sciences and engineering (CSE), as well as other scientific areas involving numerical computations, like digital humanities or computational medicine. The principal data types involved are fixed-precision real numbers, which are prone to round-off errors during computation. Beyond the data types found in engineering, such as input/output data of numerical software, in computational mathematics, and specifically in scientific computing, algorithms themselves, as well as their implementations, procedural data, and metadata descriptions, are considered research data.
TA2 will focus on establishing knowledge graphs of numerical algorithms and on building open interfaces for their seamless interconnection in scientific computations. A benchmark framework will employ both to asses performance on a collection of reference data sets from a corresponding area of application while following standardized workflows identified in collaboration with TA4 and other consortia.
Ongoing initiatives
MathAlgoDB (formerly AlgoData)
Our goal is to establish a knowledge graph of numerical algorithms, which interlinks those algorithms with the addressed mathematical problems and associated research data such as journal papers or implementing software packages. As often many variations of essentially the same numerical algorithm are discussed in the literature, an editorial board of domain experts will define the individual algorithm items in the database. The interlinking with the associated data, however, is carried out semi-automatically, using various data sources such as text-mining or metadata search in other databases and MaRDI services.
The measure improves the findability of research data associated with given numerical algorithms and allows non-experts, who need to solve numerical problems in their scientific work, to quickly gain an overview of available methods, their characteristics and implementations. Mathematicians in scientific computing are empowered to easily track the field’s progress by data on competing methods.
We provide an interface for querying and editing data. Note that editing and proposing data is not fully functional yet. The interface comes in a stable version and a beta version which reflects our current working status. The permanent links are algodata.mardi4nfdi.de and main.m1.mardi.ovh.
The beta version is updated daily. Use the deep links below to access Data and the Ontology definition.
stable | testing | |
---|---|---|
Ontology Link | Ontology | Ontology |
Simple Search | Search | Search |
Graph Search | Search | Search |
The ontology definition in standard formats (XML, Triples, Turtle) is available under the ontology link above.
At this point, we accept submissions for the graph, respecting the ontology, in standard formats. Please use the definition of the sample Model Order Reduction-Graph as a template. We also support a customized meta format which permits a simpler definition of the graph and has DOI search capabilities for bulk additions to the graph.
Open Interfaces
The scientific-computing community uses several different programming languages for implementing numerical solvers. Moreover, these solvers often have significantly different programming interfaces. Both of these factors impede interoperability, as switching from, say, a Python solver for time integration to another solver implemented in C requires writing bindings and adapting the calling code to different function names and the order of arguments.
Our goal is to simplify interoperability in scientific computing by alleviating these difficulties. To this aim, we establish generic open interfaces standards between numerical solvers for typical computational problems that allow to seamlessly interconnect and exchange the models and algorithms implemented by these packages in complex modeling or simulation workflows. Also, we develop a mediator library that connects user code to an implementation code via an interface and automates data marshalling between programming languages so that writing explicit bindings is not required. Therefore, users could switch more easily from one implementation to another, while working through the same programming interface without being concerned with technical details such as calling a function in one programming language from another one.
Specifically, we develop such interfaces for common computational problems such as initial-value problems for ordinary differential equations (time integration), optimization, discrete PDE models based on a reusable language-agnostic core API toolkit. Through a developer platform, we assist other scientific-computing communities with establishing open interface for their respective software stacks.
Model Order Reduction Benchmark (MORB) and its Ontology (MORBO)
MORB is a demonstrator of the benchmark framework outlined in the MaRDI proposal, and MORBO comprises and ontology and knowledge graph of all the benchmark problem data detailed in the MORWiki. For up-to-date information on MORB and MORBO, visit the corresponding page in the MORWiki.
Description and Design of FAIR CSE Workflows
As a part of this measure we have developed a workflow framework, namely MaRDIFlow, that abstracts the multi-layered components from FAIR computational experiments. Herein, each component will be characterized through an input/output description so that model, code, and data can be used interchangeably and, in the best case, redundantly. Examples and case studies implemented in the MaRDIFlow framework will be updated here soon.
Workshops
First MaRDI Workshop on Scientific Computing, 26-28 October 2022, Münster, Germany
Members
Current
Dmitry Kabanov (University of Münster)
Hendrik Kleikamp (University Münster)
Mario Ohlberger (University of Münster)
Stephan Rave (University of Münster)
Pavan Veluvali (MPI Magdeburg)
Frank Wübbeling (University of Münster)
Former
Interns and Student Assistants
Saksham Malhotra (Jun-present 2023)
Patrik Pruditsch (Mar-May 2023)
Alexander Stage (Oct-Dec 2022)
Malte Speidel (Mar-May 2022)
Job openings
- Student Assistant at MPI Magdeburg to help with expanding MORBO