Difference between revisions of "LAPACK"
Weibullguy (talk | contribs) m |
Weibullguy (talk | contribs) m (→Dependencies) |
||
Line 17: | Line 17: | ||
One of the following is required to build LAPACK: | One of the following is required to build LAPACK: | ||
− | [[GCC-3.3]] built with F77 support | + | * [[GCC-3.3]] built with F77 support |
− | [[GCC]] built with gfortran support | + | * [[GCC]] built with gfortran support |
=== Optional === | === Optional === |
Revision as of 23:24, 23 February 2008
Download Source: | http://www.netlib.org/lapack/lapack-3.1.1.tgz |
---|
Contents
Introduction to LAPACK
LAPACK is a Linear Algebra PACKage that provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. LAPACK routines are written so that as much as possible of the computation is performed by calls to the BLAS.
LAPACK libraries can also be obtained from ATLAS or the microprocessor vendor's math library, such as AMD's ACML.
Project Homepage: http://www.netlib.org/lapack/
Dependencies
Required
One of the following is required to build LAPACK:
Optional
Either BLAS or ACML are recommended otherwise LAPACK will install an unoptimized version of this library.
Configuration Information
There is no configure script for LAPACK. All options are set in the make.inc file. You may wish to modify the following options.
PLAT= appends the architecture to the library name. Beneficial if building LAPACK for more than one architecture. |
OPTS= sets the options passed to the FORTRAN compiler. |
Non-Multilib
First we create a make.inc to use in our build.
cp -v make.inc.example make.inc
If you haven't built the F77 compiler provided by gcc-3.3, you need to tell LAPACK that you're using gfortran.
sed -i 's@g77@gfortran@g' make.inc
If you do not have a system BLAS library, tell LAPACK to build its own, unoptimized library:
sed -i 's@lib: lapacklib tmglib@lib: blaslib blas_testing lapacklib tmglib lapack_testing@' Makefile
If you installed the BLAS library provided by Atlas, tell LAPACK to use this library. Replace libf77blas.a with the name of your system BLAS FORTRAN library.
sed -i 's@../../blas$(PLAT).a@/usr/lib/blas/atlas/libblas.a@' make.inc
If you installed the BLAS library provided by ACML, tell LAPACK to use this library. Replace </path/to/libacml.a> in the command with the actual path to your ACML library.
sed -i 's@../../blas$(PLAT).a@</path/to/libacml.a>@' make.inc
If not using the ATLAS BLAS library, tell LAPACK to build and execute the test suite.
sed -i 's@lib: lapacklib tmglib@lib: lapacklib tmglib lapack_testing@' Makefile
Compile the LAPACK libraries:
make lib
Move the libraries to a standard location:
cp -v lapack_LINUX.a /usr/lib/liblapack.a && cp -v tmglib_LINUX.a /usr/lib/libtmg.a
Install the documentation that comes with the LAPACK library:
install -v -m755 -d /usr/share/doc/LAPACK-3.1.1/html && install -v INSTALL/lawn81.{pdf,ps} /usr/share/doc/LAPACK-3.1.1/ && for doc in html/*.html; do cp -v $doc /usr/share/doc/LAPACK-3.1.1/html done
Multilib
First we create a make.inc to use in our build.
cp -v make.inc.example make.inc
If you haven't built the F77 compiler provided by gcc-3.3, you need to tell LAPACK that you're using gfortran.
sed -i 's@g77@gfortran@g' make.inc
If you do not have a system BLAS library, tell LAPACK to build its own, unoptimized library:
sed -i 's@lib: lapacklib tmglib@lib: blaslib blas_testing lapacklib tmglib lapack_testing@' Makefile
If not using the ATLAS BLAS library, tell LAPACK to build and execute the test suite.
sed -i 's@lib: lapacklib tmglib@lib: lapacklib tmglib lapack_testing@' Makefile
32Bit
Add your build options to the make file:
sed -i 's/OPTS = -funroll-all-loops -O3/OPTS = -funroll-all-loops -O3 ${BUILD32}/' make.inc
If you installed the BLAS library provided by Atlas, tell LAPACK to use this library. Replace libf77blas.a with the name of your system BLAS FORTRAN library.
sed -i 's@../../blas$(PLAT).a@/usr/lib/blas/atlas/libblas.a@' make.inc
If you installed the BLAS library provided by ACML, tell LAPACK to use this library. Replace </path/to/libacml.a> in the command with the actual path to your ACML library.
sed -i 's@../../blas$(PLAT).a@</path/to/libacml.a>@' make.inc
Compile the LAPACK libraries:
make lib
Move the libraries to a standard location:
cp -v lapack_LINUX.a /usr/lib/liblapack.a && cp -v tmglib_LINUX.a /usr/lib/libtmg.a
N32
Add your build options to the make file:
sed -i 's/OPTS = -funroll-all-loops -O3/OPTS = -funroll-all-loops -O3 ${BUILDn32}/' make.inc
If you installed the BLAS library provided by Atlas, tell LAPACK to use this library. Replace libf77blas.a with the name of your system BLAS FORTRAN library.
sed -i 's@../../blas$(PLAT).a@/usr/lib32/blas/atlas/libblas.a@' make.inc
If you installed the BLAS library provided by ACML, tell LAPACK to use this library. Replace </path/to/libacml.a> in the command with the actual path to your ACML library.
sed -i 's@../../blas$(PLAT).a@</path/to/libacml.a>@' make.inc
Compile the LAPACK libraries:
make lib
Move the libraries to a standard location:
cp -v lapack_LINUX.a /usr/lib32/liblapack.a && cp -v tmglib_LINUX.a /usr/lib32/libtmg.a
64Bit
Add your build options to the make file:
sed -i 's/OPTS = -funroll-all-loops -O3/OPTS = -funroll-all-loops -O3 ${BUILD64}/' make.inc
If you installed the BLAS library provided by Atlas, tell LAPACK to use this library. Replace libf77blas.a with the name of your system BLAS FORTRAN library.
sed -i 's@../../blas$(PLAT).a@/usr/lib64/blas/atlas/libblas.a@' make.inc
If you installed the BLAS library provided by ACML, tell LAPACK to use this library. Replace </path/to/libacml.a> in the command with the actual path to your ACML library.
sed -i 's@../../blas$(PLAT).a@</path/to/libacml.a>@' make.inc
Compile the LAPACK libraries:
make lib
Move the libraries to a standard location:
cp -v lapack_LINUX.a /usr/lib64/liblapack.a && cp -v tmglib_LINUX.a /usr/lib64/libtmg.a
Install the documentation that comes with the LAPACK library:
install -v -m755 -d /usr/share/doc/LAPACK-3.1.1/html && install -v INSTALL/lawn81.{pdf,ps} /usr/share/doc/LAPACK-3.1.1/ && for doc in html/*.html; do cp -v $doc /usr/share/doc/LAPACK-3.1.1/html done
Contents
Installed Libraries: | liblapack.a, libtmg.a |
---|
Short Description
liblapack.a | Library containing the linear algebra functions. |
---|---|
libtmg.a | Library containg the test matrix generators used in the LAPACK test suite. |