number of threads
Closed this issue · 1 comments
EricDeveaud commented
Hello,
prothint.py
uses multiprocessing.cpu_count()
to ge the max value of threads.
but multiprocessing.cpu_count()
is the number of cpu in the machine. But this is not the same as the number of cpu available to the process. For example, you can run in a taskset context or a batch scheduler like slurm.
see:
$ nproc
96
$ taskset -c 1 nproc
1
$ taskset -c 1 python3 -c "import multiprocessing; print(multiprocessing.cpu_count())"
96
I would suggest to use len(os.sched_getaffinity(0)) instead of multiprocessing.cpu_count()
$ python3 -c "import os; print(len(os.sched_getaffinity(0)))"
96
$ taskset -c 1 python3 -c "import os; print(len(os.sched_getaffinity(0)))"
1
regards
Eric
tomasbruna commented
Thanks, Eric, that makes sense. Added.