Charles R Harris wrote:
>
>
> On 4/18/07, *Keith Goodman* <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     On 4/18/07, Charles R Harris <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> wrote:
>     > On 4/18/07, Keith Goodman <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> wrote:
>     > > I'd like to compile atlas so that I can take full advantage of
>     my core
>     > > 2 duo. Numpy dynamically links to the debian binary of
>     atlas-sse that
>     > > I installed. But the atlas website says that they recommend
>     static
>     > > linking.
>     > >
>     > > Which do you recommend, static or dynamic? Are there good
>     directions for
>     > either?
>     >
>     > I don't know which is best, although I suspect the statically
>     linked version
>     > will be larger. It might seem that just pulling in the gemm routines
>     > wouldn't add much, but they pull in lots of supporting routines.
>     To get
>     > numpy to link statically you will also probably need to have a
>     directory
>     > that contains only the *.a versions because the linker will
>     default to the
>     > *.so if they are present; i don't think there is a way to
>     specify the
>     > -static flag to the gcc compiler. Maybe someone else knows how
>     to do that.
>     > For ATLAS, I believe the latest versions are also recommended
>     because the
>     > stable version is so old.
>
>     At the moment best is equal to easiest since I have never compiled
>     atlas. Does anyone know of a howto on compiling atlas (dynamically
>     linked)?
>
>
> The instructions that come with ATLAS are useable, and with the 3.7.30 
> version the process is pretty easy. Just make sure you read the part 
> concerning relocatable libraries first, as you will need to add some 
> flags to the ./configure command line, -fPIC  and a couple of others. 
> After compiling and install, IIRC, the libraries will be in 
> /usr/local/lib/ATLAS, which should be OK for debian. Then you need to 
> add a file in /etc/ld.conf.d with the name of the directory and run 
> ldconfig in order to let the system know where the libraries are and 
> what they contain. Or you could save the old /usr/lib/atlas directory 
> and put the new libraries there and then run ldconfig. I also found it 
> necessary to delete the old numpy site-package before reinstalling numpy.
Here is what I do to compile atlas with full lapack, dynamically, on 
debian systems (ubuntu is the same for that matter):

    - sudo apt-get install g77 lapack3-pic lapack3-test refblas3-test
    - untar atlas, go into ATLAS directory
    - mkdir MyObj, cd MyObj (this is where the lib will be built)
    - configure the build: ../configure -Si archdef 1 -Fa alg -fPIC -C 
if g77 -Ss flapack /usr/lib/liblapack_pic.a
    - build the lib: make
    - time and test the library: make time; make test
    - build the shared library: cd lib; make shared.

Explanations:
    - lapack3-test will be handy to test the compiled atlas, and 
lapack3-pic gives you a lapack library which can be used to build a full 
shared LAPACK library using atlas.
    - archdef 1 means uses arch default, much faster - up to 10 times - 
to compile the library
    - -Fa alg -fPIC says to add -fPIC to build all objects files (needed 
for shared lib)
    - -C if g77 says to use g77 and not gfortran as the fortran 
compiler. On debian, g77 is still the default, and gfortran has a 
different ABI, meaning all kind of problems if you use gfortran for now 
on debian if you do not know what you are doing.

I strongly advise you to use the officiel lapack and blas testers 
afterwards. On debian, as they are dynamically linked to blas/lapack, 
you can choose which library to test thanks to the LD_LIBRARY_PATH trick.

cheers,

David
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to