Definition

Was ist BLAS (Basic Linear Algebra Subprograms)?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

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.

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

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Apache Spark mit Intel MKL optimiert

Schnelleres Machine Learning

Apache Spark mit Intel MKL optimiert

Cloudera kündigt eine gemeinsam mit Intel getestete Lösung an, die die Leistungsfähigkeit von maschinellem Lernen (Machine Learning, ML) und künstlicher Intelligenz (Artificial Intelligence, AI) erhöhen soll. lesen

MariaDB bei BlaBlaCar

Spider im Archiv

MariaDB bei BlaBlaCar

BlaBlaCar, die moderne Form der Mitfahrzentrale, wächst schnell. Nicht nur die Geschäftstätigkeit der Plattform weitet sich aus – auch das Volumen der vorhandenen Daten steigt rapide an. Das Unternehmen hat sich deswegen entschlossen, sein Archiv künftig auf Basis der noch jungen Speicher-Engine „Spider“ mit MariaDB zu führen. Das Ziel des Projekts: Alle historischen Daten sollen einfach durchsuchbar sein, selbst wenn sich die Tabellen der produktiven Datenbanken ändern. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45827310 / Definitionen)