Externer Speicheralgorithmus

Im Computer, externe Speicheralgorithmen oder Out-of-Core-Algorithmen sind Algorithmen die darauf ausgelegt sind, Daten zu verarbeiten, die zu groß sind, um in das Computer zu passen Haupterinnerung auf einmal. Solche Algorithmen müssen optimiert werden, um Daten effizient abzurufen und auf Daten zuzugreifen, die in langsamem Massenspeicher gespeichert sind (Speicher (Hilfsspeicher) wie zum Beispiel Festplatte oder Klebebandfahrten, oder wenn die Erinnerung auf a ist Computernetzwerk.[1][2] Externe Speicheralgorithmen werden in der analysiert externes Speichermodell.

Modell

Der Cache links hält Größe der Größe jeweils für insgesamt M Objekte. Das externe Gedächtnis rechts ist unbegrenzt.

Externe Speicheralgorithmen werden in einem idealisierten Analyse analysiert Berechnungsmodell das externe Speichermodell genannt (oder E/A -Modell, oder Datenträgerzugriffsmodell). Das externe Speichermodell ist ein abstrakte Maschine ähnlich wie RAM -Maschinenmodell, aber mit einem Zwischenspeicher zusätzlich zu Haupterinnerung. Das Modell erfasst die Tatsache, dass das Lesen und Schreiben von Operationen in a viel schneller ist Zwischenspeicher als in Haupterinnerung, und das lesen Lange zusammenhängende Blöcke sind schneller als zufällig mit a Scheibenlesen und Schreiben. Das Laufzeit von einem Algorithmus Im externen Speichermodell wird das Modell durch die Anzahl der Lesevorgänge und Schreibvorgänge in den erforderlichen Speicher definiert.[3] Das Modell wurde von Alok Aggarwal und eingeführt Jeffrey Vitter 1988.[4] Das externe Speichermodell hängt mit dem zusammen Cache-oblives Modellaber Algorithmen im externen Speichermodell können beide kennen Block Größe und die Zwischenspeicher Größe. Aus diesem Grund wird das Modell manchmal als das bezeichnet Cache-Sense-Modell.[5]

Das Modell besteht aus a Prozessor mit einem internen Speicher oder Zwischenspeicher von Größe M, verbunden mit einem ungebunden Externer Speicher. Sowohl das interne als auch das externe Gedächtnis sind in unterteilt in Blöcke von Größe B. Ein Eingang/Ausgangs- oder Speicherübertragungsvorgang besteht aus dem Verschieben eines Blocks von B zusammenhängende Elemente von außen zum internen Speicher und die Laufzeit eines Algorithmus wird durch die Anzahl dieser Eingangs-/Ausgangsvorgänge bestimmt.[4]

Algorithmen

Algorithmen im externen Speichermodell nutzen die Tatsache, dass das Abrufen eines Objekts aus dem externen Speicher einen gesamten Größenblock abruft . Diese Eigenschaft wird manchmal als Ort bezeichnet.

Suche nach einem Element unter Objekte sind im externen Speichermodell mit a möglich B-Baum mit Verzweigungsfaktor . Mit einem B-Baum können Suchen, Insertion und Löschen erreicht werden Zeit (in Big O Notation). Information theoretischDies ist das Minimum Laufzeit Möglich für diese Operationen, daher ist die Verwendung eines B-Baums Asymptotisch optimal.[4]

Externe Sortierung sortiert in einer externen Speichereinstellung. Die externe Sortierung kann über die Verteilungssortierung erfolgen, die ähnlich ist wie schnelle Sorte, oder über a -Way Fusion Sort. Beide Varianten erreichen die Asymptotisch optimal Laufzeit von Sortieren N Objekte. Diese Grenze gilt auch für die Schnelle Fourier-Transformation im externen Speichermodell.[2]

Das Permutationsproblem besteht darin, neu zu ordnen Elemente in eine bestimmte Permutation. Dies kann entweder entweder durch Sortieren erfolgen, was die oben genannte Sortierlaufzeit erfordert oder jedes Element in Ordnung einfügt und den Nutzen der Lokalität ignoriert. Daher kann Permutation in erfolgen Zeit.

Anwendungen

Das externe Speichermodell erfasst das Speicherhierarchie, was nicht in anderen gemeinsamen Modellen modelliert wird, die bei der Analyse verwendet werden Datenstrukturen, so wie die Zufallszugriffsmaschine, und ist nützlich zum Beweisen Untergrenzen für Datenstrukturen. Das Modell ist auch nützlich, um Algorithmen zu analysieren, die auf Datensätzen arbeiten, die zu groß sind, um in den internen Speicher zu passen.[4]

Ein typisches Beispiel ist Geografisches Informationssystem, besonders Digitale Höhenmodelle, wo der vollständige Datensatz leicht mehrere überschreitet Gigabyte oder auch Terabyte von Dateien.

Diese Methodik erstreckt sich darüber hinaus Allgemeines CPUs und schließt auch ein GPU Computing sowie klassisch digitale Signalverarbeitung. Im Allzweck-Computing auf Grafikverarbeitungseinheiten (GPGPU), leistungsstarke Grafikkarten (GPUs) mit wenig Speicher (im Vergleich zu dem bekannteren Systemspeicher, der am häufigsten einfach als einfach bezeichnet wird RAM) werden mit einer relativ langsamen CPU-zu-GPU-Speicherübertragung verwendet (im Vergleich zur Berechnungsbandbreite).

Geschichte

Eine frühzeitige Verwendung des Begriffs "Out-of-Core" als Adjektiv ist 1962 in Bezug auf Geräte das sind anders als die Kerngedächtnis von einem IBM 360.[6] Eine frühzeitige Verwendung des Begriffs "außerhalb des Kerns" in Bezug auf Algorithmen erscheint 1971.[7]

Siehe auch

Verweise

  1. ^ Vitter, J. S. (2001). "Externe Speicheralgorithmen und Datenstrukturen: Umgang mit massiven Daten". ACM Computing -Umfragen. 33 (2): 209–271. Citeseerx 10.1.1.42.7064. doi:10.1145/384192.384193. S2CID 2155038.
  2. ^ a b Vitter, J. S. (2008). Algorithmen und Datenstrukturen für den externen Speicher (PDF). Grundlagen und Trends in der theoretischen Informatik. Serie über Stiftungen und Trends in der theoretischen Informatik. Vol. 2. Hannover, MA: Jetzt Verlage. S. 305–474. Citeseerx 10.1.1.140.3731. doi:10.1561/0400000014. ISBN 978-1-60198-106-6.
  3. ^ Zhang, Donghui; Tsotras, Vassilis J.; Levialdi, Stefano; Grinstein, Georges; Berry, Damon Andrew; Gouet-Brunet, Valerie; Kosch, Harald; Döller, Mario; Döller, Mario; Kosch, Harald; Maier, Paul; Bhattacharya, Arnab; Ljosa, Vebjorn; Nack, Frank; Bartolini, Ilaria; Gouet-Brunet, Valerie; Mei, Tao; Rui, Yong; Crucianu, Michel; Shih, Frank Y.; Fan Wenfei; Ullman-Culle, Mollie; Clark, Eugene; Aronson, Samuel; Mellin, Jonas; Berndtson, Mikael; Grahne, Grusta; Bertossi, Leopoldo; Dong, Guozhu; et al. (2009). "I/O -Berechnungsmodell". Enzyklopädie von Datenbanksystemen. Springer Science+Business Media. S. 1333–1334. doi:10.1007/978-0-387-39940-9_752. ISBN 978-0-387-35544-3.
  4. ^ a b c d Aggarwal, Alok; Vitter, Jeffrey (1988). "Die Eingangs-/Ausgangskomplexität der Sortierung und verwandte Probleme". Kommunikation der ACM. 31 (9): 1116–1127. doi:10.1145/48529.48535. S2CID 6264984.
  5. ^ Demaine, Erik (2002). Cache-obliven Algorithmen und Datenstrukturen (PDF). Vorlesungen der EEF Summer School über massive Datensätze. Aarhus: BRICS.
  6. ^ NASA SP. NASA. 1962. p. 276.
  7. ^ Computer in Krise. ACM. 1971. p. 296.

Externe Links