Experimente. Zahlenbeispiel. Cache-Optimale Algorithmen. Warum Funktionieren Caches? Cache-Oblivious Speichermodell. Characterisierung von Caches

Experimente Zahlenbeispiel § 20 Millionen Operationen auf Priority Queue mit verschiedenen Implementierungen § Datenstrukturen ohne Rücksicht auf Pa...
Author: Helmuth Kappel
2 downloads 0 Views 2MB Size
Experimente

Zahlenbeispiel

§ 20 Millionen Operationen auf Priority Queue mit verschiedenen Implementierungen § Datenstrukturen ohne Rücksicht auf Paging-Effekte (Fibonacci Heaps u.s.w.) brechen total ein § Externe Radix Heaps am Besten, aber funktionieren nur wenn Schlüssel der mit Del_Min entfernten Elemente monoton fallen § Externe Array heaps fast 9 mal schneller bei Del_Min aber Faktor 10 langsamer bei Insert

§ M=109, B=106

§ Für c=1/7 folgt daraus

§L=4 Technische Universität Wien Institut für Computergraphik und Algorithmen

Technische Universität Wien

1

Cache-Optimale Algorithmen § Cache zwischen Arbeitsspeicher und Prozessor § Beinhaltet Kopie von kleinem Teil des Arbeitsspeichers § Daten im Cache können vom Prozessor ohne Zeitverzögerung verarbeitet werden (Cache Hit) § Benötigte Daten nicht im Cach: müssen aus Hauptspeicher geladen werden (Cache Miss) • 100 Mal langsamer als Cache • Prozessor muss warten

Institut für Computergraphik und Algorithmen

2

Warum Funktionieren Caches? § Zeitliche Lokalität: Gleicher Bereich des Speichers wird von Programm innerhalb kurzer Zeit mehrmals benötigt • Oft benötigte Daten schon vorher in Cache geladen und sind noch drin

§ Örtliche Lokalität: Speicherbereiche die Programm benötigt liegen im Speicher nahe beieinander • Daten werden Blockweise in Cache geladen • Weniger loads nötig

Technische Universität Wien Institut für Computergraphik und Algorithmen

Characterisierung von Caches § Seitengröße C: § Kapazität Z:

• Gesamtkapazität in Bytes • Vielfaches von C

§ Ein Load transferiert C Bytes vom Hauptspeicher zum Cache § Ähnliche Situation wie bei Externspeicher § Lösungsstrategien von Externspeicher funktionieren prinzipiell auch Institut für Computergraphik und Algorithmen

Institut für Computergraphik und Algorithmen

4

Cache-Oblivious Speichermodell § In modernen Computern mehrere Speicherschichten

• Anzahl Bytes pro Seite (Block) des Cache

Technische Universität Wien

Technische Universität Wien

3

5

• • • • •

Register L1 Cache L2 Cache Arbeitsspeicher Externspeicher

§ Brauchen universell anwendbares Modell

Technische Universität Wien Institut für Computergraphik und Algorithmen

6

1

Cache-Oblivious Speichermodell § Unabhängig von Anzahl der Speicher Ebenen § Seitengrößen und Speichergrößen werden als unbekannt angenommen § Algorithmen die für CO-Modell optimiert wurden funktionieren unabhängig von tatsächlicher Speicherhierarchie § Portabilität der Algorithmen auf beliebige Systeme Technische Universität Wien

7

Institut für Computergraphik und Algorithmen

Ideales Cache-Modell von Frigo et al. §

§

Ideales Cache-Modell von Frigo et al. Cache: Z Bytes Hauptspeicher: ∞ Bytes Cache Zeile: L Bytes Zeile kann in einem Schritt von/zum Hauptspeicher bewegt werden § Annahme: Cache ist hoch § § § §

Technische Universität Wien Institut für Computergraphik und Algorithmen

8

Ideales Cache-Modell von Frigo et al.

Idealer Cache: Ersetzt jeweils die Zeile im Cache deren nächster Zugriff am weitesten in der Zukunft liegt Parameter der Algorithmenanalyse:

§ Cache-Aware Algorithmus:

1. Anzahl CPU-Operationen im RAM-Modell 2. Cache-Komplexität: Anzahl Cache Misses abhängig von Z und L

§ Cache-Oblivious Algorithmus optimal für Hierarchie mit 2 Ebenen Ø Algorithmus auch optimal bei mehreren Ebenen

Technische Universität Wien Institut für Computergraphik und Algorithmen

9

Beispiel Matrix-Multiplikation

• Verhalten abhängig von Z und L

§ Cache-Oblivious Algorithmus: • Verhalten unabhängig von Z und L

Technische Universität Wien Institut für Computergraphik und Algorithmen

10

Cache-Aware Algorithmus

§ Eingabe: Zwei N£N Matrizen A und B § Ausgabe: N£N Matrix C mit

§ Annahme: N sehr viel größer als L Technische Universität Wien Institut für Computergraphik und Algorithmen

11

Technische Universität Wien Institut für Computergraphik und Algorithmen

12

2

Wahl von s

Wahl von s

§ Wählen s so, dass MULT komplett im Cache ausgeführt werden kann § Parameter s muss klein genug sein, damit 3 Matrizen mit Größe s£s in den Cache passen

Technische Universität Wien Institut für Computergraphik und Algorithmen

13

§ Anzahl Cache-Zeilen, die von s£ s Untermatrix besetzt sind: § Haben angenommen: § Also gilt: § Worst Case Cache Misses bei Aufruf MULT: Technische Universität Wien Institut für Computergraphik und Algorithmen

14

Gesamte Cache-Komplexität

Cache-Oblivious Algorithmus

§ Komplette Matrix muss eingelesen werden § Es gibt 3 geschachtelte Schleifen die n/s Mal durchlaufen werden § In jeder Schleife 2 s£ s Matrizen multiplizieren

§ Wollen m£ n Matrix A mit n£p Matrix B Multiplizieren § Algorithmus soll unabhängig von Cache-Parametern sein § Algorithmus ist rekursiv § Folgt „Teile und Herrsche“ Prinzip

Technische Universität Wien Institut für Computergraphik und Algorithmen

15

Fall1: m ¸ max{n,p}

Technische Universität Wien Institut für Computergraphik und Algorithmen

16

Fall 2: n ¸ max{m,p}

§ Spalte Matrix A horizontal in Matrizen A1 und A2 § A1 hat d m/2e Zeilen § A2 hat b m/2c Zeilen § Aufrufe A1 B und A2 B denn:

§ Teile A vertikal in A1 und A2 • A1 hat dn/2e Spalten • A2 hat bn/2c Spalten

§ Teile B horizontal in B1 und B2 • B1 hat dn/2e Zeilen • B2 hat bn/2c Zeilen

§ Nutze aus:

Technische Universität Wien Institut für Computergraphik und Algorithmen

17

Technische Universität Wien Institut für Computergraphik und Algorithmen

18

3

Fall 3: p ¸ max{m,n}

Anzahl Cache-Misses

§ Spalte B vertikal • B1 hat dp/2e Spalten • B2 hat bp/2c Spalten

§ Nutze aus:

Fall 4: m = n = p = 1 § Multipliziere A und B als normale Zahlen

Technische Universität Wien Institut für Computergraphik und Algorithmen

19

Begründung für Cache-Effizienz § „Teile und Herrsche“ vom Prinzip her Cache-freundlich: § Paßt ein Teilproblem komplett in Cache, sind Daten für alle Unterprobleme schon im Cache § Teilproblem kann dann ohne CacheMisses gelöst werden Technische Universität Wien Institut für Computergraphik und Algorithmen

21

Technische Universität Wien Institut für Computergraphik und Algorithmen

20

Algorithmus von Strassen § Auch „Teile und Herrsche“ § Jede Matrix wird in 4 möglichst gleich große Teilmatrizen zerlegt § Sehr aufwändig zu implementieren § In Praxis erst ab 106 schneller als vorgestellter Algorithmus § Anzahl Cache-Misses

Geht es noch besser als nlog7 ? Technische Universität Wien Institut für Computergraphik und Algorithmen

22

Optimierungsprobleme § Viele zul ässige Lösungen § Jeder Lösung ist Wert zugeordnet § Ziel: Finde zulässige Lösung mit größtem Wert § Kombinatorisches Optimierungsproblem:

Kapitel 4 Optimierungsalgorithmen

Technische Universität Wien Institut für Computergraphik und Algorithmen

• Menge der zulässigen Lösungen ist endlich

23

Technische Universität Wien Institut für Computergraphik und Algorithmen

24

4

Kombinatorisches Optimierungsproblem § § § § §

Beispiel TSP (Traveling Salesman Problem)

Grundmenge: endliche Menge E Zulässige Lösungen: I µ 2E Gewichtungsfunktion: c: E! K Zielfunktion von F2 I: c(F):=∑e2 Fc(e) Aufgabe: Finde I* 2 I mit c(I* ) maximal bzw. minimal

Technische Universität Wien Institut für Computergraphik und Algorithmen

25

Beispiel für nicht-kombinatorisches Optimierungsproblem

§ Lösungsmenge ist endlich weil diskret und durch Ungleichungen beschränkt § Aber: Grundmenge nicht endlich ) kein kombinatorisches Optimierungsproblem § Wenn x 1 ,x2 2 {0,1} ist es kombinatorisch Technische Universität Wien Institut für Computergraphik und Algorithmen

27

Lineare Optimierungsprobleme

§ Gegeben: V= Menge von n Punkte im (zweidimensionalen) Raum

§ Gesucht: kürzeste Rundtour, die alle Punkte besucht § Grundmenge: Menge aller Kanten im vollständigen Graphen Kn =(V,E) § Zulässige Lösungen: Kantenmengen, die Tour durch alle Punkte beschreiben § Zielfunktionswert: Summe der Kantenlängen der Kanten in Tour Technische Universität Wien Institut für Computergraphik und Algorithmen

26

Warum Schwierig? § Typischerweise Anzahl der Lösungen exponentiell in Eingabegröße § Deshalb Aufzählen der Lösungen zu aufwendig § TSP: • Eingabe sind n Städte mit Koordinaten • Anzahl der möglichen Rundtouren

Technische Universität Wien Institut für Computergraphik und Algorithmen

28

Lineares Programm

§ Eingabe: • • • •

positive ganze Zahlen m,n b 2 Rm c 2 Rn A 2 Rm£ n Zielfunktion

Zulässiger Bereich:

§ Gesucht:

• x 2 R mit c x minimal (maximal) unter allen Vektoren mit Ax · b *

n

T

Restriktionen bzw. Nebenbedingungen Technische Universität Wien Institut für Computergraphik und Algorithmen

29

Technische Universität Wien Institut für Computergraphik und Algorithmen

30

5

Modellierung von Problemen § Probleme aus der Praxis oft als lineare Programme beschreibbar § Geht das nicht kann man Problem oft leicht abändern so dass Problem linear aber Lösung immer noch nützlich § Beispiele: • Produktionsplanung • Portfolio-Optimierung • Transportprobleme Technische Universität Wien Institut für Computergraphik und Algorithmen

Reales Beispiel: Raffinerie § Aus Rohöl verschiedene Produkte herstellen § Verschieden „Crackprozesse“ produzieren unterschiedliche Mengen der Endprodukte § Eingabe: • Bedarfe an Endprodukten • Kosten und Endprodukte der Crackprozesse

§ Gesucht: • Welche Crackprozesse in welchem Umfang anwenden um Kosten zu minimieren Technische Universität Wien

31

Institut für Computergraphik und Algorithmen

Reales Beispiel: Raffinerie §

§

Modellierung

Endprodukte:

§

1. Schweröl: S 2. Mittelschweres Öl: M 3. Leichtöl: L

§

Bedarfe:

§

• 3S, 5M, 4L Technische Universität Wien Institut für Computergraphik und Algorithmen

33

Modellierung

Variablen für Anwendung Crackprozesse:

1. x1: Produktionsniveau Crackprozess 1 2. x2: Produktionsniveau Crackprozess 2

Bedeutung x1 =2,5:

• Prozess x1 wird auf 2,5 Einheiten Rohöl angewendet • Kostet 2,5*3 $ • Liefert 2,5*2 S, 2,5*2 M und 2,5*1 L

Crackprozesse: 1. Crackprozess 1: Liefert 2S, 2M, 1L kostet 3$ 2. Crackprozess 2: Liefert 1S, 2M, 4L kostet 5$

§

32

Jeder nicht-negative Vektor (x1 ,x2 )2 R2 bezeichnet Produktionsniveau der Crackprozesse Technische Universität Wien Institut für Computergraphik und Algorithmen

34

Modellierung

§ Es müssen 3 Einheiten S produziert werden 2x 1 +x 2 ¸ 3 § Es müssen 5 Einheiten M produziert werden 2x 1 +2x2 ¸ 5 § Es müssen 4 Einheiten L produziert werden x 1 +4x2 ¸ 4 § Die Kosten der Produktion sind: z=3x1 +5x2 Technische Universität Wien Institut für Computergraphik und Algorithmen

35

Technische Universität Wien Institut für Computergraphik und Algorithmen

36

6

Diätproblem

Nahrungsmittel Nahrungsmittel

§ Gegeben: • Verschiedene Nahrungsmittel mit Nährstoffgehalten und Preisen • Bedarf an Nährstoffen

§ Gesucht: • Menge von jedem Nahrungsmittel so dass alle Bedarfe gedeckt sind und Gesamtsumme der Preise möglichst niedrig

Technische Universität Wien Institut für Computergraphik und Algorithmen

37

Modellierung

Kalorien

Proteine

Calcium

Preis in $

Haferflocken

110

4

2

3

Huhn

205

32

12

24

Eier

160

13

54

13

Milch

160

8

285

9

Kirschkuchen

420

4

22

20

Bohnen

260

14

80

19

Technische Universität Wien Institut für Computergraphik und Algorithmen

38

Lineares Programm

§ Variablen:

Für jedes Nahrungsmittel gekaufte Menge

§ Nebenbedingungen: Für jeden Nährstoff muss Summe der Nahrungsmittel-Variablen multipliziert mit Nährstoffgehalt die Mindestmenge erreichen

§ Zielfunktion:

Minimieren der Summe der NahrungsmittelVariablen multipliziert mit Preis

Wenn Haferflocken nur mit einer halben Einheit Milch schmecken:

§ Zusätzlich: Verkaufen nicht vorhandener Lebensmittel ist nicht erlaubt Technische Universität Wien Institut für Computergraphik und Algorithmen

39

Technische Universität Wien Institut für Computergraphik und Algorithmen

40

7

Suggest Documents