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?
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",
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. 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/repov... LAPACK: http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodata/repov... 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