Zahlenbeispiel Experimente Cache

Werbung
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
Herunterladen