Basic Linear Algebra Subprograms

Basic Linear Algebra Subprograms

Basic Linear Algebra Subprograms (BLAS) is a de facto application programming interface standard for publishing libraries to perform basic linear algebra operations such as vector and matrix multiplication. They were first published in 1979, and are used to build larger packages such as LAPACK. Heavily used in high-performance computing, highly optimized implementations of the BLAS interface have been developed by hardware vendors such as by Intel as well as by other authors (e.g. ATLAS is a portable self-optimizing BLAS). The LINPACK benchmark relies heavily on DGEMM, a BLAS subroutine, for its performance.

Functionality

The BLAS functionality is divided into three levels: 1, 2 and 3.

Level 1

This level contains "vector operations" of the form

:oldsymbol{y} leftarrow alpha oldsymbol{x} + oldsymbol{y} !

as well as scalar dot products and vector norms, among other things.

Level 2

This level contains "matrix-vector operations" of the form

:oldsymbol{y} leftarrow alpha A oldsymbol{x} + eta oldsymbol{y} !

as well as solving T oldsymbol{x} = oldsymbol{y} for x with T being triangular, among other things.

Level 3

This level contains "matrix-matrix operations" of the form

:C leftarrow alpha A B + eta C !

as well as solving B leftarrow alpha T^{-1} B for triangular matrices T, among other things. This level contains the widely used General Matrix Multiply operation.

Implementations

;refblas: The official reference implementation from netlib. C and Fortran 77 versions are available. [http://www.netlib.org/blas/] ;Accelerate: Apple Computer's framework for Mac OS X, which includes tuned versions of BLAS and LAPACK for both PowerPC and Intel Core processors. [http://developer.apple.com/releasenotes/Performance/RN-vecLib/] ;ACML: The AMD Core Math Library, supporting the AMD Athlon and Opteron CPUs under Linux and Windows. [http://developer.amd.com/acml.aspx] ;ATLAS: Automatically Tuned Linear Algebra Software, an open source implementation of BLAS APIs for C and Fortran 77. [http://math-atlas.sourceforge.net/] ;CUDA SDK: The NVIDIA CUDA SDK includes BLAS functionality for writing C programs that runs on GeForce 8 Series graphics cards.;ESSL: IBM's Engineering and Scientific Subroutine Library, supporting the PowerPC architecture under AIX and Linux. [http://publib.boulder.ibm.com/infocenter/clresctr/index.jsp?topic=/com.ibm.cluster.essl.doc/esslbooks.html] ;Goto BLAS: Kazushige Goto's implementation of BLAS. [http://www.tacc.utexas.edu/resources/software/#blas] ;HP MLIB: HP's Math library, supporting IA-64, PA-RISC, x86 and Opteron architecture under HPUX and Linux.;Intel MKL: The Intel Math Kernel Library, supporting the Intel Pentium and Itanium CPUs under Linux, Windows and Mac OS X. [http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/] ;MathKeisan: NEC's math library, supporting NEC SX architecture under SUPER-UX, and Itanium under Linux. [http://www.mathkeisan.com/] ;PDLIB/SX: NEC's Public Domain Mathematical Library for the NEC SX-4 system. [http://www.nec.co.jp/hpc/mediator/sxm_e/software/61.html] ;SCSL: SGI's Scientific Computing Software Library contains BLAS and LAPACK implementations for SGI's Irix workstations. [http://www.sgi.com/products/software/scsl.html] ;Sun Performance Linaray: Optimized BLAS and LAPACK for SPARC and AMD64 architectures under Solaris 8, 9, and 10. [http://developers.sun.com/prodtech/cc/perflib_index.html] ;uBLAS: A generic C++ template class library providing BLAS functionality. Part of the Boost library. Note that, unlike other implementations, uBLAS focuses on correctness of the algorithms using advanced C++ features, rather than high performance. [http://www.boost.org/doc/libs/1_35_0/libs/numeric/ublas/doc/index.htm] ;GSL: The GNU Scientific Library Contains a multi-platform implementation in C which is distributed under the GNU General Public License.

The Sparse BLAS

Sparse extensions to the previously dense BLAS exist such as in ACML

ee also

*Numerical linear algebra, the type of problem BLAS solves
*LAPACK, the Linear Algebra Package

External links

* [http://www.netlib.org/blas/ BLAS homepage] on Netlib.org
* [http://www.netlib.org/blas/faq.html BLAS FAQ]
* [http://www.gnu.org/software/gsl/manual/html_node/BLAS-Support.html BLAS operations] from the GNU Scientific Library reference manual
* [http://www.netlib.org/lapack/lug/node145.html BLAS Quick Reference Guide] from LAPACK Users' Guide
* [http://history.siam.org/oralhistories/lawson.htm Lawson Oral History] One of the original authors of the BLAS discusses its creation in an oral history interview. Charles L. Lawson Oral history interview by Thomas Haigh, 6 and 7 November, 2004, San Clemente, California. Society for Industrial and Applied Mathematics, Philadelphia, PA.
* [http://history.siam.org/oralhistories/dongarra.htm Dongarra Oral History] In an oral history interview, Jack Dongarra explores the early relationship of BLAS to LINPACK, the creation of higher level BLAS versions for new architectures, and his later work on the ATLAS system to automatically optimize BLAS for particular machines. Jack Dongarra, Oral history interview by Thomas Haigh, 26 April, 2005, University of Tennessee, Knoxville TN. Society for Industrial and Applied Mathematics, Philadelphia, PA

* An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the BLAS Technical Forum doi-inline|10.1145/567806.567810


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Basic Linear Algebra Subprograms — (BLAS) sont un ensemble de fonctions standardisées (interface de programmation) réalisant des opérations de base de l algèbre linéaire comme des multiplications de vecteurs ou de matrices. Ces fonctions ont d abord été publiées en 1979 et sont… …   Wikipédia en Français

  • Basic Linear Algebra Subprograms — BLAS Betriebssystem plattformunabhängig Kategorie Programmbibliothek für: Lineare Algebra www.netlib.org/blas Basic Linear Algebra Subprograms (BLAS) bezeichnet eine Softwareb …   Deutsch Wikipedia

  • Basic Linear Algebra Subprograms — BLAS (англ. Basic Linear Algebra Subprograms  базовые подпрограммы линейной алгебры)  стандарт де факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как… …   Википедия

  • Linear Algebra Package — Sommaire 1 Objectifs 2 Résolution du problème avec les processeurs multi cœurs 3 Voir aussi 4 Liens externes LAPACK (pour Linear Alge …   Wikipédia en Français

  • Automatically Tuned Linear Algebra Software — ATLAS Aktuelle Version 3.8.4 (14. Mai 2011) Aktuelle Vorabversion 3.9.53 (12. Oktober 2011) Betriebssystem POSIX Programmier­sprache C, Fortran …   Deutsch Wikipedia

  • Atlas (Computersoftware Lineare Algebra) — Automatically Tuned Linear Algebra Software (ATLAS) ist eine Unterprogrammbibliothek für Lineare Algebra. ATLAS ist eine Open Source Implementierung von Basic Linear Algebra Subprograms (BLAS) und von Teilen von LAPACK für C und für Fortran. Es… …   Deutsch Wikipedia

  • BLAS — Basic Linear Algebra Subprograms Basic Linear Algebra Subprograms (BLAS) sont un ensemble de fonctions standardisées (interface de programmation) réalisant des opérations de base de l algèbre linéaire comme des multiplications de vecteurs ou de… …   Wikipédia en Français

  • BLAS — Basic Linear Algebra Subprograms (BLAS) bezeichnet eine Softwarebibliothek, die elementare Operationen der linearen Algebra wie Vektor und Matrixmultiplikationen implementiert. Es gibt eine Vielzahl von Implementierungen in verschiedenen Sprachen …   Deutsch Wikipedia

  • LAPACK — Linear Algebra Package LAPACK (pour Linear Algebra PACKage) est une bibliothèque logicielle dédiée à la simulation numérique écrite en Fortran 77. Cette bibliothèque fournit des fonctions pour la résolution de systèmes d équations linéaires et la …   Wikipédia en Français

  • Lapack — Linear Algebra Package LAPACK (pour Linear Algebra PACKage) est une bibliothèque logicielle dédiée à la simulation numérique écrite en Fortran 77. Cette bibliothèque fournit des fonctions pour la résolution de systèmes d équations linéaires et la …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”