Pyturbo Package
Author: Lijun Yu
Email: lijun@lj-y.com
A pipeline system for efficient execution.
Installation
pip install py-turbo
Introduction
Pyturbo utilizes multiple level of abstract to efficiently execute parallel tasks.
- Worker: a process.
- Stage: a group of peer workers processing the same type of tasks.
- Task: a data unit transferred between stages. At each stage, a task is processed by one worker and will result in one or multiple downstream tasks.
- Pipeline: a set of sequential stages.
- Job: a data unit for a pipeline, typically a wrapped task for the first stage.
- Result: output of a job processed by one pipeline, typically a set of output tasks from the last stage.
- System: a set of peer pipelines processing the same type of jobs.
Get Started
from pyturbo import ReorderStage, Stage, System
class Stage1(Stage): # Define a stage
def __init__(self, resources):
... # Optional: set resources and number of workers
def process(self, task):
... # Process function for each worker process. Returns one or a series of downstream tasks.
... # Repeat for Stage2, Stage3
class Stage4(ReorderStage): # Define a reorder stage, typically for the final stage
def get_sequence_id(self, task):
... # Return the order of each task. Start from 0.
def process(self, task):
...
class MySystem(System):
def get_stages(self, resources):
... # Define the stages in a pipeline with given resources.
def get_results(self, results_gen):
... # Define how to extract final results from output tasks.
def main():
system = MySystem(num_pipeline) # Set debug=True to run in a single process
system.start() # Build and start system
system.add_job(...) # Submit one job
finished_job = system.result_queue.get() # Wait for result
system.end() # End system
Demo
See demo.py for an example implementation.
Development Modes
See develop.md
Version History
See version.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
py-turbo-0.2.3.tar.gz
(8.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
py_turbo-0.2.3-py3-none-any.whl
(22.6 kB
view details)
File details
Details for the file py-turbo-0.2.3.tar.gz.
File metadata
- Download URL: py-turbo-0.2.3.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1a6dc8491d99c0aadfef2c11abceb3dca4f63aab3dcd6a953ada4f671416f12
|
|
| MD5 |
ad7f5a052ee0dde9dcb6e636c23a9ff1
|
|
| BLAKE2b-256 |
89d6597dcd474ba03d9555e4c91e9583d0ddca1f33659d431fba3876ec6b6b0b
|
File details
Details for the file py_turbo-0.2.3-py3-none-any.whl.
File metadata
- Download URL: py_turbo-0.2.3-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a997539bcc6282eda219a629897e99cde1d18cc5e73b4df311c90dc9ce2851d
|
|
| MD5 |
53dc502512abcca0d8a1c7e7dd62e7bb
|
|
| BLAKE2b-256 |
873d8255ee8e0484026187dba3585d58cffde66aa696d214d2d48492274326fb
|