public inbox for gentoo-science@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-science] [sage-on-gentoo]sage is now cleanly independent of ATLAS
@ 2010-07-16 11:24 François Bissey
  2010-07-17  5:10 ` François Bissey
  0 siblings, 1 reply; 2+ messages in thread
From: François Bissey @ 2010-07-16 11:24 UTC (permalink / raw
  To: gentoo-science

Hi,

I think I got the last bit of hardcoding of atlas in the building of sage.
You can now use any (c)blas you want - including ATLAS if you wish.
I know it will be a relief to some of you.

There is still a mystery about linbox detecting clapack, providing its own 
headers for it and linking with it. 
The mystery is the lack of lapack in the resulting library:

Francois



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [gentoo-science] [sage-on-gentoo]sage is now cleanly independent of ATLAS
  2010-07-16 11:24 [gentoo-science] [sage-on-gentoo]sage is now cleanly independent of ATLAS François Bissey
@ 2010-07-17  5:10 ` François Bissey
  0 siblings, 0 replies; 2+ messages in thread
From: François Bissey @ 2010-07-17  5:10 UTC (permalink / raw
  To: gentoo-science

> Hi,
> 
> I think I got the last bit of hardcoding of atlas in the building of sage.
> You can now use any (c)blas you want - including ATLAS if you wish.
> I know it will be a relief to some of you.
> 
There are a few points that should be made clear I think.

If you want everything to work properly you need to compile everything
with one set up of cblas/blas/lapack otherwise some inconsistency will
appear. Also switching implementation on the fly may not necessarilly
work. 

As an example I just switched from ATLAS to cblas=gsl, blas=goto
lapack=reference. However I had compiled everything against ATLAS.
Lets have a look at a library from numpy:
ldd /usr/lib/python2.6/site-packages/numpy/linalg/lapack_lite.so                                                         
        linux-gate.so.1 =>  (0xb781c000)
        liblapack.so.0 => /usr/lib/liblapack.so.0 (0xb727b000)
        libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0xb7121000)
        libc.so.6 => /lib/libc.so.6 (0xb6fb3000)
        libblas.so.0 => /usr/lib/blas/atlas/libblas.so.0 (0xb6f93000)
        libgfortran.so.3 => /usr/lib/gcc/i686-pc-linux-
gnu/4.4.4/libgfortran.so.3 (0xb6ecb000)
        libm.so.6 => /lib/libm.so.6 (0xb6ea4000)
        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.4.4/libgcc_s.so.1 
(0xb6e86000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6e6c000)
        libdl.so.2 => /lib/libdl.so.2 (0xb6e68000)
        libutil.so.1 => /lib/libutil.so.1 (0xb6e63000)
        /lib/ld-linux.so.2 (0xb781d000)
        libatlas.so.0 => /usr/lib/libatlas.so.0 (0xb67a4000)

As you can see atlas path seems to be hardcoded for blas. If I compile
something against this numpy library now that I have switched problems
may occur.

scipy is another case that may misbehave, we even have an atlas_version.so
library produced.
ldd /usr/lib/python2.6/site-packages/scipy/linalg/atlas_version.so
        linux-gate.so.1 =>  (0xb7726000)
        libatlas.so.0 => /usr/lib/libatlas.so.0 (0xb7039000)
        libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0xb6edf000)
        libc.so.6 => /lib/libc.so.6 (0xb6d71000)
        libm.so.6 => /lib/libm.so.6 (0xb6d4a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6d30000)
        libdl.so.2 => /lib/libdl.so.2 (0xb6d2b000)
        libutil.so.1 => /lib/libutil.so.1 (0xb6d27000)
        /lib/ld-linux.so.2 (0xb7727000)

And scipy rely on numpy too.
Anyway a recompile later with cblas from gsl:
 ldd /usr/lib/python2.6/site-packages/scipy/linalg/cblas.so 
        linux-gate.so.1 =>  (0xb784f000)
        libgslcblas.so.0 => /usr/lib/libgslcblas.so.0 (0xb77de000)
        libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0xb7684000)
        libc.so.6 => /lib/libc.so.6 (0xb7516000)
        libm.so.6 => /lib/libm.so.6 (0xb74ef000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb74d5000)
        libdl.so.2 => /lib/libdl.so.2 (0xb74d0000)
        libutil.so.1 => /lib/libutil.so.1 (0xb74cc000)
        /lib/ld-linux.so.2 (0xb7850000)

Now we link to libgslcblas directly. Stand alone it may work (or not since I 
didn't recompile numpy). Switching cblas won't affect that linking either.
But changing cblas with eselect and compiling against scipy without
recompiling it first may land you into trouble.

Francois



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-17  5:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-16 11:24 [gentoo-science] [sage-on-gentoo]sage is now cleanly independent of ATLAS François Bissey
2010-07-17  5:10 ` François Bissey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox