Zum Inhalt springen

External Memory Algorithmus

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Juli 2019 um 15:59 Uhr durch Raphinesse (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Diese Baustelle befindet sich fälschlicherweise im Artikelnamensraum. Bitte verschiebe die Seite oder entferne den Baustein {{Baustelle}}.

Ein External Memory Model ermöglicht das Analysieren von Algorithmen die Datenmengen verarbeiten, welche die Kapazität des Hauptspeichers des ausführenden Rechners übersteigen. Da die Zugriffszeit auf langsame Massenspeicher wie Festplatten oder Netzwerkspeicher die Zeit für Hauptspeicher- Cache- oder Registerzugriffe sowie Operationen der ALU um mehrere Größenordnungen dominiert, ist in diesem Fall für die Zeitkomplexität eines Algorithmus die Anzahl der I/O-Operationen auf diese langsamen Massenspeicher maßgeblich.

Visualisierung des Idealized Cache Modells.
Das Parallel Disk Model, hier mit . Cache hat eine Größe von Speicherworten, der Hauptspeicher ist unbegrenzt. Datentransfer zwischen beiden findet immer in Blöcken der Größe statt.

Das Parallel Disk Model, hier mit .

Analyse im Parallel Disk Model (PDM)

Das häufig verwendete Parallel Disk Model wurde von 1994 von Vitter und Shriver eingeführt.[1] Es modelliert die wichtigsten Eigenschaften von magnetischen Festplatten und Systemen mit mehreren parallel angebundenen Festplatten. Wir betrachten hier die Version mit nur einem Prozessor. Für Systeme mit beliebiger Anzahl Prozessoren siehe [2].

Definition

Das Modell besteht aus einem internen Speicher welcher Datenelemente fasst sowie einem unbegrenzten externen Speicher welcher aus parallelen Festplatten besteht. Jede dieser Festplatten kann während einem gemeinsamen I/O-Schritt Datenelemente in den internen Speicher schreiben oder aus ihm lesen. Die Problemgröße wird mit Datenelementen beziffert. Desweiteren soll gelten sowie .

online vs batched

Fundamentale Operationen

Laufzeitschranken

Techniken

Ausgewählte Algorithmen

Abgrenzung zum cache-oblivious Modell

Motivation

Klassischerweise wird die Laufzeit von Algorithmen in Berechnungsmodellen ohne Speicherhierarchie analysiert. In diesen Modellen verursacht ein Speicherzugriff konstante Kosten, genau wie die Ausführung arithmetischer Befehle. Desweiteren sind die Kosten eines Speicherzugriffs unabhängig von der Adresse auf die zugegriffen wird, sowie von vorangegangenen Zugriffen.

Diese Annahmen sind vereinfachend und entsprechen nicht der Realität. Einerseits unterscheiden sich die Zugriffszeiten zwischen zwei Ebenen der Speicherhierarchie für gewöhnlich um Größenordnungen. Andererseits führen Caches sowie die Funktionsweise von Festplatten dazu, dass der Zugriff auf mehrere aufeinander folgende Adressen üblicherweise schneller ist, als der Zugriff auf zufällige Adressen.

An der Grenze zwischen Haupt- und Massenspeicher ist dieser Effekt besonders stark (BELEG + Werte).

Anwendung

Geschichte

Siehe auch

Einzelnachweise

  1. J. S. Vitter, E. A. M. Shriver: Algorithms for parallel memory, I: Two-level memories. In: Algorithmica. Band 12, Nr. 2-3, 1994-9, ISSN 0178-4617, S. 110–147, doi:10.1007/BF01185207 (springer.com [abgerufen am 26. Juli 2019]).
  2. Jeffrey Scott Vitter: Algorithms and Data Structures for External Memory. In: Foundations and Trends® in Theoretical Computer Science. Band 2, Nr. 4, 2006, ISSN 1551-305X, S. 305–474, doi:10.1561/0400000014 (nowpublishers.com [abgerufen am 26. Juli 2019]).