Since we can create tasks, run them in a parallel then direct there result into a result task we can create a workflow that can define how this can be accomplished and have the map ops run in parallel (with the reduction op happening after all the map ops have finished). Part of blueprint more-examples Change-Id: I7c04f5508b35b945c49e5798ece0e298d2e1b979
237 lines
4.8 KiB
ReStructuredText
237 lines
4.8 KiB
ReStructuredText
Passing values from and to tasks
|
|
================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`simple_linear_pass`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/simple_linear_pass.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Making phone calls
|
|
==================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`simple_linear`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/simple_linear.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Making phone calls (automatically reverting)
|
|
============================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`reverting_linear`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/reverting_linear.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Building a car
|
|
==============
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`build_a_car`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/build_a_car.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Watching execution timing
|
|
=========================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`timing_listener`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/timing_listener.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Linear equation solver (explicit dependencies)
|
|
==============================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`calculate_linear`.
|
|
|
|
.. literalinclude:: ../../taskflow/examples/calculate_linear.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Linear equation solver (inferred dependencies)
|
|
==============================================
|
|
|
|
``Source:`` :example:`graph_flow.py`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/graph_flow.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Linear equation solver (in parallel)
|
|
====================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`calculate_in_parallel`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/calculate_in_parallel.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Creating a volume (in parallel)
|
|
===============================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`create_parallel_volume`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/create_parallel_volume.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Summation mapper(s) and reducer (in parallel)
|
|
=============================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`simple_map_reduce`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/simple_map_reduce.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Storing & emitting a bill
|
|
=========================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`fake_billing`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/fake_billing.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Suspending a workflow & resuming
|
|
================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`resume_from_backend`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/resume_from_backend.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Creating a virtual machine (resumable)
|
|
======================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`resume_vm_boot`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/resume_vm_boot.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Creating a volume (resumable)
|
|
=============================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`resume_volume_create`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/resume_volume_create.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Running engines via iteration
|
|
=============================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`run_by_iter`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/run_by_iter.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Controlling retries using a retry controller
|
|
============================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`retry_flow`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/retry_flow.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Distributed execution (simple)
|
|
==============================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`wbe_simple_linear`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/wbe_simple_linear.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Distributed mandelbrot (complex)
|
|
================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`wbe_mandelbrot`
|
|
|
|
Output
|
|
------
|
|
|
|
.. image:: img/mandelbrot.png
|
|
:height: 128px
|
|
:align: right
|
|
:alt: Generated mandelbrot fractal
|
|
|
|
Code
|
|
----
|
|
|
|
.. literalinclude:: ../../taskflow/examples/wbe_mandelbrot.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|
|
|
|
Jobboard producer/consumer (simple)
|
|
===================================
|
|
|
|
.. note::
|
|
|
|
Full source located at :example:`jobboard_produce_consume_colors`
|
|
|
|
.. literalinclude:: ../../taskflow/examples/jobboard_produce_consume_colors.py
|
|
:language: python
|
|
:linenos:
|
|
:lines: 16-
|