[Numpy-discussion] Numpy matrix multiplication slow even though ATLAS linked

Charles R Harris charlesr.harris at gmail.com
Thu Oct 30 14:41:51 EDT 2008


On Thu, Oct 30, 2008 at 5:19 AM, Jan-Willem van de Meent <
vandemeent at damtp.cam.ac.uk> wrote:

> Dear all,
>
> This is my first post to this list. I am having perfomance issues with with
> numpy/atlas. Doing dot(a,a) for a 2000x2000 matrix takes  about 1m40s, even
> though numpy is appears to link to my atlas libraries:
>
> I did a quick benchmark by running the following script:
>
>    #! /usr/bin/env python
>    import numpy
>    import time
>
>    try:
>       import numpy.core._dotblas
>       print 'Using ATLAS:'
>    except ImportError:
>       print 'No ATLAS:'
>
>    t = time.time()
>    x = numpy.random.random((1000,1000))
>    y = numpy.random.random((1000,1000))
>    z = numpy.dot(x, y)
>
>    print time.time()-t
>
> My laptop is a Dell D620 Core Duo T2300 1.66 Ghz, running Archlinux with
> GCC
> 4.3.2, atlas 3.8.2, python 2.5.2 and numpy 1.2.1. Output of the script
> above
> is:
>
>    Using ATLAS:
>    7.99549412727
>
> A department desktop PC, Pentium D 3.00 Ghz, running Scientific Linux, with
> GCC 4.1.2, atlas 3.7.30, python 2.5.1 and numpy 1.1.0, runs this test 24
> times faster:
>
>    Using ATLAS:
>    0.337520122528
>

About .40 here with numpy from svn.


>
> So even though _dotblas.so exists, matrix multiplication appears to run at
> pretty much the same speed as if atlas were not  available. Running ldd on
> _dotblas.so suggests  that numpy is indeed linking to the atlas libs:
>
> ldd /usr/lib/python2.5/site-packages/numpy/core/_dotblas.so
>        linux-gate.so.1 =>  (0xb7fcf000)
>        libatlas.so => /usr/lib/libatlas.so (0xb7cb5000)
>        liblapack.so => /usr/lib/liblapack.so (0xb77ab000)
>        libcblas.so => /usr/lib/libcblas.so (0xb778b000)
>        libf77blas.so => /usr/lib/libf77blas.so (0xb776f000)
>        libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7630000)
>        libpthread.so.0 => /lib/libpthread.so.0 (0xb7618000)
>        libc.so.6 => /lib/libc.so.6 (0xb74d6000)
>        libm.so.6 => /lib/libm.so.6 (0xb74b0000)
>        libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0xb73ff000)
>        libdl.so.2 => /lib/libdl.so.2 (0xb73fb000)
>        libutil.so.1 => /lib/libutil.so.1 (0xb73f6000)
>        /lib/ld-linux.so.2 (0xb7fd0000)
>

What's in /usr/local/lib? Do you have a 64 bit system? What does locate
libatlas return?

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20081030/3060b76a/attachment.html>


More information about the NumPy-Discussion mailing list