Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting Generierung lokaler Optimierungen - IPD Snelting
4 Implementierung var0 op1 op1 op1 Kosten 3 ⇒ Regel r var0 op2 Kosten 2 op1 var0 op1 op1 add e1 m, Kosten 4 r → op2 var0 add op1 op1 m ′ , Kosten 5 Abbildung 4.12: Nicht immer ist die Anwendung eine Optimierungsregel sinnvoll. Die Kosten von m nehmen durch Anwendung von r zu. wendung mehrerer Regeln dennoch günstiger sein. Sollen solche Fälle berücksichtigt werden, wäre es für jedes Muster nötig, jede mögliche Kombination von nacheinander anwendbaren Regeln dahingehend zu untersuchen, ob eine Kombination existiert, deren resultierende Muster ebenso teuer, oder günstiger als das ursprüngliche Muster wären. Aus Komplexitätsgründen, die eine Überprüfung jeder Kombination mit sich bringt, wird dieser Ansatz im Rahmen dieser Arbeit nicht weiter verfolgt. Verringerung des Suchraums durch Ausnutzen von Regeln Wie zuvor beschrieben, werden alle Muster dahingehend untersucht, ob eine bereits bekannte Regel anwendbar ist, um so möglichst frühzeitig nicht-optimale Muster zu erkennen. Wenn man bedenkt, dass neue Muster auf der Grundlage bereits bekannter Muster erzeugt werden, stellt sich die Frage, ob es möglich ist, Muster auf die eine Regel anwendbar ist, bereits bei der Mustererzeugung zu vermeiden, indem nicht-optimale Muster nicht länger berücksichtigt werden. Würden nur Muster betrachtet, deren Graph einem gerichteten Baum entspricht, für die also zu jedem Knoten genau ein Pfad von der Wurzel aus existiert, träfe diese Annahme zu. Da in diesem Fall ein neues Muster je nach Stelligkeit der verwendeten Operation keinen, einen oder zwei Teilbäume, also Muster mit geringeren Kosten besitzt und diese nicht untereinander verbunden sind, kann jeder Teilbaum durch seine günstigste Repräsentation dargestellt werden. Alle anderen Fälle, also alle nicht-optimalen Teilbäume oder Muster können ignoriert werden, da auf sie ohnehin eine Ersetzungsregel anwendbar ist. 36
4 Implementierung Für die in diesem Verfahren betrachteten Graphen bzw. Muster trifft dies allerdings nicht zu. Die Ursache hierfür ist die mögliche Mehrfachnutzung von Knoten durch unterschiedliche Teilmuster. Im Folgenden wird dies anhand von Abbildung 4.13 und Abbildung 4.14 erläutert. Angenommen es existieren die beiden Regel r und r ′ wie in der Abbildung gezeigt, sowie die Operationen op1, op2, op3, op4 mit den jeweiligen Kosten costT (op1) = costT (op3) = 1 und costT (op2) = costT (op4) = 3. Die Kosten der jeweiligen Muster sind in den Abbildungen angegeben. var0 op1 op1 op1 op1 add var0 op1 op1 op1 op1 Kosten 4 var1 m1, Kosten 5 ⇒ Regel r var0 op2 Kosten 3 var0 op2 add var1 m2, Kosten 4 var0 op1 op1 op1 op3 var0 op1 op1 op1 op3 Kosten 4 add var1 m3, Kosten 5 ⇒ Regel r ′ var0 op4 Kosten 3 var0 op4 add var1 m4, Kosten 4 Abbildung 4.13: Abbildung zweier Regeln r und r ′ sowie jeweils ein optimales (m2 und m4) und ein nicht-optimales (m1 und m3) Muster, das aus der Kombination des rechten bzw. linken Musters der jeweiligen Regel mit einer Addition und einer Variablen erzeugt wurde. 37
- Seite 1: sc0 Generierung lokaler Optimierung
- Seite 5: Kurzfassung Lokale Optimierungen bi
- Seite 8 und 9: Inhaltsverzeichnis Inhaltsverzeichn
- Seite 10 und 11: 1 Einführung so gewonnenen Optimie
- Seite 12 und 13: 2 Grundlagen Reassoziierung Die Rea
- Seite 14 und 15: 2 Grundlagen Definition 9 (Ergebnis
- Seite 16 und 17: 2 Grundlagen 2.4 Das Erfüllbarkeit
- Seite 19 und 20: 3 Verwandte Arbeiten Ein wichtiger
- Seite 21 und 22: 3 Verwandte Arbeiten Taktzyklen. Di
- Seite 23 und 24: 4 Implementierung Die in Kapitel 3
- Seite 25 und 26: Erzeugte Muster MErz Mustererzeugun
- Seite 27 und 28: 4 Implementierung forderlichen Wert
- Seite 29 und 30: 4.2.3 Normalisierung 4 Implementier
- Seite 31 und 32: 4 Implementierung Variablen von m,
- Seite 33 und 34: 4.2.4 Reduktion durch Common Subexp
- Seite 35: var0 0 add (a) Regel r ⇒ var0 var
- Seite 39 und 40: 4 Implementierung würde das Muster
- Seite 41 und 42: 4 Implementierung nicht mehr verän
- Seite 43 und 44: Listing 4.4 Vorabtest - Verwendete
- Seite 45 und 46: 4 Implementierung ermittelten Einga
- Seite 47 und 48: 4 Implementierung nicht erfüllbar
- Seite 49 und 50: Listing 4.7 Ablauf des Generierungs
- Seite 51 und 52: 4 Implementierung semantisch äquiv
- Seite 53 und 54: 4 Implementierung Definition 16 (Ko
- Seite 55 und 56: var0 add add sc0 r ⇐ ′ ⇒ r va
- Seite 57 und 58: var0 sc1 : sc1 only disjunct ones t
- Seite 59 und 60: 4.5.4 Zyklisch anwendbare Regeln 4
- Seite 61 und 62: Beispiel 2: Entfernen optimaler Mus
- Seite 63 und 64: 4 Implementierung Regel wirklich um
- Seite 65: 4 Implementierung Komplexe sowie ei
- Seite 68 und 69: 5 Evaluation Tabelle 5.1 zeigt die
- Seite 70 und 71: 5 Evaluation kürzeren Gesamtlaufze
- Seite 72 und 73: 5 Evaluation Nr. Regel CINT2000 CIN
- Seite 74 und 75: 5 Evaluation var0 sc1 : sc1 is nega
- Seite 76 und 77: 6 Zusammenfassung und Ausblick 6.2
- Seite 79 und 80: Literaturverzeichnis [1] Aho, Alfre
4 Implementierung<br />
var0<br />
op1<br />
op1<br />
op1<br />
Kosten 3<br />
⇒<br />
Regel r<br />
var0<br />
op2<br />
Kosten 2<br />
op1<br />
var0<br />
op1<br />
op1<br />
add<br />
e1<br />
m, Kosten 4<br />
r<br />
→<br />
op2<br />
var0<br />
add<br />
op1<br />
op1<br />
m ′ , Kosten 5<br />
Abbildung 4.12: Nicht immer ist die Anwendung eine Optimierungsregel sinnvoll. Die<br />
Kosten von m nehmen durch Anwendung von r zu.<br />
wendung mehrerer Regeln dennoch günstiger sein. Sollen solche Fälle berücksichtigt<br />
werden, wäre es für jedes Muster nötig, jede mögliche Kombination von nacheinander<br />
anwendbaren Regeln dahingehend zu untersuchen, ob eine Kombination existiert, deren<br />
resultierende Muster ebenso teuer, oder günstiger als das ursprüngliche Muster wären.<br />
Aus Komplexitätsgründen, die eine Überprüfung jeder Kombination mit sich bringt,<br />
wird dieser Ansatz im Rahmen dieser Arbeit nicht weiter verfolgt.<br />
Verringerung des Suchraums durch Ausnutzen von Regeln<br />
Wie zuvor beschrieben, werden alle Muster dahingehend untersucht, ob eine bereits<br />
bekannte Regel anwendbar ist, um so möglichst frühzeitig nicht-optimale Muster zu<br />
erkennen. Wenn man bedenkt, dass neue Muster auf der Grundlage bereits bekannter<br />
Muster erzeugt werden, stellt sich die Frage, ob es möglich ist, Muster auf die eine Regel<br />
anwendbar ist, bereits bei der Mustererzeugung zu vermeiden, indem nicht-optimale<br />
Muster nicht länger berücksichtigt werden. Würden nur Muster betrachtet, deren Graph<br />
einem gerichteten Baum entspricht, für die also zu jedem Knoten genau ein Pfad von der<br />
Wurzel aus existiert, träfe diese Annahme zu. Da in diesem Fall ein neues Muster je nach<br />
Stelligkeit der verwendeten Operation keinen, einen oder zwei Teilbäume, also Muster<br />
mit geringeren Kosten besitzt und diese nicht untereinander verbunden sind, kann jeder<br />
Teilbaum durch seine günstigste Repräsentation dargestellt werden. Alle anderen Fälle,<br />
also alle nicht-optimalen Teilbäume oder Muster können ignoriert werden, da auf sie<br />
ohnehin eine Ersetzungsregel anwendbar ist.<br />
36