@@ -19,7 +19,7 @@ Generating Workflow Benchmark Specifications
1919
2020The :class: `~wfcommons.wfbench.bench.WorkflowBenchmark ` class uses recipes
2121of workflows (as described in :ref: `workflow-recipe-generator-label `) for
22- generating workflow benchmarks. ::
22+ generating workflow benchmarks with an arbitrary number of tasks ::
2323
2424 import pathlib
2525
@@ -31,6 +31,24 @@ generating workflow benchmarks.::
3131 # generate a specification based on performance characteristics
3232 path = benchmark.create_benchmark(pathlib.Path("/tmp/"), cpu_work=100, data=10, percent_cpu=0.6)
3333
34+ In the example above, the workflow benchmark generator first invokes the WfChef
35+ recipe to generate a task graph. Once the task graph has been generated, each task
36+ is set to be an instance of the workflow task benchmark. For each task, the following
37+ values for the parameters of the workflow task benchmark can be specified:
38+
39+ - :code: `cpu_work `: CPU work per workflow task. The :code: `cpu-benchmark ` executable
40+ (compiled C++) calculates an increasingly precise value of π up until the specified
41+ total amount of computation (cpu_work) has been performed.
42+ - :code: `data `: Individual data volumes for each task in a way that is coherent
43+ with respect to task data dependencies (in the form of a dictionary of input
44+ size files per workflow task type). Alternatively, a total data footprint (in MB)
45+ can be defined, i.e., the sum of the sizes of all data files read/written by
46+ workflow tasks, in which case uniform I/O volumes are computed for each workflow
47+ task benchmark.
48+ - :code: `percent_cpu `: The fraction of the computation's instructions that
49+ correspond to non-memory operations.
50+
51+
3452Translating Specifications into Benchmark Codes
3553-----------------------------------------------
3654
@@ -43,6 +61,12 @@ the foundation for each translator class. This class takes as input either a
4361:class: `~wfcommons.common.workflow.Workflow ` object or a path to a workflow benchmark
4462description in :ref: `json-format-label `.
4563
64+ .. warning ::
65+
66+ WfBench leverages :code: `stress-ng ` (https://github.com/ColinIanKing/stress-ng)
67+ to execute memory-intensive threads. Therefore, it is crucial to ensure that
68+ :code: `stress-ng ` is installed on all worker nodes.
69+
4670Pegasus
4771+++++++
4872
0 commit comments