Skip to content

Commit 048eb55

Browse files
kmavrommatismr-c
andauthored
use max_cores in taskQueue instead of system cores (#2038)
The class TascQueue accepts an argument `thread_count` that is used for the max size of a queue. In the `MultithreadedJobExecutor `class there is a variable defined (`max_cores`) that is getting its value from the available cores of the machine. Further down in the same class when TaskQueue is called instead of using the `max_cores` it is using `psutil.cpu_count()`. I suggest to use the self.max_cores in the call of TaskQueue in the file executor.py instead of psutil.cpu_count() Use case: when a job executor is setup as MultithreadedJobExecutor one can override the max_cores after the initialization of the object and limit the use to the specified cores. Additional enhancement would be to include an argument to allow the use to provide the number of cores available for use Co-authored-by: Michael R. Crusoe <[email protected]>
1 parent 0b64935 commit 048eb55

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

cwltool/executors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ def run_jobs(
429429
logger: logging.Logger,
430430
runtime_context: RuntimeContext,
431431
) -> None:
432-
self.taskqueue: TaskQueue = TaskQueue(threading.Lock(), psutil.cpu_count() or 1)
432+
self.taskqueue: TaskQueue = TaskQueue(threading.Lock(), int(math.ceil(self.max_cores)))
433433
try:
434434
jobiter = process.job(job_order_object, self.output_callback, runtime_context)
435435

0 commit comments

Comments
 (0)