LiberTEM/LiberTEM

View on GitHub
docs/source/dev/executors.rst

Summary

Maintainability
Test Coverage
.. _`executor api`:

LiberTEM executors
==================

All access to data and processing is done by an executor that implements the
:class:`~libertem.common.executor.JobExecutor` interface to run functions and
tasks. The executor specifies where and how processing is done, including
running on a cluster or in a single thread, while being independent of other
parts of LiberTEM. See :ref:`executors` for an overview from a user's perspective.

.. versionadded:: 0.9.0
    The executor API is internal. Since choice and parameters of executors
    are important for integration with Dask and other frameworks,
    they are now documented. Only the names and creation methods for
    executors are reasonably stable. The rest of the API is subject to
    change without notice.

Base classes
................

.. automodule:: libertem.common.executor
    :members: JobExecutor, AsyncJobExecutor

.. _`dask executor`:

Dask.Distributed
................

The :class:`~libertem.executor.dask.DaskJobExecutor` is the default executor
when creating a :class:`~libertem.api.Context` with no parameters.

.. automodule:: libertem.executor.dask
    :members:

.. automodule:: libertem.executor.integration
    :members:

Inline
......

.. automodule:: libertem.executor.inline
    :members:

Concurrent
..........

.. automodule:: libertem.executor.concurrent
    :members:

Dask.delayed
............

See :ref:`delayed_udfs` for more information about 
:class:`~libertem.executor.delayed.DelayedJobExecutor`.

.. automodule:: libertem.executor.delayed
    :members:

.. _`pipelined executor`:

Pipelined executor
..................

.. automodule:: libertem.executor.pipelined
    :members: