Definition Was ist BLAS (Basic Linear Algebra Subprograms)?
Die Basic Linear Algebra Subprograms stellen grundlegende mathematische Operationen der linearen Algebra in Form einer Bibliothek bereit. Dazu zählen beispielsweise Matrix- und Vektor-Operationen. BLAS ist in zahlreichen Implementierungen für unterschiedliche Hardware-Architekturen und Plattformen verfügbar.
Anbieter zum Thema

Die Abkürzung BLAS steht für Basic Linear Algebra Subprograms. Es handelt sich um eine Bibliothek, die grundlegende Operationen der linearen Algebra bereitstellt. Das sind beispielsweise die Vektor-Addition oder Matrix-Multiplikation. In eigene Programme eingebunden, sorgen die Basic Linear Algebra Subprograms für eine performante Ausführung der unterstützten mathematischen Funktionen. BLAS ist eine allgemeine Spezifikation, die nicht für eine bestimmte Plattform oder Hardware-Architektur optimiert ist. Es existieren jedoch zahlreiche Implementierungen von BLAS für verschiedene Hardwaresysteme und Plattformen, die mit diesen Systemen besonders effizient und schnell zusammenarbeiten. Eine dieser Implementierungen ist beispielsweise cuBLAS für Nvidia-Grafikprozessoren (GPUs).
BLAS wurde bereits 1979 als Fortran-Bibliothek entwickelt, enthielt aber noch nicht alle heutigen Operationen. Die BLAS-Schnittstelle wurde vom BLAS Technical Forum standardisiert. Mit den Möglichkeiten und Funktionen neuer Prozessorgenerationen erweiterte sich der Umfang an BLAS-Operationen. In den 1980er-Jahren kamen die linearen Operationen der Level zwei und drei hinzu. Die Schnittstelle zu den BLAS-Funktionen hat sich als eine Art Standardschnittstelle für numerische Programme etabliert. Zahlreiche mathematische Programme und Bibliotheken wie MATLAB, Mathematica oder NumPy verwenden BLAS-kompatible Bibliotheken.
Viele Anwendungen des Big-Data- und Supercomputing-Umfelds, des Machine Learnings und der Künstlichen Intelligenz (KI) setzen im Hintergrund die mathematischen Operationen der Basic Linear Algebra Subprograms ein. Das in Fortran geschriebene Referenz-BLAS ist ein frei verfügbares Software-Paket, das bei netlib heruntergeladen werden kann. Es handelt sich um Fortran-Quallcodedateien, aus denen sich eine Bibliothek erzeugen lässt.
Zielsetzung der Basic Linear Algebra Subprograms
In der Programmierung ist es üblich, für mathematische Aufgabenstellungen und Operationen auf Bibliotheken zurückzugreifen. Sie stellen die benötigten Funktionen in Form von Subroutinen bereit, die für die jeweilige Aufgabe optimiert sind. Für Programmierer ergibt sich der Vorteil, dass sie sich nicht immer wieder um Lösungen für gleiche mathematische Aufgabenstellungen kümmern müssen, sondern effizient arbeitende, optimierte Funktionen über standardisierte Schnittstellen ansprechen können. Entwickler haben dadurch mehr Zeit, sich auf die Lösung ihrer eigentlichen Aufgabenstellung zur Erstellung der Anwendung zu konzentrieren.
Viele der Bibliotheken für mathematische Operationen sind in Fortran geschrieben. Fortran ist eine objektorientierte Programmiersprache, die sehr beliebt für Berechnungen in den Bereichen Wissenschaft, Forschung und Technik ist. BLAS stellt Vektor- und Matrixoperationen in Form einer Bibliothek bereit. Die BLAS-Standard-Implementierung ist in Fortran geschrieben.
Die drei Stufen von BLAS
Die verschiedenen Funktionen von BLAS lassen sich in drei Gruppen von Routinen unterteilen. Es handelt sich um die BLAS-Level eins bis drei. Ausgehend von den Funktionen des Level eins, kamen in chronologischer Reihenfolge in den 1980er Jahren die Level zwei und drei hinzu. Mit steigendem Level steigt die Komplexität der bereitgestellten Operationen. Aktuelle BLAS-Implementierungen beinhalten in der Regel die mathematischen Funktionen aller drei Level. Von den Basic Linear Algebra Subprograms unterstützte Datentypen sind Single, Double und Double Complex. Die Rechenoperationen der drei BLAS-Level sind:
- Level 1: Rechenoperationen für Vektor-Vektor-Operationen wie die Vektor-Addition oder Skalarprodukte
- Level 2: Rechenoperationen für Matrix-Vektor-Operationen wie die Matrix-Vektor-Multiplikation
- Level 3: Rechenoperationen für Matrix-Matrix-Operationen wie die Matrizen-Multplikation
Implementierungen von BLAS
Für die verschiedenen Plattformen, Hardware-Architekturen und Entwicklungsumgebungen existieren zahlreiche Implementierungen der Basic Linear Algebra Subprograms. Im Folgenden nur ein kurzer Überblick über einige verfügbare BLAS-Implementierungen:
- Accelerate: Framework von Apple für die Betriebssysteme iOS und macOS
- ACML: mathematische Bibliothek für AMD-Athlon- und AMD-Opteron-Prozessoren unter Windows und Linux
- cuBLAS: BLAS-Implementierung für NVIDIA-Grafikprozessoren und die CUDA-Technologie
- HP MLIB: mathematische Bibliothek von Hewlett Packard für die Hardware-Plattformen Itanium, PA-RISC, x86 und Opteron
- IMKL (Intel Math Kernel Library): mathematische Bibliothek für Prozessoren von Intel unter Windows, Linux und macOS
- LAMA (Library for Accelerated Math Applications): in C++ geschriebene Bibliothek für Systeme mit verteiltem Speicher
(ID:45827310)