pymc-devs/pymc

Only sample using a single thread when sampling multiple chains in parallel

Closed

#5,453 opened on Feb 9, 2022

 (1 comment) (0 reactions) (0 assignees)Python (1,902 forks)batch import
help wantedrequest discussionv4

Repository metrics

Stars
 (7,926 stars)
PR merge metrics
 (Avg merge 11d) (7 merged PRs in 30d)

Description

My prior of what cores=4 does when calling pm.sample() is that pymc would use 4 of my cores. However, because of multi-threading this might not be the case. Furthermore, multi-threading is causing problems when running multiple chains in parallel: https://github.com/pymc-devs/pymc/issues/3140

I thus think we should set os.environ['OMP_NUM_THREADS'] = '1' if we're sampling on > 1 core.

Contributor guide