Can Numpy use static libraries from LAPACK?
Note: I started a thread in StackOverflow a few days ago with this question, but I have not received any response yet (the link is: http://stackoverflow.com/questions/16093910/numpy-and-scipy-static-vs-dynami... ) The question is the following: Say that I build ATLAS with LAPACK as follows: wget http://sourceforge.net/projects/math-atlas/files/Stable/3.10.1/atlas3.10.1.t... wget http://www.netlib.org/lapack/lapack-3.4.2.tgz tar -jxvf atlas3.10.1.tar.bz2 mkdir BUILD cd BUILD ../ATLAS/configure -b 64 -Fa alg -fPIC \ --with-netlib-lapack-tarfile=../lapack-3.4.2.tgz \ --prefix=<ATLAS_INSTALL_PATH> make cd lib make shared make ptshared cd .. make install Note that I did *not *pass the flag --shared in .my call to configure. I end up with the following files under BUILD/lib: Make.inc@ Makefile the following .a files: libatlas.a libcblas.a libf77blas.a libptf77blas.a libtstatlas.a liblapack.a libf77refblas.a libptlapack.a libptcblas.a and the following .so files: libsatlas.so* libtatlas.so* Finally, if I define: BLAS=/path_to_BUILD/lib/libcblas.a LAPACK=/path_to_BUILD/lib/liblapack.a ATLAS=/path_to_BUILD/lib/libatlas.a and add /path_to_BUILD/lib to LD_LIBRARY_PATH and to the library_dirs variable within thesite.cfg file in NumPy. Would NumPy and SciPy use my libraries? (even though they all seem to be static?). Thanks, Jason
Hello Jason, the answer is yes. This is how my site.cfg on Linux look like: [DEFAULT] library_dirs = <atlas install prefix>/lib include_dirs = <atlas install prefix>/include [blas_opt] libraries = f77blas, cblas, atlas [lapack_opt] libraries = lapack, f77blas, cblas, atlas - Ilan On Sun, Apr 21, 2013 at 12:35 PM, James Jong <ribonucleico@gmail.com> wrote:
Note: I started a thread in StackOverflow a few days ago with this question, but I have not received any response yet (the link is: http://stackoverflow.com/questions/16093910/numpy-and-scipy-static-vs-dynami... )
The question is the following:
Say that I build ATLAS with LAPACK as follows:
wget http://sourceforge.net/projects/math-atlas/files/Stable/3.10.1/atlas3.10.1.t... wget http://www.netlib.org/lapack/lapack-3.4.2.tgz tar -jxvf atlas3.10.1.tar.bz2 mkdir BUILD cd BUILD ../ATLAS/configure -b 64 -Fa alg -fPIC \ --with-netlib-lapack-tarfile=../lapack-3.4.2.tgz \ --prefix=<ATLAS_INSTALL_PATH> make cd lib make shared make ptshared cd .. make install
Note that I did *not *pass the flag --shared in .my call to configure.
I end up with the following files under BUILD/lib:
Make.inc@ Makefile
the following .a files:
libatlas.a libcblas.a libf77blas.a libptf77blas.a libtstatlas.a liblapack.a libf77refblas.a libptlapack.a libptcblas.a
and the following .so files:
libsatlas.so* libtatlas.so*
Finally, if I define:
BLAS=/path_to_BUILD/lib/libcblas.a LAPACK=/path_to_BUILD/lib/liblapack.a ATLAS=/path_to_BUILD/lib/libatlas.a
and add /path_to_BUILD/lib to LD_LIBRARY_PATH and to the library_dirs variable within thesite.cfg file in NumPy.
Would NumPy and SciPy use my libraries? (even though they all seem to be static?).
Thanks,
Jason
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Thanks a lot Ilan, That's great to know. Do you know if there is any way to verify this? Perhaps seeing which specific files with their extensions are actually Numpy loads and uses? Jason On Sun, Apr 21, 2013 at 2:24 PM, Ilan Schnell <ilanschnell@gmail.com> wrote:
Hello Jason, the answer is yes. This is how my site.cfg on Linux look like:
[DEFAULT] library_dirs = <atlas install prefix>/lib include_dirs = <atlas install prefix>/include
[blas_opt] libraries = f77blas, cblas, atlas
[lapack_opt] libraries = lapack, f77blas, cblas, atlas
- Ilan
On Sun, Apr 21, 2013 at 12:35 PM, James Jong <ribonucleico@gmail.com>wrote:
Note: I started a thread in StackOverflow a few days ago with this question, but I have not received any response yet (the link is: http://stackoverflow.com/questions/16093910/numpy-and-scipy-static-vs-dynami... )
The question is the following:
Say that I build ATLAS with LAPACK as follows:
wget http://sourceforge.net/projects/math-atlas/files/Stable/3.10.1/atlas3.10.1.t... wget http://www.netlib.org/lapack/lapack-3.4.2.tgz tar -jxvf atlas3.10.1.tar.bz2 mkdir BUILD cd BUILD ../ATLAS/configure -b 64 -Fa alg -fPIC \ --with-netlib-lapack-tarfile=../lapack-3.4.2.tgz \ --prefix=<ATLAS_INSTALL_PATH> make cd lib make shared make ptshared cd .. make install
Note that I did *not *pass the flag --shared in .my call to configure.
I end up with the following files under BUILD/lib:
Make.inc@ Makefile
the following .a files:
libatlas.a libcblas.a libf77blas.a libptf77blas.a libtstatlas.a liblapack.a libf77refblas.a libptlapack.a libptcblas.a
and the following .so files:
libsatlas.so* libtatlas.so*
Finally, if I define:
BLAS=/path_to_BUILD/lib/libcblas.a LAPACK=/path_to_BUILD/lib/liblapack.a ATLAS=/path_to_BUILD/lib/libatlas.a
and add /path_to_BUILD/lib to LD_LIBRARY_PATH and to the library_dirs variable within thesite.cfg file in NumPy.
Would NumPy and SciPy use my libraries? (even though they all seem to be static?).
Thanks,
Jason
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
On Sun, Apr 21, 2013 at 7:48 PM, James Jong <ribonucleico@gmail.com> wrote:
Thanks a lot Ilan,
That's great to know. Do you know if there is any way to verify this? Perhaps seeing which specific files with their extensions are actually Numpy loads and uses?
numpy.show_config() will give you the configuration set up at build time You can't see static libraries being loaded as once linked, the static library is out of the picture. Generally, to check which libraries are linked (dynamically), you use ldd on unix, otool -L on mac and dumpbin or dependency walker on windows. David
participants (3)
-
David Cournapeau
-
Ilan Schnell
-
James Jong