[Numpy-discussion] Debian: numpy not building _dotblas.so

David Cournapeau cournape at gmail.com
Mon Jul 7 11:31:15 EDT 2008


On Mon, Jul 7, 2008 at 11:44 PM, Ondrej Certik <ondrej at certik.cz> wrote:
> Hi,
>
> we have this problem in Debian:
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489726
>
> The problem is that numpy should not depend on atlas unconditionally,
> yet it should allow it for users that have it.

Why can't numpy depends on ATLAS ? That's something I don't
understand. The g77 gfortran transition is done, right ? Is it because
it is not available on all archs ? In this case, wouldn't it be easier
to change the dependencies depending on the arch ?

>
> I am not an expert in blas/lapack/atlas and it's Debian packaging much
> (I know some people say that atlas packaging in Debian is not very
> good, actually pretty bad)

Well, at least the package exists and works. That's actually the only
distribution I know which packaged a working atlas/blas/lapack. To be
fair, atlas is really difficult to package. Its very nature makes it
almost impossible to package it while keeping its advantages (speed),
because the binary is extremely dependent on the host machine, meaning
reproducible builds is practically impossible (even on the same
machine).

>
> The problem is with this patch:
>
> http://projects.scipy.org/scipy/numpy/changeset/3854
>
> and the question that we have is:
>
> <doko> I'd like to know, if the code was changed to only work with
> atlas, or if was never working. if it's the latter, then we should use
> atlas

_dotblas depends on cblas, not blas. IIRC, Robert said that using the
cblas interface around an existing blas (for the case where ATLAS is
not available) would not be effective because of change of row/column
order. It may be worth checking that it is indeed not useful from a
speed point of view.

Note also that replacing blas/lapack by the ATLAS blas/lapack, as
already done on debian, makes quite a big difference already. IOW, if
you install numpy, and after that atlas, then thanks to hwcap, the os
loader will pick up blas/lapack in /usr/lib/sse2 (for arch with sse2)
instead of /usr/lib, and the sse2 ones are the atlas ones. It won't
work for _dotblas, but will work for linalg.

cheers,

David



More information about the NumPy-Discussion mailing list