Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2.

Ähnliche Präsentationen


Präsentation zum Thema: "Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2."—  Präsentation transkript:

1 Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2

2 Zufälliges Durchlaufen: for (i=0; i<N; i++) A[C[i]]=A[C[i]]+1; Durchwandern eines Arrays for (i=0; i<N; i++) D[i]=i; C=Permute(D) Lineares Durchlaufen: for (i=0; i<N; i++) A[D[i]]=A[D[i]]+1;

3 Größe 2 k Durchwandern eines Arrays k sec 2 23 =8.388.608

4 Logarithmische Skalierung Durchwandern eines Arrays Größe 2 k sec k

5 CPU Cache main (internal) memory Extern- speicher secondary memory Faktor 100 schneller als Faktor 1000-10 6 schneller als Hierarchisches Speichermodell moderner Computer

6 Probleme klassischer Algorithmen Meist keine Lokalität bei Speicherzugriffen, und deswegen mehr Speicherzugriffe als nötig Ein Zugriff im Externspeicher (ein I/O) liefert jeweils einen ganzen Block von Daten zurück Ein Zugriff im Hauptspeicher spricht jeweils eine Speicherzelle an und liefert jeweils eine Einheit zurück

7 Problem ist aktueller denn je, denn Geschwindigkeit der Prozessoren verbessert sich zwischen 30%-50% im Jahr; Geschwindigkeit des Speichers nur um 7%-10% pro Jahr One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed.

8 Das Theoretische Sekundärspeichermodell (Parallel Disk Modell) CPU main (internal) memory Extern- speicher M = Anzahl der Elemente im Haupt- speicher B = Anzahl der Elemente, die in einen Block passen Annahme: B<=M/2 voneinander unabhängig Rechenoperationen können nur mit Daten im Haupt- speicher getätigt werden Modell von Vitter und Shriver 1994

9 Analyse von Externen Algorithmen Anzahl der ausgeführten I/O- Operationen Anzahl der ausgeführten CPU- Operationen im RAM-Modell Anzahl der belegten Blöcke auf dem Sekundärspeicher

10 Untere Schranken im EM-Modell Einlesen einer Menge von N Elementen benötigt mindestens Θ(N/B) I/Os Sortieren einer Menge von N Elementen benötigt mindestens Θ(N/B log 1+M/B (1+N/B)) (o.Bw.) Suche in dynamischen Daten von N Elementen benötigt mindestens Zeit Θ(log N / log B) I/O-Operationen

11 Externspeicherdatenstruktur für Prioritätswarteschlangen Dynamische Datenstruktur für Elemente: Schlüssel + Information Operationen: –Get_Min: Ausgabe der Elemente mit kleinstem Schlüssel –Del_Min: Ausgabe und Entfernung des kleinsten Elements –Insert: Einfügen eines neuen Elements Welche Datenstrukturen kennen Sie dafür?

12 Externe Array-Heaps Im internen Arbeitsspeicher: Heap Im externen Speicher: Menge von sortierten Feldern unterschiedlicher Länge

13 Externe Array-Heaps Lemma 1: l i+1 =l i (μ+1) μ=(cM/B)-1 L1 L2 L3 l2l2 l 3 =l 2 (μ+1) l i =(cM) i /B i-1 μμ L Schichten Li Slots: enthalten sortierte Folge oder sind leer Die Anzahl der Plätze in einem Slot von L i+1 entspricht der Anzahl aller Plätze in L i c=1/7 L<=4

14 Operation Insert Fügt neue Elemente immer in den internen Heap H ein Falls kein Platz mehr in H ist, dann werden vorher l 1 =cM dieser Elemente in den Sekundärspeicher bewegt: –Falls freier Slot in L1 existiert, dann werden diese Elemente in sortierter Folge dorthin bewegt –Sonst: Alle Elemente in L1 werden mit den neuen Elementen aus H zu einer sortierten Liste gemischt, die dann in einen freien Slot von L2 geschrieben werden. –Falls L2 auch kein freier Slot, wiederhole L3,...bis frei.

15 Operation Del_Min Invariante: Das kleinste Element befindet sich immer in H Dazu: Heap wird in zwei Heaps geteilt: H1 und H2: –H1 enthält immer die neu eingefügten Elemente, maximal 2cM –H2 speichert maximal die kleinsten B Elemente in jedem belegten Slot j in jeder Schicht Li Lemma 2: Es befinden sich maximal cM(2+L) Elemente im Hauptspeicher Zusätzlich wird (μ+1)B=cM gebraucht, um die μ Slots plus eine Overflow Folge zu mischen

16 Operation Del_Min Invariante: Das kleinste Element befindet sich immer in H Dazu: Heap wird in zwei Heaps geteilt: H1 und H2: –H1 enthält immer die neu eingefügten Elemente, maximal 2cM –H2 speichert maximal die kleinsten B Elemente in jedem belegten Slot in L Lemma 2: Es befinden sich maximal cM(2+L) Elemente im Hauptspeicher Zusätzlich wird (μ+1)B=cM gebraucht, um die μ Slots plus eine Overflow Folge zu mischen Es muss gelten: M>=cM(3+L); Daraus folgt: bei c=1/7 => L<=4

17 Operationen (1) Merge-Level (i,S,S´): –produziert eine sortierte Folge S´ durch das Mischen der sortierten Folge der μ Slots in Li (inkl. der ersten Blocks in H2) und die sortierte Sequenz S. –Analyse: O(l i+1 /B) I/O´s Store(i;S): –Annahme: L i enthält einen leeren Slot und die Folge S besitzt Länge im Bereich [l i /2, l i ] –S wird in einen leeren Slot von L i gespeichert und seine kleinsten B Elemente werden nach H bewegt. –Analyse: O(l i /B) I/O´s

18 Load (i,j): –Holt die nächsten B kleinsten Elemente vom j-ten Slot aus Li in den internen Heap H2. –Analyse: O(1) I/O´s Compact(i): –Annahme: es existieren mind. 2 Slots in Li, mit Gesamtzahl an Elementen (inkl. H), höchstens l i. –Diese beiden Slots werden gemischt, und in einen freien Slot von Li eingetragen. Damit wird ein Slot in Li frei. –S wird zu diesem freien Slot bewegt (kleinste B Elemente nach H). –Analyse: O(l i /B) I/O´s Operationen (2)

19 Operation Insert Fügt neue Elemente immer in den internen Heap H ein Falls kein Platz mehr in H1 ist, dann werden die größten l 1 =cM Elemente nach L1 bewegt (und die kleinsten B davon nach H2): –Falls freier Slot in L1 existiert, dann wird Store(1,S) aufgerufen –Sonst: Alle Elemente in L1 enthalten mindestens li/2 Elemente: Merge-Level(i,S,S´) –Falls freier Slot in L2 existiert, dann: Store(2,S) –Sonst: wiederhole L3,...bis frei.

20 Operation Del_Min Das kleinste Element wird vom internen Heap entfernt (H1 oder H2). Falls in H2: dann korrespondiert dieses zu Slot j einer Schicht Li. Falls es das letzte Element in H2 ist, das zu j gehört, dann werden die nächsten B Elemente von Slot j nach H2 mittels Load(i,j) bewegt. Nach jedem Load(i,j) wird Compact(i) bei Bedarf aufgerufen

21 Korrektheit Lemma 3: Das kleinste Element ist immer in H (H1 oder H2). Lemma 4: Es ist immer ein freier Platz für neue Elemente vorhanden.

22 I/O Schranken Annahme: cM>3B Lemma 5: Nach N Operationen existieren höchstens L<=log cM/B (N/B) Schichten. Lemma 6: Store(i,S) benötigt höchstens 3l i /B I/O´s. Compact(i+1) und Merge-Level(i,S,S´) benötigen höchstens 3l i+1 /B I/O´s.

23 I/O Schranken Theorem: Annahme: cM>3B und 0<c<1/3 und N<=B(cM/B) 1/c-3 In einer Folge von N Operationen der Art Insert und Del_Min benötigt –Insert amortisiert 18/B(log cM/B (N/B)) I/O´s und –Del_Min 7/B amortisierte I/O´s.

24 Speicherplatzbedarf Lemma 7: Jede Schicht enthält höchstens einen Slot, der nicht-leer und aus weniger als l i /2 Elementen besitzt. Theorem 2: Die Gesamtanzahl der benützten Blöcke ist höchstens 2(X/B)+2, wobei X die Anzahl der Elemente im Heap H ist. Der Gesamtspeicherplatz im Arbeitsspeicher beträgt cM(3+L).

25 Insert: zuerst Insert, dann Del_Min *10 6

26 Del_Min: zuerst Insert, dann Del_Min *10 6

27 Insert: Zufällige Folge *10 6

28 Del_Min: Zufällige Folge *10 6

29 Literatur Andreas Crauser: LEDA-SM: External Memory Algorithms and Data Structures in Theory and Praxis. Dissertation, Max-Planck-Institut für Informatik, Saarbrücken, 2001. Kapitel 4: Priority Queues; http://www.mpi-sb.mpg.de/~crauser/degrees.html Klaus Brengel, Andreas Crauser, Paolo Ferragina, Ulrich Meyer: An Experimental Study of Priority Queues in External Memory, Proc. of the Workshop on Algorithmic Engineering (WAE ´99), Lecture Notes in Computer Science 1668, 345-359, Springer-Verlag, 1999 Die Vorlesung hält sich eng an:

30 Vielen Dank

31


Herunterladen ppt "Externspeicher- Algorithmen Petra Mutzel Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithmen und Datenstrukturen 2."

Ähnliche Präsentationen


Google-Anzeigen