Portal/TA2: Difference between revisions

From MaRDI portal
Wuebbel (talk | contribs)
m Corrected description of links.
Wuebbel (talk | contribs)
Ongoing initiatives: Changed links to mathalgodb.
 
(22 intermediate revisions by 5 users not shown)
Line 7: Line 7:
==Ongoing initiatives==
==Ongoing initiatives==


===AlgoData===
===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.
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.
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 beta version is updated daily. Use the deep links below to access Data and Ontology definition.
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 [https://mathalgodb.mardi4nfdi.de mathalgodb.mardi4nfdi.de] and [https://main.m1.mardi.ovh main.m1.mardi.ovh].
 
The beta version is updated daily. Use the deep links below to access Data and the Ontology definition.
{| class="wikitable"
{| class="wikitable"
|+
|+
!
!
!beta
!stable
!stable
!testing
|-
|-
|Ontology Link
|Ontology Link
|[https://feedback-to-db.m1.mardi.ovh/static/widoco/v1/index-en.html Ontology]
|[https://mathalgodb.mardi4nfdi.de/static/widoco/v1/index-en.html Ontology]
|[https://main.m1.mardi.ovh/static/widoco/v1/index-en.a9acf656cec2.html Ontology]
|[https://main.m1.mardi.ovh/static/widoco/v1/index-en.html Ontology]
|-
|-
|Simple Search
|Simple Search
|[https://feedback-to-db.m1.mardi.ovh/ Search]
|[https://mathalgodb.mardi4nfdi.de/ Search]
|[https://main.m1.mardi.ovh/ Search]
|[https://main.m1.mardi.ovh/ Search]
|-
|-
|Graph Search
|Graph Search
|[https://feedback-to-db.m1.mardi.ovh/search/advanced/ Search]
|[https://mathalgodb.mardi4nfdi.de/search/advanced/ Search]
|[https://main.m1.mardi.ovh/search/advanced/ Search]
|[https://main.m1.mardi.ovh/search/advanced/ 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===
===Open Interfaces===
Our goal is to develop and establish open interface standards between numerical software packages that allow to seamlessly interconnect and exchange the models and algorithms realized by these packages in complex modeling or simulation workflows. Specifically, we realize such interfaces for 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.
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.
 
'''Performance study'''
 
We demonstrate here that the approach described above does not bring a significant performance penalty, as one could expect as a price for flexibility. Precisely, we compare time integration of a two-dimensional reaction--diffusion system via Sundials CVODE solver (which is written in C) invoked from Python directly (i.e., via direct bindings) and via Open Interfaces. As can be seen from the figure below, the performance penalty is only about 10-15 % for very coarse grid resolutions (e. g., 128 × 128), while for moderate grid sizes the performance penalty is negligible.
 
[[File:Ta2-perf-study-2d-reac-diff-system.png|thumb|center]]


===Model Order Reduction Benchmark (MORB) and its Ontology (MORBO)===
===Model Order Reduction Benchmark (MORB) and its Ontology (MORBO)===
Line 51: Line 67:
[https://www.mpi-magdeburg.mpg.de/person/29457/2316 Jan Heiland (MPI Magdeburg)]
[https://www.mpi-magdeburg.mpg.de/person/29457/2316 Jan Heiland (MPI Magdeburg)]


[https://www.uni-muenster.de/AMM/ohlberger/team/hendrik_kleikamp.shtml Hendrik Kleikamp (WWU Münster)]
[https://www.uni-muenster.de/AMM/show_perspage.shtml?id=1760 Dmitry Kabanov (University of Münster)]
 
[https://www.uni-muenster.de/AMM/ohlberger/team/hendrik_kleikamp.shtml Hendrik Kleikamp (University of Münster)]


[https://www.mpi-magdeburg.mpg.de/person/123208/4059055 Kathryn Lund (MPI Magdeburg)]
[https://www.mpi-magdeburg.mpg.de/person/123208/4059055 Kathryn Lund (MPI Magdeburg)]


[https://www.uni-muenster.de/AMM/ohlberger/team/mario_ohlberger.shtml Mario Ohlberger (WWU Münster)]
[https://www.uni-muenster.de/AMM/ohlberger/team/mario_ohlberger.shtml Mario Ohlberger (University of Münster)]


[https://www.wwu.de/AMM/ohlberger/team/stephan_rave.shtml Stephan Rave (WWU Münster)]
[https://www.wwu.de/AMM/ohlberger/team/stephan_rave.shtml Stephan Rave (University of Münster)]


[https://www.mpi-magdeburg.mpg.de/person/26697/4059055 Jens Saak (MPI Magdeburg)]
[https://www.mpi-magdeburg.mpg.de/person/26697/4059055 Jens Saak (MPI Magdeburg)]
Line 63: Line 81:
[https://www.mpi-magdeburg.mpg.de/person/123700/4060519 Pavan Veluvali (MPI Magdeburg)]
[https://www.mpi-magdeburg.mpg.de/person/123700/4060519 Pavan Veluvali (MPI Magdeburg)]


[https://www.uni-muenster.de/AMM/show_perspage.shtml?id=17 Frank Wübbeling (WWU Münster)]
[https://www.uni-muenster.de/AMM/show_perspage.shtml?id=17 Frank Wübbeling (University of Münster)]


===Former===
===Former===
Line 73: Line 91:


===Interns and Student Assistants===
===Interns and Student Assistants===
Alexander Stage
Saksham Malhotra (Jun-present 2023)
 
Patrik Pruditsch (Mar-May 2023)
 
Alexander Stage (Oct-Dec 2022)
 
Malte Speidel (Mar-May 2022)


==Job openings==
==Job openings==
*[https://www.uni-muenster.de/Rektorat/Stellen/ausschreibungen/st_20220212_sk12.html Research Software Engineer at WWU Münster] to work on the Open Interfaces measure
*[https://www.mpg.de/20254529/student-research-assistant-computational-methods-in-systems-and-control-theory Student Assistant at MPI Magdeburg] to help with expanding MORBO
*[https://www.mpg.de/19864720/student-research-assistant 2 Student Assistants at MPI Magdeburg] to help with expanding MORBO and with compiling a database of all mathematical benchmark collections

Latest revision as of 12:15, 26 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 mathalgodb.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.

Performance study

We demonstrate here that the approach described above does not bring a significant performance penalty, as one could expect as a price for flexibility. Precisely, we compare time integration of a two-dimensional reaction--diffusion system via Sundials CVODE solver (which is written in C) invoked from Python directly (i.e., via direct bindings) and via Open Interfaces. As can be seen from the figure below, the performance penalty is only about 10-15 % for very coarse grid resolutions (e. g., 128 × 128), while for moderate grid sizes the performance penalty is negligible.

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

Peter Benner (MPI Magdeburg)

Jan Heiland (MPI Magdeburg)

Dmitry Kabanov (University of Münster)

Hendrik Kleikamp (University of Münster)

Kathryn Lund (MPI Magdeburg)

Mario Ohlberger (University of Münster)

Stephan Rave (University of Münster)

Jens Saak (MPI Magdeburg)

Pavan Veluvali (MPI Magdeburg)

Frank Wübbeling (University of Münster)

Former

Christian Himpe

Tim Mitchell

René Fritze

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