kwcoco.util.util_parallel module¶
- kwcoco.util.util_parallel.coerce_num_workers(num_workers='auto', minimum=0)[source]¶
Return some number of CPUs based on a chosen hueristic
- Parameters:
num_workers (int | str) – A special string code, or an exact number of cpus
minimum (int) – minimum workers we are allowed to return
- Returns:
number of available cpus based on request parameters
- Return type:
CommandLine
xdoctest -m kwcoco.util.util_parallel coerce_num_workers
Example
>>> from kwcoco.util.util_parallel import * # NOQA >>> print(coerce_num_workers('all')) >>> print(coerce_num_workers('avail')) >>> print(coerce_num_workers('auto')) >>> print(coerce_num_workers('all-2')) >>> print(coerce_num_workers('avail-2')) >>> print(coerce_num_workers('all/2')) >>> print(coerce_num_workers('min(all,2)')) >>> print(coerce_num_workers('[max(all,2)][0]')) >>> import pytest >>> with pytest.raises(Exception): >>> print(coerce_num_workers('all + 1' + (' + 1' * 100))) >>> total_cpus = coerce_num_workers('all') >>> assert coerce_num_workers('all-2') == max(total_cpus - 2, 0) >>> assert coerce_num_workers('all-100') == max(total_cpus - 100, 0) >>> assert coerce_num_workers('avail') <= coerce_num_workers('all') >>> assert coerce_num_workers(3) == max(3, 0)