Skip to main content

Parallel execution of DVC stages

Project description

zincware PyPI version Discord

paraffin

Paraffin, derived from the Latin phrase parum affinis meaning little related, is a Python package designed to run DVC stages in parallel. While DVC does not currently support this directly, Paraffin provides an effective workaround. For more details, refer to the DVC documentation on parallel stage execution.

[!WARNING] paraffin is still very experimental. Do not use it for production workflows.

Installation

Install Paraffin via pip:

pip install paraffin

Usage

paraffin submit

You can submit your current DVC workflow to a database file paraffin.db for later execution.

[!TIP] The paraffin submit command supports globing patterns.

paraffin submit C_AddNodeNumbers "A*"

paraffin worker

A submitted job will be executed by paraffin workers. To start a worker you can run paraffin worker. The worker will pick up all the jobs in the workeres queue and close once finished.

paraffin worker

paraffin ui

Paraffin ships with a web application for visualizing the progress. You can start it using

paraffin ui

Queue Labels

To fine-tune execution, you can assign stages to specific Celery queues, allowing you to manage execution across different environments or hardware setups. Define queues in a paraffin.yaml file:

queue:
    "B_X*": BQueue
    "A_X_AddNodeNumbers": AQueue

Then, start a worker with specified queues, such as celery (default) and AQueue:

paraffin worker -q AQueue,default

All stages not assigned to a queue in paraffin.yaml will default to the default queue.

[!TIP] If you are building Python-based workflows with DVC, consider trying our other project ZnTrack for a more Pythonic way to define workflows.

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

paraffin-0.3.2.tar.gz (643.6 kB view details)

Uploaded Source

Built Distribution

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

paraffin-0.3.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file paraffin-0.3.2.tar.gz.

File metadata

  • Download URL: paraffin-0.3.2.tar.gz
  • Upload date:
  • Size: 643.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for paraffin-0.3.2.tar.gz
Algorithm Hash digest
SHA256 8a68d1991ead33877e03c09046cc0ad138d3a1b18eef1ede74ef508319e02091
MD5 7828c8bd760cb9075c0b04ede21f9a7b
BLAKE2b-256 567f32f6c850150785d6b80629bc784c3ae7b43a5d842e2595c77e8f73567c7f

See more details on using hashes here.

File details

Details for the file paraffin-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: paraffin-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for paraffin-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b25c48adc6e6eb5eed56ca77ed9f18258834ea4afbb39f5a00e79a6317d72df7
MD5 369c3ec2e5528621cd7c98ab738d1027
BLAKE2b-256 af1def75051db6bc0bba0a20a62e35982381a509d7424e63ef748aebabeab6c1

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