Choosing an engine for execution#
Ewoks workflows can be executed using several execution engines, each with its own capabilities:
Dask: Distributed and parallel computing framework.
Pypushflow: Scheduler for acyclic and cyclic task graphs.
Orange: Visual programming and data visualization platform.
New execution engines can be added following the Adding a new execution engine to Ewoks procedure.
Using a Supported Engine#
To run workflows with a specific execution engine, install the appropriate extra:
pip install ewoks[dask] # For Dask
pip install ewoks[ppf] # For Pypushflow
pip install ewoks[orange] # For Orange
If no execution engine is installed, Ewoks defaults to a basic sequential execution engine ("core").
To specify the execution engine explicitly, use the --engine option:
ewoks execute --test demo --engine dask
Warning
Orange execution is GUI-driven and cannot run without the Orange GUI.
Running:
ewoks execute --test demo --engine orange
…will open the Orange GUI, where you can edit the workflow.
To execute it:
Double-click on
task0in the workflow.Use the Trigger button in the Task widget.
For guidance, see Orange’s getting started docs.
Engine Feature Comparison#
Some execution engines support more advanced features, like loops or GUI interaction:
| engine | Loops | Conditional Links | Parallel execution | Interaction (GUI) | Native support |
|---|---|---|---|---|---|
core |
✗ | ✗ | ✗ | ✗ | ✓ |
dask |
✗ | ✗ | ✓ | ✗ | ✓ |
ppf |
✓ | ✓ | ✓ | ✗ | ✓ |
"orange" |
✗ | ✗ | ✓ | ✓ | ✗ |
Note
Native support means that Ewoks tasks can be executed without modification.
For Orange, you must wrap each Ewoks task in a corresponding Orange widget. See the
Orange widget tutorial
in the ewoksorange documentation.