ATLAS Libary at the ITP Opteron Cluster
Description Setting up the environment Usage Documentation |
Description
ATLAS (Automatically Tuned Linear Algebra Software) is an efficient implementation of the full BLAS (Basic Linear Algebra Subprograms) und a few LAPACK (Linear Algebra PACKage) routines. ATLAS provides an ANSI C and Fortran 77 interface to these routines.
ATLAS natively provides only a relative handful of the routines which comprise LAPACK. However, ATLAS is designed so that its routines can easily be added to Netlib's standard LAPACK in order to get a full LAPACK library. The steps to get a full FORTRAN77 API LAPACK which uses ATLAS's improved routines when possible, and the standard netlib routines when not, are implemented in the present installation of ATLAS Library at the ITP Cluster.
Setting up the environment
Put the following line below at the command line or for the global definitions in your ".bashrc" file:
module load atlas/3.8.2
Usage
Installed version: | atlas 3.8.2 AMD64K10h64SSE3 | |
ATLAS is available as (static libraries): | liblapack.a | This is the unoptimized LAPACK library /opt/lapack/3.2/lib/libflapack.a with the LAPACK routines provided by ATLAS |
libcblas.a | The ANSI C interface to the BLAS | |
libf77blas.a | The Fortran77 interface to the BLAS | |
libptcblas.a | The ANSI C interface to the threaded (SMP) BLAS | |
libptf77blas.a | The Fortran77 interface to the threaded (SMP) BLAS | |
libatlas.a | The main ATLAS library, providing low-level routines for all interface libs | |
ATLAS is available as (dynamic/shared libraries): | liblapack.so | This is the unoptimized LAPACK library /opt/lapack/3.2/lib/libflapack.a with the LAPACK routines provided by ATLAS |
libcblas.so | The ANSI C interface to the BLAS | |
libf77blas.so | The Fortran77 interface to the BLAS | |
libptcblas.so | The ANSI C interface to the threaded (SMP) BLAS | |
libptf77blas.so | The Fortran77 interface to the threaded (SMP) BLAS | |
libatlas.so | The main ATLAS library, providing low-level routines for all interface libs | |
You can find the libraries in directory: | /opt/atlas/3.8.2/lib |
If you have missing symbols on link, make sure you are linking in all of the libraries you need, and remember that order is significant. For instance, a code calling the Fortran77 interface to the BLAS would need:
-L/opt/atlas/3.8.2/lib -lf77blas -latlas
The full LAPACK library created by merging ATLAS and netlib LAPACK requires both C and Fortran77 interfaces, and thus that link line would be:
-L/opt/atlas/3.8.2/lib -llapack -lf77blas -lcblas -latlas
If you wish to use threaded BLAS, you simply indicate those interface libs rather than the sequential. The above line for SMP would be:-L/opt/atlas/3.8.2/lib -llapack -lptf77blas -lptcblas -latlas