Skip to main content

Parallel execution of your tasks simplified! Analog to concurrent.futures executors.

Project description

parallelizer

Parallel execution of your tasks simplified! This package can be used as an alternative to Python's concurrent.futures executors, or as an analog of Java's ExecutorService.

Two simple wrappers (thread-based and process-based), that allow for easy split and parallel processing of your jobs.

Description

This package provides two classes:

  • ThreadParallelizer to execute your jobs in new threads
  • ProcessParallelizer to execute your jobs in new processes

This is a pure python implementation, with usage of threading and multiprocessing packages

Note that the wrappers appear to be in sync (from the caller's perspective), they will wait until all inner tasks are completed.

Installation

Normal installation

pip install parallelizer

Development installation

git clone https://github.com/jpleorx/parallelizer.git
cd parallelizer
pip install --editable .

Example

import time
from parallelizer import ThreadParallelizer, ProcessParallelizer, repeat

def power_function(base: int, power: int) -> int:
    time.sleep(1)
    return base ** power

inputs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
number_of_threads = 5

thread_parallelizer = ThreadParallelizer(number_of_threads)
results = thread_parallelizer.execute(power_function, [inputs, repeat(2, len(inputs))])

process_parallelizer = ProcessParallelizer(number_of_threads)
results = process_parallelizer.execute(power_function, [inputs, repeat(2, len(inputs))])

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

parallelizer-0.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

parallelizer-0.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file parallelizer-0.1.tar.gz.

File metadata

  • Download URL: parallelizer-0.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.5

File hashes

Hashes for parallelizer-0.1.tar.gz
Algorithm Hash digest
SHA256 896284dc4d05e9c2ac733c2c9d048a74fa24fb0d13c9d43a20e7902c22a4021e
MD5 37942cff36dc5d32175df433fbf8062d
BLAKE2b-256 ae75b9e378a4f3db895f74fbfb39aefce26d6a7533f9c85f3633ed44d748e784

See more details on using hashes here.

File details

Details for the file parallelizer-0.1-py3-none-any.whl.

File metadata

  • Download URL: parallelizer-0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.5

File hashes

Hashes for parallelizer-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa6e7b73ac6bec9a47f777524fb7f25e704a9768db7a3d6c595bd58ed70bbbb0
MD5 329d920b21c8e2ba3045f20c12546484
BLAKE2b-256 b172c4c65288b4dcf6faad90524efac6c70eda2b9bb50eeabc30d85270d29a8a

See more details on using hashes here.

Supported by

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