A library offers streamlined utilities to simplify the parallelization of Python functions
Project description
Pyllelize
Easily parallelize your Python functions with pyllelize
. Whether you're dealing with CPU-bound tasks or I/O-bound asynchronous functions, pyllelize
offers a simple interface to distribute your workload efficiently.
Key Features
-
Thread-based Parallelization: Distribute CPU-bound tasks across multiple threads with ease.
-
Process-based Parallelization: Harness the full power of multi-core processors by distributing tasks across separate processes, bypassing Python's Global Interpreter Lock.
-
Asynchronous Execution: Seamlessly parallelize I/O-bound asynchronous tasks.
-
Error Handling: Safely capture and report errors without halting the execution of other tasks.
Installation
pip install pyllelize
Quick Start
Thread-based Execution
from pyllelize import parallel_execute_threads
def multiply(a, b):
return a * b
arguments = [(1, 2), (3, 4), (5, 6)]
results = parallel_execute_threads(multiply, arguments)
print(results) # Possible output: [2, 12, 30]
Process-based Execution
from pyllelize import parallel_execute_processes
def add(a, b):
return a + b
arguments = [(1, 2), (3, 4), (5, 6)]
results = parallel_execute_processes(add, arguments)
print(results) # Possible output: [3, 7, 11]
Asynchronous Execution
import asyncio
from pyllelize import parallel_execute_threads_async
async def fetch_data(a, b):
await asyncio.sleep(1) # Simulating async I/O operation
return a + b
arguments = [(1, 2), (3, 4), (5, 6)]
results = parallel_execute_threads_async(fetch_data, arguments)
print(results) # Possible output after 1 second: [3, 7, 11]
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyllelize-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1ccea3b4a1d97f8d86f3e5eadeccdec954096d43cf74ec3e0bbd0291a9ac73a |
|
MD5 | d14e5912f6fc529c5739bf7baec693b0 |
|
BLAKE2b-256 | bc15f44ab477dfd8576ecde5108018e41e4d1186a29277c4d224fec867305d40 |