20825: Make SeparateRunner reusable
authorPeter Amstutz <peter.amstutz@curii.com>
Tue, 12 Sep 2023 01:49:55 +0000 (21:49 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Thu, 5 Oct 2023 19:16:53 +0000 (15:16 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

sdk/cwl/arvados_cwl/arvcontainer.py
sdk/cwl/arvados_cwl/arvworkflow.py
sdk/cwl/arvados_cwl/runner.py

index 487ab70909a95b5f3849474fae360935e6a2794d..aa9fa1e90358f733bbd21932fa38ba90b908aa93 100644 (file)
@@ -587,7 +587,7 @@ class RunnerContainer(Runner):
                 "ram": 1024*1024 * (math.ceil(self.submit_runner_ram) + math.ceil(self.collection_cache_size)),
                 "API": True
             },
-            "use_existing": False, # Never reuse the runner container - see #15497.
+            "use_existing": self.reuse_runner,
             "properties": {}
         }
 
index 6144f6f2f15554754b95e0797e1851dea5482bde..424bb27492ee66e7b3bf07454422aed4da8e9a6a 100644 (file)
@@ -787,7 +787,8 @@ class ArvadosWorkflow(Workflow):
                                secret_store=self.arvrunner.secret_store,
                                collection_cache_size=runtimeContext.collection_cache_size,
                                collection_cache_is_default=self.arvrunner.should_estimate_cache_size,
-                               git_info=runtimeContext.git_info).job(joborder, output_callback, runtimeContext)
+                               git_info=runtimeContext.git_info,
+                               reuse_runner=True).job(joborder, output_callback, runtimeContext)
 
 
     def job(self, joborder, output_callback, runtimeContext):
index 4432813f6accb09a2f086631ac5cf172fe15e6f3..763d9d7e1219b7f713324c13636b6f92d66a8962 100644 (file)
@@ -828,7 +828,8 @@ class Runner(Process):
                  priority=None, secret_store=None,
                  collection_cache_size=256,
                  collection_cache_is_default=True,
-                 git_info=None):
+                 git_info=None,
+                 reuse_runner=False):
 
         self.loadingContext = loadingContext.copy()
 
@@ -861,6 +862,7 @@ class Runner(Process):
         self.enable_dev = self.loadingContext.enable_dev
         self.git_info = git_info
         self.fast_parser = self.loadingContext.fast_parser
+        self.reuse_runner = reuse_runner
 
         self.submit_runner_cores = 1
         self.submit_runner_ram = 1024  # defaut 1 GiB