Skip to main content

Parallelize the execution of tasks with pytask.

Project description

pytask-parallel

PyPI PyPI - Python Version image image PyPI - License image image pre-commit.ci status image


Parallelize the execution of tasks with pytask-parallel which is a plugin for pytask.

Installation

pytask-parallel is available on PyPI and Anaconda.org. Install it with

$ pip install pytask-parallel

# or

$ conda install -c conda-forge pytask-parallel

By default, the plugin uses concurrent.futures.ProcessPoolExecutor.

It is also possible to select the executor from loky or ThreadPoolExecutor from the concurrent.futures module as backends to execute tasks asynchronously.

Usage

To parallelize your tasks across many workers, pass an integer greater than 1 or 'auto' to the command-line interface.

$ pytask -n 2
$ pytask --n-workers 2

# Starts os.cpu_count() - 1 workers.
$ pytask -n auto

Using processes to parallelize the execution of tasks is useful for CPU bound tasks such as numerical computations. (Here is an explanation on what CPU or IO bound means.)

For IO bound tasks, tasks where the limiting factor are network responses, access to files, you can parallelize via threads.

$ pytask --parallel-backend threads

You can also set the options in a pyproject.toml.

# This is the default configuration. Note that, parallelization is turned off.

[tool.pytask.ini_options]
n_workers = 1
parallel_backend = "processes"  # or loky or threads

Some implementation details

Parallelization and Debugging

It is not possible to combine parallelization with debugging. That is why --pdb or --trace deactivate parallelization.

If you parallelize the execution of your tasks using two or more workers, do not use breakpoint() or import pdb; pdb.set_trace() since both will cause exceptions.

Threads and warnings

Capturing warnings is not thread-safe. Therefore, warnings cannot be captured reliably when tasks are parallelized with --parallel-backend threads.

Changes

Consult the release notes to find out about what is new.

Development

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytask_parallel-0.4.0rc1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytask_parallel-0.4.0rc1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file pytask_parallel-0.4.0rc1.tar.gz.

File metadata

  • Download URL: pytask_parallel-0.4.0rc1.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pytask_parallel-0.4.0rc1.tar.gz
Algorithm Hash digest
SHA256 06476af720e7029086c71f2f28bc1eaf30ba6d0bb66bd58c39594438a8de5841
MD5 c377eb90ea49c3ffe548ab82c58cd6c1
BLAKE2b-256 66c9af10db9c918ab89f2a0bdcae9ed48cf668da0010db592c21c664c7560061

See more details on using hashes here.

File details

Details for the file pytask_parallel-0.4.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for pytask_parallel-0.4.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4fe69986fe3e4a62e67782a1b915b95a7d8c98a6f8f587fcc65cc0f4443f6c7
MD5 b6eeada8b6ea36840794527211a4b9cb
BLAKE2b-256 f81392c4e87f0c4cbffc488214b4ad8f0e7d489334928b963ce69e0c9a665756

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page