Skip to content

Commit 4ecfc64

Browse files
committed
fixing package installation
1 parent 9529e5b commit 4ecfc64

4 files changed

Lines changed: 73 additions & 40 deletions

File tree

docs/source/generating_workflows.rst

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,26 @@ WfCommons JSON format (WfFormat), which is already supported by simulation frame
1212
`WRENCH <https://wrench-project.org>`_.
1313

1414

15-
The Workflow Generator
16-
----------------------
15+
.. _recipes-list:
16+
17+
WfCommons Workflows Recipes
18+
---------------------------
19+
20+
The current list of available workflow recipes include:
21+
22+
- :class:`~wfcommons.wfchef.recipes.blast_recipe.BlastRecipe`: :code:`from wfcommons.wfchef.recipes import BlastWorkflowRecipe`
23+
- :class:`~wfcommons.wfchef.recipes.bwa_recipe.BwaRecipe`: :code:`from wfcommons.wfchef.recipes import BwaRecipe`
24+
- :class:`~wfcommons.wfchef.recipes.cycles_recipe.CyclesRecipe`: :code:`from wfcommons.wfchef.recipes import CyclesRecipe`
25+
- :class:`~wfcommons.wfchef.recipes.epigenomics_recipe.EpigenomicsRecipe`: :code:`from wfcommons.wfchef.recipes import EpigenomicsRecipe`
26+
- :class:`~wfcommons.wfchef.recipes.genome_recipe.GenomeRecipe`: :code:`from wfcommons.wfchef.recipes import GenomeRecipe`
27+
- :class:`~wfcommons.wfchef.recipes.montage_recipe.MontageRecipe`: :code:`from wfcommons.wfchef.recipes import MontageRecipe`
28+
- :class:`~wfcommons.wfchef.recipes.seismology_recipe.SeismologyRecipe`: :code:`from wfcommons.wfchef.recipes import SeismologyRecipe`
29+
- :class:`~wfcommons.wfchef.recipes.soykb_recipe.SoykbRecipe`: :code:`from wfcommons.wfchef.recipes import SoykbRecipe`
30+
- :class:`~wfcommons.wfchef.recipes.srasearch_recipe.SrasearchRecipe`: :code:`from wfcommons.wfchef.recipes import SrasearchRecipe`
31+
32+
33+
The Workflow Instances Generator
34+
--------------------------------
1735

1836
Synthetic workflow instances are generated using the
1937
:class:`~wfcommons.generator.generator.WorkflowGenerator` class. This
@@ -41,6 +59,9 @@ methods for writing the generated workflow instance into files:
4159
- :meth:`~wfcommons.common.workflow.Workflow.write_dot`: write a DOT file of a workflow instance.
4260
- :meth:`~wfcommons.common.workflow.Workflow.write_json`: write a JSON file of a workflow instance.
4361

62+
All workflow recipes provide a common method, :code:`from_num_tasks`, that defines the lower
63+
bound for the total number of tasks in the synthetic workflow.
64+
4465
Increasing/Reducing Runtime and File Sizes
4566
******************************************
4667

docs/source/generating_workflows_recipe.rst

Lines changed: 29 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Generating Workflows Recipes
66
**WfChef** is the WfCommons component that automates the construction of
77
synthetic workflow generators for any given workflow application. The input
88
to 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`).
1010
WfChef automatically analyzes a set of real workflow instances for
1111
two purposes. First, it discovers workflow subgraphs that represent
1212
fundamental task dependency patterns. Second, it derives
@@ -21,47 +21,49 @@ workflow instances with any arbitrary number of tasks.
2121
Workflow 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

3538
Workflow 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.
4043
Based on the identified subgraphs and on measured task type frequencies in the real
4144
workflows, 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
6567
specified 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
6668
when creating a package for a specific application, the user will need to install the package before using it. The code
6769
bellow 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

wfcommons/wfchef/recipes/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
#
4+
# Copyright (c) 2021 The WfCommons Team.
5+
#
6+
# This program is free software: you can redistribute it and/or modify
7+
# it under the terms of the GNU General Public License as published by
8+
# the Free Software Foundation, either version 3 of the License, or
9+
# (at your option) any later version.
10+
111
from .epigenomics import EpigenomicsRecipe
212
from .montage import MontageRecipe
313
from .cycles import CyclesRecipe
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
#
4+
# Copyright (c) 2021 The WfCommons Team.
5+
#
6+
# This program is free software: you can redistribute it and/or modify
7+
# it under the terms of the GNU General Public License as published by
8+
# the Free Software Foundation, either version 3 of the License, or
9+
# (at your option) any later version.
10+
11+

0 commit comments

Comments
 (0)