Hi Werner,

Thanks for replying.  A general question is whether there's any optimized LAPACK available via the opensuse YaST system.  For amd64 there's the gotoBLAS, as well as AMD's core math library.  Both may require registration so may not appropriate for the "pure" open-source version.

On 11/25/06, Werner Hoch <werner.ho@gmx.de> wrote:
Hi David,

On Saturday 25 November 2006 03:57, David Strozzi wrote:
> There's a small problem with the linear algebra library BLAS and
> LAPACK in opensuse.  These are Fortran libraries.  I (and others)
> have trouble using the libraries with SciPy (python scientific
> computing package).  The problem seems to be that different Fortran
> compilers use different symbol names for some output routines.  When
> one compiles scipy, there are some Fortran routines that get
> compiled, I think with g77 by default (maybe not).  You can compile
> and install scipy, but when you try importing it in python you get an
> error of undefined symbol _gfortran_st_write in the LAPACK library.

Can you provide a small python script that shows the bug?

Can you give some more information about your used SuSE Version and
architecture?

My system - opensuse 10.1 on an amd athlon64.  I've updated several packages.

Also, I should warn you that I've compiled python 2.5 and numpy 1.0 myself, and am not using the opensuse rpm's.  It may be that my setup is sufficiently non-standard that you shouldn't waste time on this!

As for a python example, start up python and type "from scipy import *".  This should load all the modules, functions, etc in scipy.  Here's what I get:

Python 2.5 (r25:51908, Sep 30 2006, 14:06:47)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from scipy import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.5/site-packages/scipy/signal/__init__.py", line 9, in <modu           le>
    from bsplines import *
  File "/usr/local/lib/python2.5/site-packages/scipy/signal/bsplines.py", line 3, in <modu           le>
    import scipy.special
  File "/usr/local/lib/python2.5/site-packages/scipy/special/__init__.py", line 10, in <mo           dule>
    import orthogonal
  File "/usr/local/lib/python2.5/site-packages/scipy/special/orthogonal.py", line 67, in <           module>
    from scipy.linalg import eig
  File "/usr/local/lib/python2.5/site-packages/scipy/linalg/__init__.py", line 8, in <modu           le>
    from basic import *
  File "/usr/local/lib/python2.5/site-packages/scipy/linalg/basic.py", line 17, in <module           >
    from lapack import get_lapack_funcs
  File "/usr/local/lib/python2.5/site-packages/scipy/linalg/lapack.py", line 17, in <modul           e>
    from scipy.linalg import flapack
ImportError: /usr/lib64/libblas.so.3: undefined symbol: _gfortran_st_write
>>>

> I have the most recent blas and lapack opensuse builds (940).  The
> official suse-type webpage I got these from say they were compiled
> with egcs, which is a. wrong (egcs merged back into gcc a long time
> ago) and b. ill-defined (since g77 and gfortran are both part of
> gcc).

Which package exactly are you using? One of those:
http://software.opensuse.org/download/science/SUSE_Linux_10.1/x86_64/

BLAS:
http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodata/repoview/blas-0-3.0-940.1.html

LAPACK:
http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodata/repoview/lapack-0-3.0-940.1.html

I dl'ed the rpm's, used createrepo, and then installed locally via yast.

> As you search the web, you see that it's part of the lore that
> "Suse's BLAS is buggy, you have to compile yourself."  Not good for
> Suse!

Please provide URL's it's much easier to track them.

Here's one example, google can provide more:

http://article.gmane.org/gmane.comp.python.scientific.user/9665

> While I'm on it, it's not clear what implementation of BLAS opensuse
> uses. My guess is it's the reference implementation from lapack's
> page on netlib, which is not optimized.  Better ones exist, like
> gotoBLAS.  Maybe that can be made a suse package?

http://www.tacc.utexas.edu/resources/software/#blas
The package is not accessable from that page without login. Is there a
public place to get it?

I don't know of one.  The page you give is the right place to go to download.  Seems academic users can d/l the source free, but commercial people should contact someone.  Don't know where opensuse falls; maybe we can ask.

> At the least it would help if it were spelled out exactly which
> Fortran compiler was used to make opensuse's blas.  If they can be
> compiled to allow multiple Fortran compilers to play nicely with
> them, even better.

??


On the BLAS URL listed above, could you say whether you used g77 or gfortran to compile?  If I then use the same when compiling scipy myself, maybe all will be well.

Thanks,
David