[opensuse-buildservice] Problem with BLAS / LAPACK libraries
Hi, 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. 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). 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! 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? 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. Cheers, David
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?
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/
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.
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?
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.
?? Regards Werner --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
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
Hi David, On Saturday 25 November 2006 22:56, David Strozzi wrote:
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.
I think there are no optimised packages there. Only on the wishlist ;-) http://en.opensuse.org/Wishlist_Science
On 11/25/06, Werner Hoch <werner.ho@gmx.de> wrote:
On Saturday 25 November 2006 03:57, David Strozzi wrote:
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.
I've the same here.
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
Got a similar result with the same commandline here. I'm usually only using pylab from matplotlib.
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_6 4/
BLAS: http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodat a/repoview/blas-0-3.0-940.1.html
LAPACK: http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodat a/repoview/lapack-0-3.0-940.1.html
I dl'ed the rpm's, used createrepo, and then installed locally via yast.
Ok. I've build some new packages in my home zone in the build service: http://software.opensuse.org/download/home:/werner2101/SUSE_Linux_10.1/x86_6... I've copied the complete package from Fedora Core 6 and recompiled it. They included two additional patches with some missing functions. After installing them I was able to include the python libs with from scipy import * and do some matrix manipulations and small calculations.
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
Thanks.
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?
Yes it's the netlib package. It's mentioned in the spec file of the rpm.
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.
Ok. I think we should ask, what's the licence for it.
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.
Ah, yes. The package description is wrong, it will be fixed with the new one. David, can you please test the new packages, too. I'll move them to the science repo as soon as I get some positive feedback. A slow implementation of blas is better than a broken one. Regards Werner --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi Werner et al, Sorry for having left this thread for a while. I'm revisiting blas / lapack / numpy / scipy. I installed the new rpm's you made of blas and lapack, based on fedora core 6. No problems in yast. They seem to work fine, in that I can compile numpy 1.0.1 from source. It finds the libs and is happy, once I tell it to look in /lib64. However, before moving on to the full scipy, I'd like to build numpy with gfortran. By default it uses g77.
From what I can gather, people seem to think gcc 4, or at least gfortran, isn't too stable yet. Again, this is just an impression from various websites.
So I'm going to find out how to build numpy w/ gfortran, and then build scipy w/ gfortran too. If anyone knows how to do this, please let me know. Best, David On 11/25/06, Werner Hoch <werner.ho@gmx.de> wrote:
Hi David,
On Saturday 25 November 2006 22:56, David Strozzi wrote:
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.
I think there are no optimised packages there. Only on the wishlist ;-) http://en.opensuse.org/Wishlist_Science
On 11/25/06, Werner Hoch <werner.ho@gmx.de> wrote:
On Saturday 25 November 2006 03:57, David Strozzi wrote:
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.
I've the same here.
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
Got a similar result with the same commandline here. I'm usually only using pylab from matplotlib.
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_6 4/
BLAS: http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodat a/repoview/blas-0-3.0-940.1.html
LAPACK: http://software.opensuse.org/download/science/SUSE_Linux_10.1/repodat a/repoview/lapack-0-3.0-940.1.html
I dl'ed the rpm's, used createrepo, and then installed locally via yast.
Ok. I've build some new packages in my home zone in the build service:
http://software.opensuse.org/download/home:/werner2101/SUSE_Linux_10.1/x86_6...
I've copied the complete package from Fedora Core 6 and recompiled it. They included two additional patches with some missing functions.
After installing them I was able to include the python libs with from scipy import * and do some matrix manipulations and small calculations.
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
Thanks.
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?
Yes it's the netlib package. It's mentioned in the spec file of the rpm.
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.
Ok. I think we should ask, what's the licence for it.
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.
Ah, yes. The package description is wrong, it will be fixed with the new one.
David, can you please test the new packages, too. I'll move them to the science repo as soon as I get some positive feedback. A slow implementation of blas is better than a broken one.
Regards Werner --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (2)
-
David Strozzi
-
Werner Hoch