Zum Inhalt springen

„Basic Linear Algebra Subprograms“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
hinzufügen von GOTO BLAS referenzen und weblinks als auch das becnhmark refernzen für den term "hochoptimiert"
K Änderungen von 141.52.232.84 (Diskussion) rückgängig gemacht und letzte Version von Supermartl wiederhergestellt
Zeile 1: Zeile 1:
{{Dieser Artikel|befasst sich mit Basic Linear Algebra Subprograms, für weitere Bedeutungen von „Blas“ siehe [[Blas (Begriffsklärung)]].}}
{{Dieser Artikel|befasst sich mit Basic Linear Algebra Subprograms, für weitere Bedeutungen von „Blas“ siehe [[Blas (Begriffsklärung)]].}}


'''Basic Linear Algebra Subprograms''' (BLAS) bezeichnet eine [[Softwarebibliothek]], die elementare Operationen der [[Lineare Algebra|linearen Algebra]] wie [[Vektor]]- und [[Matrix (Mathematik)|Matrixmultiplikationen]] implementiert. Es gibt eine Vielzahl von Implementierungen in verschiedenen Sprachen bzw. für verschiedene Architekturen und Plattformen. Der Vorteil von BLAS liegt nicht nur in der Wiederverwendbarkeit und der Arbeitserleichterung für den Programmierer, sondern auch in der Möglichkeit für Hardwarehersteller für diese häufig gebrauchten Subroutinen hochoptimierte, zum Teil in [[Assembler (Informatik)|Assembler]] realisierte Implementierungen bereitzustellen <ref name="bench">{{cite web|url=http://eigen.tuxfamily.org/index.php?title=Benchmark-August2008 |title=BLAS Benchmark-August2008 |publisher=eigen.tuxfamily.org |date=2008-08-01 |accessdate=2010-03-04}}</ref>. Daher findet BLAS vor allem im Supercomputing-Bereich breite Verwendung.
'''Basic Linear Algebra Subprograms''' (BLAS) bezeichnet eine [[Softwarebibliothek]], die elementare Operationen der [[Lineare Algebra|linearen Algebra]] wie [[Vektor]]- und [[Matrix (Mathematik)|Matrixmultiplikationen]] implementiert. Es gibt eine Vielzahl von Implementierungen in verschiedenen Sprachen bzw. für verschiedene Architekturen und Plattformen. Der Vorteil von BLAS liegt nicht nur in der Wiederverwendbarkeit und der Arbeitserleichterung für den Programmierer, sondern auch in der Möglichkeit für Hardwarehersteller für diese häufig gebrauchten Subroutinen hochoptimierte, zum Teil in [[Assembler (Informatik)|Assembler]] realisierte Implementierungen bereitzustellen. Daher findet BLAS vor allem im Supercomputing-Bereich breite Verwendung.


Die Definition der Schnittstelle zu BLAS ist ein De-facto-Standard.
Die Definition der Schnittstelle zu BLAS ist ein De-facto-Standard.
Zeile 34: Zeile 34:
;ATLAS: [[Automatically Tuned Linear Algebra Software]], ein [[Open Source|Open-Source]]-Implementierung der BLAS-[[Programmierschnittstelle|APIs]] für [[C (Programmiersprache)|C]] und [[Fortran|Fortran 77]].
;ATLAS: [[Automatically Tuned Linear Algebra Software]], ein [[Open Source|Open-Source]]-Implementierung der BLAS-[[Programmierschnittstelle|APIs]] für [[C (Programmiersprache)|C]] und [[Fortran|Fortran 77]].
;ESSL: [[IBM]]s Engineering and Scientific Subroutine Library, für die [[PowerPC]] Architektur unter [[AIX]] und [[Linux]].
;ESSL: [[IBM]]s Engineering and Scientific Subroutine Library, für die [[PowerPC]] Architektur unter [[AIX]] und [[Linux]].
;Goto BLAS: [[Kazushige Goto]]s BLAS-Implementierung.
;Goto BLAS: [[Kazushige Goto]]s BLAS-Implementierung <ref name="goto">{{cite web|url=http://www.nytimes.com/2005/11/28/technology/28super.html?_r=1 |title=Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips (englisch) |publisher=New York Times, John Markoff |date=2005-11-28 |accessdate=2010-03-04}}</ref>.
;HP MLIB: [[Hewlett-Packard|HP]]s Math library, für die Architekturen [[Itanium]], [[PA-RISC]], [[x86]] und [[Opteron]] unter [[HPUX]] und [[Linux]].
;HP MLIB: [[Hewlett-Packard|HP]]s Math library, für die Architekturen [[Itanium]], [[PA-RISC]], [[x86]] und [[Opteron]] unter [[HPUX]] und [[Linux]].
;IMKL: [[Intel]] Math Kernel Library, für Intel [[Pentium]] und [[Itanium]] CPUs unter [[Linux]] und [[Microsoft Windows|Windows]].
;IMKL: [[Intel]] Math Kernel Library, für Intel [[Pentium]] und [[Itanium]] CPUs unter [[Linux]] und [[Microsoft Windows|Windows]].
Zeile 40: Zeile 40:
;uBLAS: Eine generische [[C++]]-Klassenbibliothek, welche BLAS-Funktionalität bereitstellt, Teil der [[Boost (C++-Bibliothek)|Boost]]-Bibliothek.
;uBLAS: Eine generische [[C++]]-Klassenbibliothek, welche BLAS-Funktionalität bereitstellt, Teil der [[Boost (C++-Bibliothek)|Boost]]-Bibliothek.
;CUBLAS: Die [[nVidia]]-Implementierung von BLAS für die [[CUDA]]-Technologie.
;CUBLAS: Die [[nVidia]]-Implementierung von BLAS für die [[CUDA]]-Technologie.

== Referenzen ==
<references />


== Weblinks ==
== Weblinks ==
* [http://www.netlib.org/blas/ Referenz BLAS-Website]
* [http://www.netlib.org/blas/ BLAS-Website]
* [http://www.tacc.utexas.edu/tacc-projects/#blas GOTO BLAS] Implementierung der [[University of Texas at Austin]]
* [http://math-atlas.sourceforge.net BLAS-Implementierung Automatically Tuned Linear Algebra Software (ATLAS)]
* [http://math-atlas.sourceforge.net BLAS-Implementierung Automatically Tuned Linear Algebra Software (ATLAS)]



Version vom 23. März 2010, 06:38 Uhr

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 bzw. für verschiedene Architekturen und Plattformen. Der Vorteil von BLAS liegt nicht nur in der Wiederverwendbarkeit und der Arbeitserleichterung für den Programmierer, sondern auch in der Möglichkeit für Hardwarehersteller für diese häufig gebrauchten Subroutinen hochoptimierte, zum Teil in Assembler realisierte Implementierungen bereitzustellen. Daher findet BLAS vor allem im Supercomputing-Bereich breite Verwendung.

Die Definition der Schnittstelle zu BLAS ist ein De-facto-Standard.

Funktionalität

Die Funktionalität von BLAS wird in drei Stufen (Level) unterteilt.

Level 1

Level 1 enthält Vektor-Rechenoperationen der Form

sowie unter anderem Skalarprodukt und Vektornormen.

Level 2

Level 2 enthält Vektor-Matrix-Rechenoperationen der Form

sowie unter anderem das Lösen von nach x mit Matrix in Dreiecksform.

Level 3

Level 3 enthält Matrix-Rechenoperationen der Form

sowie unter anderem das Lösen von für Matrix in Dreiecksform. Dieser Level enthält die oft benötigte Matrixmultiplikation.

Implementierung

refblas
Offizielle Referenzimplementierung von netlib. C- und Fortran-77-Versionen sind verfügbar.
ACML
AMD Core Math Library, für AMD Athlon und Opteron CPUs unter Linux und Windows.
ATLAS
Automatically Tuned Linear Algebra Software, ein Open-Source-Implementierung der BLAS-APIs für C und Fortran 77.
ESSL
IBMs Engineering and Scientific Subroutine Library, für die PowerPC Architektur unter AIX und Linux.
Goto BLAS
Kazushige Gotos BLAS-Implementierung.
HP MLIB
HPs Math library, für die Architekturen Itanium, PA-RISC, x86 und Opteron unter HPUX und Linux.
IMKL
Intel Math Kernel Library, für Intel Pentium und Itanium CPUs unter Linux und Windows.
MTL4
Die Matrix Template Library Version 4 ist eine generische C++ Template-Bibliothek für schwach und voll besetzte BLAS-Funktionalität. MTL4 bietet ein intuitives Interface (ähnlich MATLAB) und dank Generischer Programmierung eine breite Anwendbarkeit.
uBLAS
Eine generische C++-Klassenbibliothek, welche BLAS-Funktionalität bereitstellt, Teil der Boost-Bibliothek.
CUBLAS
Die nVidia-Implementierung von BLAS für die CUDA-Technologie.