@@ -6,7 +6,7 @@ Generating Workflows Recipes
66**WfChef ** is the WfCommons component that automates the construction of
77synthetic workflow generators for any given workflow application. The input
88to this component is a set of real workflow instances described in the
9- :ref: `json-format-label ` (e.g., instances available in ** WfInstances ** ).
9+ :ref: `json-format-label ` (e.g., instances available in :ref: ` wfinstances-label ` ).
1010WfChef automatically analyzes a set of real workflow instances for
1111two purposes. First, it discovers workflow subgraphs that represent
1212fundamental task dependency patterns. Second, it derives
@@ -21,47 +21,49 @@ workflow instances with any arbitrary number of tasks.
2121Workflow Recipes
2222----------------
2323
24- A **workflow recipe ** is a data structure that encodes the discovered pattern occurrences
25- as well as the statistical models of workflow task characteristics.
26- The WfCommons package provides a number of *workflow recipes * for generating realistic
27- synthetic workflow instances.
28-
29- All workflow recipes provide a common method, :code: `from_num_tasks `, that defines the lower
30- bound for the total number of tasks in the synthetic workflow.
24+ A **workflow recipe ** is a data structure that encodes the discovered
25+ pattern occurrences as well as the statistical models of workflow task
26+ characteristics. More precisely, a recipe embodies results from statistical
27+ analysis and distribution fitting performed for each workflow task type
28+ so as to characterize task runtime and input/output data sizes. The
29+ recipes also incorporates information regarding the graph structure of
30+ the workflows (tasks dependencies and frequency of occurrences), which are
31+ automatically derived from the analysis of the workflow instances.
3132
33+ This Python package provides several *workflow recipes * (see :ref: `recipes-list `)
34+ for generating realistic synthetic workflow instances.
3235
3336.. _workflow-recipe-generator-label :
3437
3538Workflow Recipe Generator
3639--------------------------
3740
38- To create a recipe the method :meth: ` find_patterns ` analyzes the real workflow graphs
39- in order to identify subgraphs that represent fundamental task dependency patterns.
41+ To create a recipe, WfChef analyzes the real workflow graphs in order to
42+ identify subgraphs that represent fundamental task dependency patterns.
4043Based on the identified subgraphs and on measured task type frequencies in the real
4144workflows, WfChef outputs a generator that can generate realistic synthetic
42- workflow instances with an arbitrary numbers of tasks. The code snippet below shows
43- how to create a recipe for the Epigenomics application: ::
44-
45- $ wfchef create path/to/real/instances -o ./epigenomics -v --name Epigenomics
45+ workflow instances with an arbitrary numbers of tasks (see :ref: `generating-workflows-label `).
4646
47- The flags that can be used with this command are:
47+ The code snippet below shows an example of how to create a recipe for the
48+ Epigenomics application: ::
4849
49- :code: `-o ` or :code: `--out ` is a required flag that stands for the name of the directory to be created that is going to
50- contain the recipe.
50+ $ wfchef create /path/to/real/instances -o ./epigenomics -v --name Epigenomics
5151
52- :code: `-n ` or :code: `--name ` is a required flag that stands for the name of the recipe. Tipically, the format used is
53- *ApplicationName *.
52+ The following flags can be used with this command:
5453
55- :code: `-v ` or :code: `--verbose ` if set, activates status messages.
54+ - :code: `-o ` or :code: `--out ` is a required flag that stands for the name of the directory to be created that is going to contain the recipe.
55+ - :code: `-n ` or :code: `--name ` is a required flag that stands for the name of the recipe. Tipically, the format used is *ApplicationName *.
56+ - :code: `-v ` or :code: `--verbose ` if set, activates status messages.
57+ - :code: `--no-install ` if set, does not install the recipe automatically.
58+ - :code: `-c ` or :code: `--cutoff ` takes a number of tasks in the samples the user wants to consider to create the recipe.
5659
57- :code: `--no-install ` if set, does not install the recipe automatically.
60+ *Example *: :code: `--cutoff 4000 `, it means that all real world instances
61+ that will be consider for the creation of the recipe will have 4000 or
62+ less tasks. This is a useful flag to use when there is trust that all
63+ possible patterns present in this application can be already found in the
64+ smaller instances.
5865
59- :code: `-c ` or :code: `--cutoff ` takes a number of tasks in the samples the user wants to consider to create the recipe.
60- Example: :code: `--cutoff 4000 `, it means that all real world instances that will be consider for the creation of the
61- recipe have 4000 or less tasks. This is a useful flag to use when there is trust that all possible patterns present
62- in this application can be already found in the smaller instances.
63-
64- The recipes are automatically installed and can be used throughout the system. WfCommons creates a Python package in the directory
66+ Workflow recipes are automatically installed and can be used throughout the system. WfCommons creates a Python package in the directory
6567specified by the flag :code: `--out ` in which the :file: `setup.py ` and :file: `recipe.py ` files are stored. If the flag :code: `--no-install ` is set
6668when creating a package for a specific application, the user will need to install the package before using it. The code
6769bellow is an example of how to install/uninstall a package for an application in WfCommons: ::
@@ -85,17 +87,6 @@ To check which recipes are installed in a system and how to import them use: ::
8587 $ wfchef ls
8688
8789
88- The current list of available workflow recipes include:
89-
90- - :class: `~wfcommons.wfchef.recipes.blast_recipe.BlastRecipe `: :code: `from wfcommons.wfchef.recipes import BlastWorkflowRecipe `
91- - :class: `~wfcommons.wfchef.recipes.bwa_recipe.BwaRecipe `: :code: `from wfcommons.wfchef.recipes import BwaRecipe `
92- - :class: `~wfcommons.wfchef.recipes.cycles_recipe.CyclesRecipe `: :code: `from wfcommons.wfchef.recipes import CyclesRecipe `
93- - :class: `~wfcommons.wfchef.recipes.epigenomics_recipe.EpigenomicsRecipe `: :code: `from wfcommons.wfchef.recipes import EpigenomicsRecipe `
94- - :class: `~wfcommons.wfchef.recipes.genome_recipe.GenomeRecipe `: :code: `from wfcommons.wfchef.recipes import GenomeRecipe `
95- - :class: `~wfcommons.wfchef.recipes.montage_recipe.MontageRecipe `: :code: `from wfcommons.wfchef.recipes import MontageRecipe `
96- - :class: `~wfcommons.wfchef.recipes.seismology_recipe.SeismologyRecipe `: :code: `from wfcommons.wfchef.recipes import SeismologyRecipe `
97- - :class: `~wfcommons.wfchef.recipes.soykb_recipe.SoykbRecipe `: :code: `from wfcommons.wfchef.recipes import SoykbRecipe `
98- - :class: `~wfcommons.wfchef.recipes.srasearch_recipe.SrasearchRecipe `: :code: `from wfcommons.wfchef.recipes import SrasearchRecipe `
9990
10091
10192
0 commit comments