When the the conditional normal is called (e.g. by a GP) one of the routines of numpy that calls the BLAS library will cause computation to be automatically multi-threaded on all the cores a machine possesses. This can collide with ones own idea of parallelism (e.g. using resample_multiprocess) and make computation very slow.
To avoid this behaviour make sure to set this this environment variable: OPENBLAS_NUM_THREADS=1.
The effect can be reproduced by running the script below (henceforth called "test_cmvn.vnts")
@marcoct was also bitten by this. I am not too sure how/where this should be documented. At the end of the day, computing the posterior covariance quickly is a desired aspect of running a single GP.
Suggested fix: we could display a warning whenever make_gp is called.
When the the conditional normal is called (e.g. by a GP) one of the routines of numpy that calls the BLAS library will cause computation to be automatically multi-threaded on all the cores a machine possesses. This can collide with ones own idea of parallelism (e.g. using
resample_multiprocess
) and make computation very slow.To avoid this behaviour make sure to set this this environment variable:
OPENBLAS_NUM_THREADS=1
.The effect can be reproduced by running the script below (henceforth called "test_cmvn.vnts")
with and without the variable set:
vs.
@marcoct was also bitten by this. I am not too sure how/where this should be documented. At the end of the day, computing the posterior covariance quickly is a desired aspect of running a single GP.
Suggested fix: we could display a warning whenever
make_gp
is called.Opinions?