Installing Numpy/Scipy with custom ATLAS

For some reason I thought it would be a good idea to install a custom ATLAS...again. I think I've built lapack 3.1.1 and atlas 3.8.0 correctly following the instructions here <http://www.scipy.org/Installing_SciPy/Linux> and the ones included with atlas, but we shall see...the checks pass at least. I installed the atlas libraries to ~/atlas and copied over the dynamic libraries by hand. I then edit my site.cfg [DEFAULT] library_dirs = /usr/local/lib:/usr/lib:/home/skipper/atlas/lib include_dirs = /usr/local/include:/usr/include:usr/include/suitesparse:/home/skipper/atlas/include [blas_opt] libraries = ptf77blas, ptcblas, atlas [lapack_opt] libraries = lapack, ptf77blas, ptcblas, atlas [amd] amd_libs = amd [umfpack] umfpack_libs = umfpack [fftw] libraries = fftw3 I then build and install numpy without error. But when I try to import numpy I get [...] /usr/local/lib/python2.6/dist-packages/numpy/linalg/linalg.py in <module>() 20 isfinite, size 21 from numpy.lib import triu ---> 22 from numpy.linalg import lapack_lite 23 from numpy.matrixlib.defmatrix import matrix_power 24 ImportError: /usr/local/lib/python2.6/dist-packages/numpy/linalg/lapack_lite.so: undefined symbol: ATL_dptsyrk Running ldd gives $ ldd /usr/local/lib/python2.6/dist-packages/numpy/linalg/lapack_lite.so linux-vdso.so.1 => (0x00007fff129fe000) liblapack.so => /usr/lib/atlas/liblapack.so (0x00007f4609c57000) libatlas.so => /usr/lib/libatlas.so (0x00007f4609615000) libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f4609338000) libm.so.6 => /lib/libm.so.6 (0x00007f46090b3000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f4608e9b000) libc.so.6 => /lib/libc.so.6 (0x00007f4608b28000) libblas.so.3gf => /usr/lib/atlas/libblas.so.3gf (0x00007f46084ad000) /lib64/ld-linux-x86-64.so.2 (0x00007f460a991000) I currently have atlas installed from David's repo as well (incidentally, David, where is your repo, I can't find it again, and wanted to add it to the wiki.) and am wondering if there is a conflict here. When I look at the build log it says, for example, FOUND: libraries = ['ptf77blas', 'ptcblas', 'atlas'] library_dirs = ['/home/skipper/atlas/lib'] language = c include_dirs = ['/usr/include'] Should include_dirs be '/home/skipper/atlas/include' ? I don't know. Any pointers would be appreciated, as I wasn't able to install numpy without trying to use the threaded libraries either now... I can provide anymore output as needed. Build log attached. Cheers, Skipper

On Thu, Sep 24, 2009 at 1:50 PM, Skipper Seabold <jsseabold@gmail.com> wrote:
For some reason I thought it would be a good idea to install a custom ATLAS...again.
I think I've built lapack 3.1.1 and atlas 3.8.0 correctly following the instructions here <http://www.scipy.org/Installing_SciPy/Linux> and the ones included with atlas, but we shall see...the checks pass at least. I installed the atlas libraries to ~/atlas and copied over the dynamic libraries by hand.
I then edit my site.cfg
[DEFAULT] library_dirs = /usr/local/lib:/usr/lib:/home/skipper/atlas/lib include_dirs = /usr/local/include:/usr/include:usr/include/suitesparse:/home/skipper/atlas/include [blas_opt] libraries = ptf77blas, ptcblas, atlas [lapack_opt] libraries = lapack, ptf77blas, ptcblas, atlas [amd] amd_libs = amd [umfpack] umfpack_libs = umfpack [fftw] libraries = fftw3
I then build and install numpy without error. But when I try to import numpy I get [...] /usr/local/lib/python2.6/dist-packages/numpy/linalg/linalg.py in <module>() 20 isfinite, size 21 from numpy.lib import triu ---> 22 from numpy.linalg import lapack_lite 23 from numpy.matrixlib.defmatrix import matrix_power 24
ImportError: /usr/local/lib/python2.6/dist-packages/numpy/linalg/lapack_lite.so: undefined symbol: ATL_dptsyrk
Running ldd gives
$ ldd /usr/local/lib/python2.6/dist-packages/numpy/linalg/lapack_lite.so linux-vdso.so.1 => (0x00007fff129fe000) liblapack.so => /usr/lib/atlas/liblapack.so (0x00007f4609c57000) libatlas.so => /usr/lib/libatlas.so (0x00007f4609615000) libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f4609338000) libm.so.6 => /lib/libm.so.6 (0x00007f46090b3000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f4608e9b000) libc.so.6 => /lib/libc.so.6 (0x00007f4608b28000) libblas.so.3gf => /usr/lib/atlas/libblas.so.3gf (0x00007f46084ad000) /lib64/ld-linux-x86-64.so.2 (0x00007f460a991000)
I currently have atlas installed from David's repo as well (incidentally, David, where is your repo, I can't find it again, and wanted to add it to the wiki.) and am wondering if there is a conflict here. When I look at the build log it says, for example,
FOUND: libraries = ['ptf77blas', 'ptcblas', 'atlas'] library_dirs = ['/home/skipper/atlas/lib'] language = c include_dirs = ['/usr/include']
Should include_dirs be '/home/skipper/atlas/include' ? I don't know. Any pointers would be appreciated, as I wasn't able to install numpy without trying to use the threaded libraries either now... I can provide anymore output as needed. Build log attached.
Cheers,
Skipper
I figured the include directories in site.cfg were greedy, so I changed the order to library_dirs = /usr/local/lib:/usr/lib:/home/skipper/atlas/lib include_dirs = /home/skipper/atlas/include:/usr/local/include:/usr/include:/usr/include/suitesparse but I get the same import error in numpy. The correct include directory is listed in the build log, but I'm wondering why it says atlas 3.8.3 when I installed 3.8.0 New build log attached. Skipper
participants (1)
-
Skipper Seabold