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