Mailinglist Archive: opensuse-buildservice (253 mails)

< Previous Next >
Re: [opensuse-buildservice] Problem with BLAS / LAPACK libraries
  • From: "David Strozzi" <david.strozzi@xxxxxxxxx>
  • Date: Sat, 25 Nov 2006 13:56:43 -0800
  • Message-id: <f21763420611251356j3549b0cerb317f772110b8e43@xxxxxxxxxxxxxx>
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@xxxxxx> 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
< Previous Next >
Follow Ups