Python os.sched_getaffinity() Examples
The following are 28
code examples of os.sched_getaffinity().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: features.py From crowdai-musical-genre-recognition-starter-kit with MIT License | 6 votes |
def main(): tids_train = pd.read_csv('data/train_labels.csv', index_col=0).index tids_test = sorted(glob.glob('data/crowdai_fma_test/*.mp3')) tids_test = [path.split('/')[-1][:-4] for path in tids_test] tids = tids_train.append(pd.Index(tids_test, name='track_id')) features = pd.DataFrame(index=tids, columns=columns(), dtype=np.float32) # More than usable CPUs to be CPU bound, not I/O bound. Beware memory. try: nb_workers = int(1.5 * len(os.sched_getaffinity(0))) except AttributeError as e: nb_workers = 10 print('Working with {} processes.'.format(nb_workers)) pool = multiprocessing.Pool(nb_workers) it = pool.imap_unordered(compute_features, tids) for row in tqdm(it, total=tids.size): features.loc[row.name] = row save(features, 10) test(features, 10)
Example #2
Source File: plugin.py From pytest-xdist with MIT License | 6 votes |
def auto_detect_cpus(): try: from os import sched_getaffinity except ImportError: if os.environ.get("TRAVIS") == "true": # workaround https://bitbucket.org/pypy/pypy/issues/2375 return 2 try: from os import cpu_count except ImportError: from multiprocessing import cpu_count else: def cpu_count(): return len(sched_getaffinity(0)) try: n = cpu_count() except NotImplementedError: return 1 return n if n else 1
Example #3
Source File: test_loky_module.py From loky with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_cpu_count_affinity(): if not hasattr(os, 'sched_getaffinity') or not hasattr(shutil, 'which'): pytest.skip() taskset_bin = shutil.which('taskset') python_bin = shutil.which('python') if taskset_bin is None or python_bin is None: raise pytest.skip() try: os.sched_getaffinity(0) except NotImplementedError: pytest.skip() res = check_output([taskset_bin, '-c', '0', python_bin, '-c', cpu_count_cmd]) assert res.strip().decode('utf-8') == '1'
Example #4
Source File: utils.py From augur with GNU Affero General Public License v3.0 | 6 votes |
def available_cpu_cores(fallback: int = 1) -> int: """ Returns the number (an int) of CPU cores available to this **process**, if determinable, otherwise the number of CPU cores available to the **computer**, if determinable, otherwise the *fallback* number (which defaults to 1). """ try: # Note that this is the correct function to use, not os.cpu_count(), as # described in the latter's documentation. # # The reason, which the documentation does not detail, is that # processes may be pinned or restricted to certain CPUs by setting # their "affinity". This is not typical except in high-performance # computing environments, but if it is done, then a computer with say # 24 total cores may only allow our process to use 12. If we tried to # naively use all 24, we'd end up with two threads across the 12 cores. # This would degrade performance rather than improve it! return len(os.sched_getaffinity(0)) except: # cpu_count() returns None if the value is indeterminable. return os.cpu_count() or fallback
Example #5
Source File: bootstrap.py From dials with BSD 3-Clause "New" or "Revised" License | 5 votes |
def add_make(self): try: nproc = len(os.sched_getaffinity(0)) except AttributeError: nproc = multiprocessing.cpu_count() self.add_indirect_command("libtbx.scons", args=["-j", str(nproc)]) # run build again to make sure everything is built self.add_indirect_command("libtbx.scons", args=["-j", str(nproc)])
Example #6
Source File: misc_util.py From recruit with Apache License 2.0 | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #7
Source File: misc_util.py From twitter-stock-recommendation with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS checked and if that is unset it returns 1. Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #8
Source File: misc_util.py From Serverless-Deep-Learning-with-TensorFlow-and-AWS-Lambda with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #9
Source File: slimai.py From ecom-rakuten with MIT License | 5 votes |
def num_cpus(): try: return len(os.sched_getaffinity(0)) except AttributeError: return os.cpu_count()
Example #10
Source File: misc_util.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #11
Source File: test_process.py From jarvis with GNU General Public License v2.0 | 5 votes |
def test_cpu_affinity(self): p = psutil.Process() initial = p.cpu_affinity() assert initial, initial self.addCleanup(p.cpu_affinity, initial) if hasattr(os, "sched_getaffinity"): self.assertEqual(initial, list(os.sched_getaffinity(p.pid))) self.assertEqual(len(initial), len(set(initial))) all_cpus = list(range(len(psutil.cpu_percent(percpu=True)))) # Work around travis failure: # https://travis-ci.org/giampaolo/psutil/builds/284173194 for n in all_cpus if not TRAVIS else initial: p.cpu_affinity([n]) self.assertEqual(p.cpu_affinity(), [n]) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # also test num_cpu() if hasattr(p, "num_cpu"): self.assertEqual(p.cpu_affinity()[0], p.num_cpu()) # [] is an alias for "all eligible CPUs"; on Linux this may # not be equal to all available CPUs, see: # https://github.com/giampaolo/psutil/issues/956 p.cpu_affinity([]) if LINUX: self.assertEqual(p.cpu_affinity(), p._proc._get_eligible_cpus()) else: self.assertEqual(p.cpu_affinity(), all_cpus) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # self.assertRaises(TypeError, p.cpu_affinity, 1) p.cpu_affinity(initial) # it should work with all iterables, not only lists p.cpu_affinity(set(all_cpus)) p.cpu_affinity(tuple(all_cpus))
Example #12
Source File: misc_util.py From coffeegrindsize with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #13
Source File: helpers.py From arche with MIT License | 5 votes |
def cpus_count() -> Optional[int]: try: return len(os.sched_getaffinity(0)) except AttributeError: return os.cpu_count()
Example #14
Source File: execution_env.py From dnn-quant-ocs with Apache License 2.0 | 5 votes |
def log_execution_env_state(app_args, gitroot='.'): """Log information about the execution environment. It is recommeneded to log this information so it can be used for referencing at a later time. Args: app_args (dict): the command line arguments passed to the application git_root: the path to the .git root directory """ def log_git_state(): """Log the state of the git repository. It is useful to know what git tag we're using, and if we have outstanding code. """ repo = Repo(gitroot) assert not repo.bare if repo.is_dirty(): logger.debug("Git is dirty") try: branch_name = repo.active_branch.name except TypeError: branch_name = "None, Git is in 'detached HEAD' state" logger.debug("Active Git branch: %s", branch_name) logger.debug("Git commit: %s" % repo.head.commit.hexsha) logger.debug("Number of CPUs: %d", len(os.sched_getaffinity(0))) logger.debug("Number of GPUs: %d", torch.cuda.device_count()) logger.debug("CUDA version: %s", torch.version.cuda) logger.debug("CUDNN version: %s", torch.backends.cudnn.version()) logger.debug("Kernel: %s", platform.release()) if HAVE_LSB: logger.debug("OS: %s", lsb_release.get_lsb_information()['DESCRIPTION']) logger.debug("Python: %s", sys.version) logger.debug("PyTorch: %s", torch.__version__) logger.debug("Numpy: %s", np.__version__) log_git_state() logger.debug("App args: %s", app_args)
Example #15
Source File: misc_util.py From pySINDy with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #16
Source File: misc_util.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #17
Source File: misc_util.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS checked and if that is unset it returns 1. Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #18
Source File: decorators.py From batchflow with Apache License 2.0 | 5 votes |
def _workers_count(): cpu_count = 0 try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = os.cpu_count() return cpu_count * 4
Example #19
Source File: config.py From blueoil with Apache License 2.0 | 5 votes |
def cpu_count(self) -> int: return len(os.sched_getaffinity(0))
Example #20
Source File: fastai_transforms.py From pytorch-widedeep with MIT License | 5 votes |
def num_cpus() -> Optional[int]: "Get number of cpus" try: return len(os.sched_getaffinity(0)) except AttributeError: return os.cpu_count()
Example #21
Source File: compatibility.py From pex with Apache License 2.0 | 5 votes |
def cpu_count(): # The set of CPUs accessible to the current process (pid 0). cpu_set = os.sched_getaffinity(0) return len(cpu_set)
Example #22
Source File: misc_util.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #23
Source File: main.py From python-edgar with MIT License | 5 votes |
def _worker_count(): cpu_count = 1 try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() return cpu_count
Example #24
Source File: test_process.py From psutil with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_cpu_affinity(self): p = psutil.Process() initial = p.cpu_affinity() assert initial, initial self.addCleanup(p.cpu_affinity, initial) if hasattr(os, "sched_getaffinity"): self.assertEqual(initial, list(os.sched_getaffinity(p.pid))) self.assertEqual(len(initial), len(set(initial))) all_cpus = list(range(len(psutil.cpu_percent(percpu=True)))) # Work around travis failure: # https://travis-ci.org/giampaolo/psutil/builds/284173194 for n in all_cpus if not TRAVIS else initial: p.cpu_affinity([n]) self.assertEqual(p.cpu_affinity(), [n]) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # also test num_cpu() if hasattr(p, "num_cpu"): self.assertEqual(p.cpu_affinity()[0], p.num_cpu()) # [] is an alias for "all eligible CPUs"; on Linux this may # not be equal to all available CPUs, see: # https://github.com/giampaolo/psutil/issues/956 p.cpu_affinity([]) if LINUX: self.assertEqual(p.cpu_affinity(), p._proc._get_eligible_cpus()) else: self.assertEqual(p.cpu_affinity(), all_cpus) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # self.assertRaises(TypeError, p.cpu_affinity, 1) p.cpu_affinity(initial) # it should work with all iterables, not only lists if not TRAVIS: p.cpu_affinity(set(all_cpus)) p.cpu_affinity(tuple(all_cpus))
Example #25
Source File: utils.py From bioconda-utils with MIT License | 5 votes |
def threads_to_use(): """Returns the number of cores we are allowed to run on""" if hasattr(os, 'sched_getaffinity'): cores = len(os.sched_getaffinity(0)) else: cores = os.cpu_count() return min(_max_threads, cores)
Example #26
Source File: test_process.py From vnpy_crypto with MIT License | 5 votes |
def test_cpu_affinity(self): p = psutil.Process() initial = p.cpu_affinity() assert initial, initial self.addCleanup(p.cpu_affinity, initial) if hasattr(os, "sched_getaffinity"): self.assertEqual(initial, list(os.sched_getaffinity(p.pid))) self.assertEqual(len(initial), len(set(initial))) all_cpus = list(range(len(psutil.cpu_percent(percpu=True)))) # Work around travis failure: # https://travis-ci.org/giampaolo/psutil/builds/284173194 for n in all_cpus if not TRAVIS else initial: p.cpu_affinity([n]) self.assertEqual(p.cpu_affinity(), [n]) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # also test num_cpu() if hasattr(p, "num_cpu"): self.assertEqual(p.cpu_affinity()[0], p.num_cpu()) # [] is an alias for "all eligible CPUs"; on Linux this may # not be equal to all available CPUs, see: # https://github.com/giampaolo/psutil/issues/956 p.cpu_affinity([]) if LINUX: self.assertEqual(p.cpu_affinity(), p._proc._get_eligible_cpus()) else: self.assertEqual(p.cpu_affinity(), all_cpus) if hasattr(os, "sched_getaffinity"): self.assertEqual(p.cpu_affinity(), list(os.sched_getaffinity(p.pid))) # self.assertRaises(TypeError, p.cpu_affinity, 1) p.cpu_affinity(initial) # it should work with all iterables, not only lists p.cpu_affinity(set(all_cpus)) p.cpu_affinity(tuple(all_cpus))
Example #27
Source File: misc_util.py From lambda-packs with MIT License | 5 votes |
def get_num_build_jobs(): """ Get number of parallel build jobs set by the --parallel command line argument of setup.py If the command did not receive a setting the environment variable NPY_NUM_BUILD_JOBS is checked. If that is unset, return the number of processors on the system, with a maximum of 8 (to prevent overloading the system if there a lot of CPUs). Returns ------- out : int number of parallel jobs that can be run """ from numpy.distutils.core import get_distribution try: cpu_count = len(os.sched_getaffinity(0)) except AttributeError: cpu_count = multiprocessing.cpu_count() cpu_count = min(cpu_count, 8) envjobs = int(os.environ.get("NPY_NUM_BUILD_JOBS", cpu_count)) dist = get_distribution() # may be None during configuration if dist is None: return envjobs # any of these three may have the job set, take the largest cmdattr = (getattr(dist.get_command_obj('build'), 'parallel', None), getattr(dist.get_command_obj('build_ext'), 'parallel', None), getattr(dist.get_command_obj('build_clib'), 'parallel', None)) if all(x is None for x in cmdattr): return envjobs else: return max(x for x in cmdattr if x is not None)
Example #28
Source File: context.py From loky with BSD 3-Clause "New" or "Revised" License | 4 votes |
def cpu_count(): """Return the number of CPUs the current process can use. The returned number of CPUs accounts for: * the number of CPUs in the system, as given by ``multiprocessing.cpu_count``; * the CPU affinity settings of the current process (available with Python 3.4+ on some Unix systems); * CFS scheduler CPU bandwidth limit (available on Linux only, typically set by docker and similar container orchestration systems); * the value of the LOKY_MAX_CPU_COUNT environment variable if defined. and is given as the minimum of these constraints. It is also always larger or equal to 1. """ import math try: cpu_count_mp = mp.cpu_count() except NotImplementedError: cpu_count_mp = 1 # Number of available CPUs given affinity settings cpu_count_affinity = cpu_count_mp if hasattr(os, 'sched_getaffinity'): try: cpu_count_affinity = len(os.sched_getaffinity(0)) except NotImplementedError: pass # CFS scheduler CPU bandwidth limit # available in Linux since 2.6 kernel cpu_count_cfs = cpu_count_mp cfs_quota_fname = "/sys/fs/cgroup/cpu/cpu.cfs_quota_us" cfs_period_fname = "/sys/fs/cgroup/cpu/cpu.cfs_period_us" if os.path.exists(cfs_quota_fname) and os.path.exists(cfs_period_fname): with open(cfs_quota_fname, 'r') as fh: cfs_quota_us = int(fh.read()) with open(cfs_period_fname, 'r') as fh: cfs_period_us = int(fh.read()) if cfs_quota_us > 0 and cfs_period_us > 0: # Make sure this quantity is an int as math.ceil returns a # float in python2.7. (See issue #165) cpu_count_cfs = int(math.ceil(cfs_quota_us / cfs_period_us)) # User defined soft-limit passed as an loky specific environment variable. cpu_count_loky = int(os.environ.get('LOKY_MAX_CPU_COUNT', cpu_count_mp)) aggregate_cpu_count = min(cpu_count_mp, cpu_count_affinity, cpu_count_cfs, cpu_count_loky) return max(aggregate_cpu_count, 1)