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 task0 in 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.