www.wikidata.de-de.nina.az
Ein External Memory Algorithmus auch Out of Core Algorithmus ist ein Algorithmus der darauf optimiert ist Datenmengen effizient zu verarbeiten welche die Kapazitat des verfugbaren Hauptspeichers ubersteigen Zugriffe auf Massenspeicher wie Festplatten oder Netzwerkspeicher sind aber um mehrere Grossenordnungen langsamer als Operationen der ALU oder Zugriffe auf hohere Ebenen der Speicherhierarchie Deshalb ist fur die Performance von External Memory Algorithmen die Anzahl der I O Operationen auf langsamen Massenspeichern massgeblich Das Parallel Disk Model hier mit D P 1 displaystyle D P 1 Der interne Speicher fasst M displaystyle M Datenelemente der externe Speicher ist unbegrenzt Datentransfer zwischen beiden findet immer in Blocken der Grosse B displaystyle B statt Inhaltsverzeichnis 1 Analyse im Parallel Disk Model PDM 1 1 Definition 1 2 Fundamentale Operationen 2 Beispiele 2 1 Merge Sort 3 Motivation 4 Anwendung 5 Geschichte 6 Siehe auch 7 EinzelnachweiseAnalyse im Parallel Disk Model PDM BearbeitenZur Analyse von External Memory Algorithmen wird haufig das Parallel Disk Model verwendet Es modelliert die wichtigsten Eigenschaften von magnetischen Festplatten und Systemen mit mehreren parallel angebundenen Festplatten und ist trotzdem einfach genug fur eine effiziente Analyse 1 Wir betrachten hier nur batch Probleme und Systeme mit einem Prozessor Fur online Probleme und Systeme mit beliebiger Anzahl Prozessoren siehe Vitter 2006 1 Definition BearbeitenDas Modell besteht aus einem internen Speicher welcher M displaystyle M nbsp Datenelemente fasst sowie einem unbegrenzten externen Speicher welcher aus D displaystyle D nbsp Festplatten besteht Der wesentliche Performance Indikator ist die I O Komplexitat die Anzahl von Zugriffen auf den externen Speicher zur Losung eines Problems mit N displaystyle N nbsp Datenelementen Bei jedem Zugriff auf den externen Speicher kann von jeder der D displaystyle D nbsp Festplatten ein Block von B displaystyle B nbsp Datenelementen in den internen Speicher geladen werden Analog kann vom internen in den externen Speicher geschrieben werden Des Weiteren soll gelten M lt N displaystyle M lt N nbsp sowie 1 D B M 2 displaystyle 1 leq DB leq M 2 nbsp 1 nbsp Zwei Dateien A und B der Grosse 4 B displaystyle 4B nbsp welche im striping Verfahren auf die Festplatten D1 bis D3 verteilt sind Bei D gt 1 displaystyle D gt 1 nbsp Festplatten mussen fur eine effiziente Verarbeitung die Eingabedaten des Problems im striped en Format auf den D displaystyle D nbsp Platten verteilt vorliegen siehe die nebenstehende Abbildung fur ein Beispiel Die Ausgabe des Algorithmus soll dem gleichen Format folgen Hierdurch konnen N displaystyle N nbsp Datenelemente mit der optimalen Anzahl von 8 N D B displaystyle Theta N DB nbsp I Os in den externen Speicher geschrieben oder von ihm gelesen werden 1 Oft konnen die Formeln der resultierenden Anzahl von I Os vereinfacht werden wenn statt der oben verwendeten Grossen in Anzahl von Datenelementen die jeweilige Grosse in Anzahl von Blocken verwendet werden Hieraus ergeben sich die abgeleiteten Grossen n N B displaystyle n N B nbsp sowie m M B displaystyle m M B nbsp 1 Fundamentale Operationen Bearbeiten Die I O Komplexitat vieler Algorithmen wird im Wesentlichen bestimmt durch die Performance einiger fundamentaler Operationen 1 Scanning auch streaming oder touching Lesen oder schreiben von N displaystyle N nbsp sequentiellen Datenelementen Sortieren von N displaystyle N nbsp Datenelementen vergleichsbasiert Schranken fur die I O Komplexitat dieser Operationen finden sich in folgender Tabelle Schranken fur die I O Komplexitat fundamentaler Operationen 1 Operation I O Schranke D 1 I O Schranke D 1Scan N displaystyle textit Scan N nbsp 8 N B 8 n displaystyle Theta N B Theta n nbsp 8 N D B 8 n D displaystyle Theta N DB Theta n D nbsp Sort N displaystyle textit Sort N nbsp 8 N B log M B N B 8 n log m n displaystyle Theta N B log M B N B Theta n log m n nbsp 8 N D B log M B N B 8 n D log m n displaystyle Theta N DB log M B N B Theta n D log m n nbsp Beispiele BearbeitenMerge Sort Bearbeiten Als ein einfaches Beispiel fur einen I O optimalen External Memory Sortieralgorithmus soll External Memory Merge Sort mit D 1 displaystyle D 1 nbsp dienen Dieser Algorithmus arbeitet in zwei Phasen 1 Die erste Phase namens run formation erhalt als Eingabe eine unsortierte Folge von Elementen im externen Speicher und erzeugt als Ausgabe ebendort eine Permutation dieser Folge partitioniert in N M displaystyle N M nbsp sortierte Teilfolgen der Lange M displaystyle M nbsp die sogenannten runs Jede dieser Teilfolgen wird erzeugt indem m displaystyle m nbsp der n displaystyle n nbsp Eingabeblocke in den internen Speicher eingelesen dort sortiert und anschliessend wieder zuruck in den externen Speicher geschrieben werden 1 In der zweiten Phase des Algorithmus werden die existierenden runs rekursiv verschmolzen bis nur noch ein vollstandig sortierter run existiert Dazu werden pro Rekursionsebene jeweils m displaystyle m nbsp runs gleichzeitig Blockweise durch den internen Speicher gestreamt und dabei zu einem sortierten run verschmolzen Pro Ebene werden alle Elemente je einmal gelesen und geschrieben was 2 n displaystyle 2n nbsp I Os entspricht Nach 8 log m n displaystyle Theta log m n nbsp Merge Phasen ist nur noch ein sortierter run ubrig das Ergebnis 1 Insgesamt benotigt der Algorithmus also 8 n log m n displaystyle Theta n log m n nbsp I Os und ist somit optimal 1 Motivation BearbeitenKlassischerweise wird die Laufzeit von Algorithmen in Berechnungsmodellen ohne Speicherhierarchie analysiert In diesen Modellen verursacht ein Speicherzugriff konstante Kosten genau wie die Ausfuhrung arithmetischer Befehle Des Weiteren sind die Kosten eines Speicherzugriffs unabhangig von der Adresse auf die zugegriffen wird sowie von vorangegangenen Zugriffen 1 Diese Annahmen sind vereinfachend und entsprechen nicht der Realitat Einerseits unterscheiden sich die Zugriffszeiten zwischen zwei Ebenen der Speicherhierarchie fur gewohnlich um Grossenordnungen Andererseits fuhren Caches sowie die Funktionsweise von Festplatten dazu dass der Zugriff auf mehrere aufeinander folgende Adressen in der Regel schneller ist als der Zugriff auf zufallige Adressen siehe auch Lokalitatseigenschaft 1 Zwischen Haupt und Massenspeicher ist der Unterschied zwischen den Zugriffszeiten besonders hoch 1 Siehe dazu auch Speicherhierarchie Dies trifft auch fur SSDs als Massenspeicher zu 2 Anwendung BearbeitenEs existieren diverse Bibliotheken und Tools um External Memory Algorithmen zu implementieren Ein umfassende Ubersicht ist in Vitter 2006 ab Seite 141 zu finden Geschichte BearbeitenLaut Vitter 1 begann die Arbeit an External Memory Algorithmen bereits 1956 in Stanford mit H B Demuths Dissertation Electronic data sorting 3 Auch Donald E Knuth beschaftigte sich in seiner 1973 veroffentlichte Monografie The Art of Computer Programming Volume 3 Sorting and Searching ausgiebig mit dem Sortieren von Daten auf Magnetbandern und zum Teil auch auf Festplatten 4 Etwa zur selben Zeit prasentierte Robert W Floyd in seiner Arbeit Permuting Information in Idealized Two Level Storage ein Modell mit grosser Ahnlichkeit zu PDM mit Parametern D 1 displaystyle D 1 nbsp P 1 displaystyle P 1 nbsp B M 2 8 N c displaystyle B M 2 Theta N c nbsp wobei 0 lt c lt 1 displaystyle 0 lt c lt 1 nbsp 5 1988 erweiterten Aggarwal und Vitter in The input output complexity of sorting and related problems Floyds Modell um die Moglichkeit von parallelen Block Transfers 6 1994 fuhrten Vitter und Shriver das Parallel Disk Model ein welches eine realitatsnahere Version von Aggarwal und Vitters Modell darstellt 7 Siehe auch BearbeitenSpeicherhierarchie Cache Oblivious Algorithmus fur eine alternative Modellierung bei der dem Algorithmus M displaystyle M nbsp und B displaystyle B nbsp nicht zur Verfugung stehenEinzelnachweise Bearbeiten a b c d e f g h i j k l m n o 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 Deepak Ajwani Itay Malinger Ulrich Meyer Sivan Toledo Characterizing the Performance of Flash Memory Storage Devices and Its Impact on Algorithm Design In Experimental Algorithms Band 5038 Springer Berlin Heidelberg Berlin Heidelberg 2008 ISBN 978 3 540 68548 7 S 208 219 doi 10 1007 978 3 540 68552 4 16 springer com abgerufen am 30 Juli 2019 Demuth Howard B Electronic data sorting Department of Electrical Engineering Stanford University 1956 OCLC 25124024 Knuth Donald Ervin The Art of Computer Programming Vol 3 Sorting and Searching Addison Wesley 1973 ISBN 0 201 89685 0 Robert W Floyd Permuting Information in Idealized Two Level Storage In Complexity of Computer Computations Springer US Boston MA 1972 ISBN 1 4684 2003 8 S 105 109 doi 10 1007 978 1 4684 2001 2 10 Alok Aggarwal Jeffrey S Vitter The input output complexity of sorting and related problems In Communications of the ACM Band 31 Nr 9 1 August 1988 S 1116 1127 doi 10 1145 48529 48535 J S Vitter E A M Shriver Algorithms for parallel memory I Two level memories In Algorithmica Band 12 Nr 2 3 1994 ISSN 0178 4617 S 110 147 doi 10 1007 BF01185207 springer com abgerufen am 26 Juli 2019 Abgerufen von https de wikipedia org w index php title External Memory Algorithmus amp oldid 209064361