[Numpy-discussion] Dropping support for Accelerate/veclib?

David Cournapeau cournape at gmail.com
Tue Jun 11 04:52:01 EDT 2013

On Tue, Jun 11, 2013 at 9:22 AM, Pauli Virtanen <pav at iki.fi> wrote:
> Hi,
> numpy.distutils provides support for Accelerate+veclib on OSX,
> but does not provide Fortran compiler flags that ensure that
> the Fortran ABI used is compatible. As a result ASUM, SDOT,
> (apparently also DDOT), and other common BLAS functions
> return garbage when called with the wrong ABI.
> This breaks parts of Scipy. (There's some code to hack around
> this --- it worked on earlier versions of OSX, but apparently
> is unreliable on 10.8, demonstrating that this approach is just
> too brittle.)
> Moreover, third-party module developers who use Fortran will not
> be aware of this issue, so it may also break 3rd party code.
> As far as I see, the options are:
> 1. Add -ff2c (or whatever is the correct flag for Accelerate)
>    to the Fortran flags on OSX.

What is the default ABI used on homebrew ? I think we should just
follow that, given that Apple cannot figure it out.

> 2. Drop support for Veclib/Accelerate.
> I think Accelerate was also incompatible with multiprocessing,
> which would weigh for option 2.

As for multiprocessing support, the problem will happen with other
libraries as well. Essentially, the way multiprocessing work (fork wo
exec) is simply not supported on OS X. Olivier Grisel from scikits
learn knows more about this (and has some workaround to use
multiprocessing with numpy/scipy on os x).

I will look into the issue with Accelerate on 10.8 (am still on 10.7
myself), but I would not mind dropping support for it if it is too
much of an hassle. I will look into the bento issue that makes it fail
on 64 bits python, and maybe using openblas should become the default


More information about the NumPy-Discussion mailing list