Reduce multiprocessing for statsmodels glm

GLM uses multiprocessing only through the linear algbra libraries

The following copies my FAQ issue description from https://github.com/statsmodels/statsmodels/issues/2914 It includes some links to other issues where this shows up.

(quote:)

Statsmodels is using joblib in a few places for parallel processing where it's under our control. Current usage is mainly for bootstrap and it is not used in the models directly.

However, some of the underlying Blas/Lapack libraries in numpy/scipy also use mutliple cores. This can be efficient for linear algebra with large arrays, but it can also slow down the operations especially when we want to use parallel processing on a higher level.

How can we restrict the number of cores used by the linear algebra libraries?

This depends on which linear algebra library is used. see mailing list thread https://groups.google.com/d/msg/pystatsmodels/Lz9-In0pgPk/BtcYsj_ABQAJ

openblas: try setting the environment variable OMP_NUM_THREADS=1

Accelerate on OSX, set VECLIB_MAXIMUM_THREADS

mkl in anaconda:

import mkl
mkl.set_num_threads(1)