From 05adf1a83e09acdd020738f11d119708f1967577 Mon Sep 17 00:00:00 2001 From: Benjamin C Carter <59350660+BenCarter44@users.noreply.github.com> Date: Wed, 26 Aug 2026 19:03:23 -0700 Subject: [PATCH 1/3] Discovery of Concurrent with ProcessPools --- src/rhapsody/backends/discovery.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/rhapsody/backends/discovery.py b/src/rhapsody/backends/discovery.py index 2d0853f..56ec9c7 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,11 @@ 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) From 5fc6adfce7a00763fdbc9260393663335c49bee1 Mon Sep 17 00:00:00 2001 From: Benjamin Carter <59350660+BenCarter44@users.noreply.github.com> Date: Wed, 26 Aug 2026 22:14:54 -0400 Subject: [PATCH 2/3] Match expected style --- src/rhapsody/backends/discovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rhapsody/backends/discovery.py b/src/rhapsody/backends/discovery.py index 56ec9c7..e0dd100 100644 --- a/src/rhapsody/backends/discovery.py +++ b/src/rhapsody/backends/discovery.py @@ -192,7 +192,7 @@ def get_backend(backend_name: str, *args: Any, **kwargs: Any) -> BaseBackend: backend_class = BackendRegistry.get_backend_class(backend_name) from concurrent.futures import ProcessPoolExecutor - if(backend_name == "concurrent:process_pool"): + if backend_name == "concurrent:process_pool": return backend_class(ProcessPoolExecutor(), *args, **kwargs) return backend_class(*args, **kwargs) From 01c00b70a77807b6fe38a3b648e8e4f11cda642e Mon Sep 17 00:00:00 2001 From: Benjamin Carter Date: Wed, 26 Aug 2026 22:19:49 -0400 Subject: [PATCH 3/3] Run ruff formatter --- src/rhapsody/backends/discovery.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rhapsody/backends/discovery.py b/src/rhapsody/backends/discovery.py index e0dd100..52a4f61 100644 --- a/src/rhapsody/backends/discovery.py +++ b/src/rhapsody/backends/discovery.py @@ -192,9 +192,10 @@ def get_backend(backend_name: str, *args: Any, **kwargs: Any) -> BaseBackend: 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)