diff --git a/src/rhapsody/backends/discovery.py b/src/rhapsody/backends/discovery.py index 2d0853f..52a4f61 100644 --- a/src/rhapsody/backends/discovery.py +++ b/src/rhapsody/backends/discovery.py @@ -73,6 +73,11 @@ def _discover_backends(cls) -> None: if "dragon" in cls._backends: cls._backends.setdefault("dragon_v3", cls._backends["dragon"]) + # Alias "concurrent:processpool" to concurrent backend with a process + # pool instead of default thread pool + if "concurrent" in cls._backends: + cls._backends["concurrent:process_pool"] = backend_class + cls._initialized = True @classmethod @@ -185,6 +190,12 @@ def get_backend(backend_name: str, *args: Any, **kwargs: Any) -> BaseBackend: backend = get_backend('radical_pilot') """ backend_class = BackendRegistry.get_backend_class(backend_name) + + from concurrent.futures import ProcessPoolExecutor + + if backend_name == "concurrent:process_pool": + return backend_class(ProcessPoolExecutor(), *args, **kwargs) + return backend_class(*args, **kwargs)