Datatoy Logo

Tâches parallèles

Multipliez les workers d'un seul paramètre

`.task(fn, count=N)` exécute `fn` dans N processus séparés qui partagent la même file d'entrée. Chaque worker tourne dans son propre processus, contournant le GIL Python — idéal pour les traitements CPU-bound et les appels I/O.

python
from olympipe import Pipeline
import time

def slow_compute(x: int) -> int:
    time.sleep(0.01)   # simule un calcul lourd
    return x ** 2

# 1 worker séquentiel
results = Pipeline(range(100)).task(slow_compute).wait_for_result()

# 8 workers parallèles — ~8x plus rapide
results = (
    Pipeline(range(100))
    .task(slow_compute, count=8)
    .wait_for_result()
)

Performance

100 items, calcul CPU (0.01s/item)

Séquentiel 10.0s
2 workers 5.2s
4 workers 2.7s
8 workers 1.4s
🚀 7.1× plus rapide

Comment ça fonctionne

Olympipe crée N processus enfants via `multiprocessing`. Chaque item de la source est dépilé par le premier worker disponible — pas de coordination manuelle, pas de Lock, pas de Pool.

Exemples liés