Hi all,

Starting with 1.9.1, the official numpy OS X wheels (the ones you get by
doing "pip install numpy") have been built to use Apple's Accelerate
library for linear algebra. This is fast, but it breaks multiprocessing in
obscure ways (e.g. see this user report:
https://github.com/numpy/numpy/issues/5752).

Unfortunately, there is no obvious best solution to what linear algebra
package to use, so we have to make a decision as to which set of
compromises we prefer.

Options:

Accelerate: fast, but breaks multiprocessing as above.

OpenBLAS: fast, but Julian raised concerns about its trustworthiness last
year (
http://mail.scipy.org/pipermail/numpy-discussion/2014-March/069659.html).
Possibly things have improved since then (I get the impression that they've
gotten some additional developer attention from the Julia community), but I
don't know.

Atlas: slower (faster than reference blas but definitely slower than fancy
options like the above), but solid.

My feeling is that for wheels in particular it's more important that
everything "just work" than that we get the absolute fastest speeds. And
this is especially true for the multiprocessing issue, given that it's a
widely used part of the stdlib, the failures are really obscure/confusing,
and there is no workaround for python 2 which is still where a majority of
our users still are. So I'd vote for using either atlas or OpenBLAS. (And
would defer to Julian and Matthew about which to choose between these.)

Any opinions, objections?

-n
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to