Workers parallèles adaptatifs : -w auto = cœurs - 2, résolu au lancement de chaque run

This commit is contained in:
Antoine Jacquin
2026-09-19 21:58:47 +02:00
parent 900bf5ee89
commit 5ef0232c80
6 changed files with 59 additions and 8 deletions

View File

@ -254,3 +254,26 @@ class TestEffectiveGroundMethod:
p = LidarArchaeoPipeline(tmpdir, tmpdir, ground_method='smrf',
ign_classes="sol,unclassified")
assert p._effective_ground_method() == "smrf"
class TestResolveWorkers:
def test_auto_scales_with_cpus(self):
from lidar_pipeline.pipeline import resolve_workers
import os
w = resolve_workers('auto')
assert w == max(2, min((os.cpu_count() or 4) - 2, 16))
def test_auto_bounded(self):
from lidar_pipeline.pipeline import resolve_workers
# Bornes : jamais sous 2, jamais au-dessus de 16
assert 2 <= resolve_workers('auto') <= 16
def test_explicit_int(self):
from lidar_pipeline.pipeline import resolve_workers
assert resolve_workers('4') == 4
assert resolve_workers(7) == 7
def test_invalid_falls_back_to_one(self):
from lidar_pipeline.pipeline import resolve_workers
assert resolve_workers('abc') == 1
assert resolve_workers(None) == 1