Common workflow schemas #16
Replies: 8 comments 17 replies
-
Questions
|
Beta Was this translation helpful? Give feedback.
-
One limitation of standards like CWL is that they are based primarily on file based communication between the different workflow steps. To remove this restriction developers from aiida, jobflow, pyiron and simstack met as part of the "Ab initio Description of Iron and Steel (ADIS2023): Digitalization and Workflows workshop" and discussed a Python Workflow Definition. While the publication is still work in progress, we aim to complete it before the MADICES 2025 workshop. Currently we have an overview website available at https://materialdigital.github.io/ADIS2023/README.html with the corresponding repository at https://github.com/materialdigital/ADIS2023 and the recent developments at https://github.com/pyiron-dev/compare-workflow-graphs A simple example, the following Python code: def add_x_and_y(x, y):
z = x + y
return x, y, z
def add_x_and_y_and_z(x, y, z):
w = x + y + z
return w
x, y, z = add_x_and_y(x=1, y=2)
w = add_x_and_y_and_z(x=x, y=y, z=z) can be represented as workflow using the Python Workflow definition: nodes_dict = {
0: add_x_and_y,
1: add_x_and_y_and_z,
2: 1,
3: 2,
}
edges_lst = [
{'target': 1, 'targetHandle': 'x', 'source': 0, 'sourceHandle': 'x'},
{'target': 1, 'targetHandle': 'y', 'source': 0, 'sourceHandle': 'y'},
{'target': 1, 'targetHandle': 'z', 'source': 0, 'sourceHandle': 'z'},
{'target': 0, 'targetHandle': 'x', 'source': 2, 'sourceHandle': None},
{'target': 0, 'targetHandle': 'y', 'source': 3, 'sourceHandle': None},
] aiida, jobflow and pyiron all three provide adaptors to import and export workflows to the Python Workflow Definition. Still this is currently restricted to DAGs without dynamic modifications to the graph. Python Workflow Definition: The python workflow definition is the current working title for this project. At the current stage it is primarily a study to validate that it is possible to define such a universal format which can be supported by multiple workflow frameworks based on the Python programming language. We are not fixed on the syntax and we do not expect anybody to write the Python Workflow Definition by hand, rather an existing workflow framework would export the workflow in the Python workflow definition and another framework would read this general workflow and execute the corresponding code. A more materials science specific workflow example is available as well. Here the calculation of an energy volume curve with quantum espresso is defined with jobflow https://github.com/pyiron-dev/compare-workflow-graphs/blob/main/jobflow_to_universal_2.ipynb and afterwards executed with pyiron https://github.com/pyiron-dev/compare-workflow-graphs/blob/main/universal_qe_to_pyiron_base.ipynb . It would be great to discuss these concepts in a larger group as part of MADICES 2025. In terms of the question, there is no meta data included at the moment, rather the current development primarily focused on the share ability and interoperability. |
Beta Was this translation helpful? Give feedback.
-
@jan-janssen we will 100% have a working group on this topic. We are presently working on two PREMISE project deliverables (D3.3, D4.2) that try to provided schemas and specifications for input/output of common workflows, as well as a domain-specific language for assembly/cycling of batteries (@PeterKraus Nukorn is building on tomato schemas for D3.3). I will share more once the schemas are in better shape :) |
Beta Was this translation helpful? Give feedback.
-
We are already using RO-Crate for interoperability. Has anyone looked into Workflow Run RO-Crate flavors for describing/sharing workflows? This is developed under the WorkflowHub project, I believe. At a low level, they are using CWL. We should maybe keep this in mind. If a better-than-CWL approach is agreed upon, we could consider introducing a Crate extension/profile. The RO-Crate community is large and growing fast, already adopting many of its tools! For example, the Galaxy workflow system, of which representatives will be attending MADICES 3. |
Beta Was this translation helpful? Give feedback.
-
Benchmarks for workflows in materials scienceWhile the definition of a general workflow format is still work in progress, I think another important aspect of such a workflow working group would be the collection of example workflows. Currently I am only aware of one work which implements the same materials science workflow in different workflow frameworks - specifically to materials science. Publication, Repository The currently tested codes in this benchmark are: Does anybody know about other benchmark workflows for the field of materials science? Those could be a good base for developing the general format. |
Beta Was this translation helpful? Give feedback.
-
@jan-janssen are you aware of the abstract workflow language (AWL) schema? |
Beta Was this translation helpful? Give feedback.
-
@scman1 great if we can have your comments on this discussion as well. We are planning a dedicated working group on the subject of generalized workflow schemas for standardized exchange and storage. On the topic of storage in ELNs, @JFRudzinski presented such efforts from NOMAD (FAIRmat), which was quite nice and also the direction in which AiiDA is going for workflow visualization (https://aiida-workgraph.readthedocs.io/en/latest/). |
Beta Was this translation helpful? Give feedback.
-
The AiiDA team has been interested in common workflows for some time now, with increasing interest in workflow schemas. I'll let those involve comment (@superstar54, @GeigerJ2, @agoscinski, @mbercx) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
As part of the Swiss PREMISE project, which was born out of the first MADICES event and is now a sponsor of the MADICES series, we are looking to codify specifications for metadata schemas for common workflows, presently focusing on, but not limited to computational workflows. The AiiDA common workflows implementation provides some workflows for optimizing structure geometries and computing equation of state and bond dissociation energies. Results from such workflows were used in a comparison study across 11 codes.
However, the commonality of the workflows is w.r.t the selected code, not the engine itself. In other words, the workflows are assumed to be executed by AiiDA. It is in the interest of PREMISE to remove this tight coupling, extending the common workflows to any engine. Considering that in MADICES 3 we will have workflow management system (WFMS) representation beyond AiiDA (pyiron, Galaxy, PerQueue, more?), I believe it is an opportunity to develop such a framework to facilitate the sharing of workflows across our platforms.
There are some standards and tools out there that we could consider building on, such as for example the Common Workflow Language (CWL) already active in Galaxy and the RO-Crate community. Good to hear from those who have used it.
This thread is now open for discussion on this topic for those interested.
Beta Was this translation helpful? Give feedback.
All reactions