|
1 | 1 | The WfCommons Project |
2 | 2 | ======================= |
3 | 3 |
|
4 | | -The `WfCommons project <https://wfcommons.org>`_ is a community framework |
| 4 | +The `WfCommons project <https://wfcommons.org>`_ is an open source framework |
5 | 5 | for enabling scientific workflow research and development by providing foundational |
6 | 6 | tools for analyzing workflow execution instances, and generating synthetic, yet |
7 | 7 | realistic, workflow instances that can be used to develop new techniques, algorithms |
8 | 8 | and systems that can overcome the challenges of efficient and robust execution of |
9 | | -ever larger workflows on increasingly complex distributed infrastructures. The |
10 | | -figure below shows an overview of the workflow research life cycle process that |
11 | | -integrates the three axis of the WfCommons project: |
| 9 | +ever larger workflows on increasingly complex distributed infrastructures. |
| 10 | + |
| 11 | +The figure below shows an overview of the research and development life cycle that |
| 12 | +integrates the four major components WfCommons: (i) workflow execution instances |
| 13 | +(**WfInstances**), (ii) workflow recipes (**WfChef**), (iii) workflow generator |
| 14 | +(**WfGen**), and (iv) workflow simulator (**WfSim**). |
12 | 15 |
|
13 | 16 | .. figure:: images/wfcommons.png |
14 | 17 | :align: center |
15 | 18 |
|
16 | 19 | The WfCommons conceptual architecture. |
17 | 20 |
|
18 | | -The *first axis* (**Workflow Instances**) of the WfCommons project targets the |
19 | | -collection and curation of open access production workflow executions from |
20 | | -various scientific applications shared in a common instance format (i.e., |
21 | | -:ref:`json-format-label`). We keep a `list of workflow execution instances |
| 21 | +**WfInstances.** |
| 22 | +The WfInstances component provides a collection and curation of open-access |
| 23 | +production workflow instances from various scientific applications, all made |
| 24 | +available using a common format (i.e., :ref:`json-format-label`). |
| 25 | +A workflow instance is built based on logs of an actual execution of a scientific |
| 26 | +workflow on a distributed platform (e.g., clouds, grids, clusters) using a |
| 27 | +workflow system. We keep a `list of workflow execution instances |
22 | 28 | <https://wfcommons.org/instances>`_ in our project website. |
23 | 29 |
|
24 | | -The *second axis* (**Workflow Generator**) of the WfCommons project targets |
25 | | -the generation of realistic synthetic workflow instances based on workflow execution |
26 | | -profiles extracted from execution instances. We are constantly seeking for additional |
27 | | -workflow execution instances for refining or developing new workflow recipes for |
28 | | -the WfCommons's workflow generator. |
29 | | - |
30 | | -The *third axis* (**Workflow Simulator**) of the WfCommons project fosters the |
31 | | -use of simulation for the development, evaluation, and verification of scheduling |
32 | | -and resource provisioning algorithms (e.g., multi-objective function optimization, |
33 | | -etc.), evaluation of current and emerging computing platforms (e.g., clouds, IoT, |
34 | | -extreme scale, etc.), among others. We keep a `list of open source workflow |
35 | | -management systems simulators and simulation frameworks |
36 | | -<https://wfcommons.org/simulation>`_ that provide support for the WfCommons |
37 | | -JSON format in our project website. |
| 30 | +**WfChef.** |
| 31 | +The WfChef component automates the construction of synthetic workflow generators |
| 32 | +(recipes) for any given workflow application. The input to this component is a set |
| 33 | +of real workflow instances described in the :ref:`json-format-label` (e.g., |
| 34 | +instances available in WfInstances). |
38 | 35 |
|
39 | | -This Python package provides a collection of tools for: |
| 36 | +**WfGen.** |
| 37 | +The WfGen component targets the generation of realistic synthetic workflow instances. |
| 38 | +WfGen takes as input a workflow recipe produced by WfChef for a particular application |
| 39 | +and a desired number of tasks. WfGen then automatically generates synthetic, yet |
| 40 | +realistic, randomized workflow instances with (approximately) the desired number of |
| 41 | +tasks. |
40 | 42 |
|
41 | | -- Analyzing instances of actual workflow executions; |
42 | | -- Producing recipes structures for creating workflow recipes for workflow |
43 | | - generation; and |
44 | | -- Generating synthetic realistic workflow instances. |
| 43 | +**WfSim.** |
| 44 | +The WfCommons project fosters the use of simulation for the development, evaluation, |
| 45 | +and verification of scheduling and resource provisioning algorithms (e.g., |
| 46 | +multi-objective function optimization, etc.), evaluation of current and emerging |
| 47 | +computing platforms (e.g., clouds, IoT, extreme scale, etc.), among others. |
| 48 | +We do not develop simulators as part of the WfCommons project. Instead, the WfSim |
| 49 | +component catalogs open source WMS simulators that provide support for |
| 50 | +:ref:`json-format-label`. We keep a `list of open source workflow |
| 51 | +management systems simulators and simulation frameworks |
| 52 | +<https://wfcommons.org/simulation>`_ on our project website. |
45 | 53 |
|
46 | 54 | .. _json-format-label: |
47 | 55 |
|
48 | | -The WfCommons JSON Format |
49 | | ---------------------------- |
| 56 | +WfFormat |
| 57 | +-------- |
50 | 58 |
|
51 | 59 | The WfCommons project uses a common format for representing workflow execution |
52 | | -instances and generated synthetic workflows instances, so that workflow simulators and |
53 | | -simulation frameworks (that provide support for WfCommons format) can use |
54 | | -such instances interchangeably. This common format uses a JSON specification |
55 | | -available in the |
56 | | -`WfCommons JSON schema GitHub <https://github.com/wfcommons/workflow-schema>`_ |
| 60 | +instances and generated synthetic workflows instances. Workflow simulators and |
| 61 | +simulation frameworks that support WfFormat can then use both types of instances |
| 62 | +interchangeably. WfFormat uses a JSON specification available in the |
| 63 | +`WfFormat Schema GitHub <https://github.com/wfcommons/workflow-schema>`_ |
57 | 64 | repository. The current version of the WfCommons Python package uses the schema |
58 | 65 | version :code:`1.1`. The schema GitHub repository provides detailed explanation |
59 | | -of the WfCommons JSON format (including required fields), and also a validator |
60 | | -script for verifying the compatibility of instances. |
| 66 | +of WfFormat (including required fields), and also a validator script for verifying |
| 67 | +the compatibility of instances. |
0 commit comments