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
Redimensionnement d'images en masse
Redimensionner 10 000 images en parallèle avec Pillow.
I/OImage
Scraping web parallèle
Télécharger et parser 1 000 pages HTML avec httpx.
I/OWeb
Traitement de fichiers CSV
Lire et transformer des milliers de fichiers CSV en parallèle.
I/OETL
