Transcript
Page 1: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

POLYTOPE MODELSeminar “Sprachen für Parallelprogrammierung”

Tim Habermaas

1

Page 2: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

POLYTOPE MODEL

• Ist ein mathematisches Modell zur automatischen Parallelisierung von Schleifen.

•Dabei wird das Quellprogramm als Polytop beschrieben und dieses Polytop so transformiert, dass das resultierende Zielprogramm parallelisierbar ist.

2

Page 3: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

POLYTOP

• Verallgemeinertes Polygon in beliebiger Dimension

• Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen

Polygonn = 2

Polyedern = 3

A ∗ x ≥ b

3

Page 4: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

POLYTOP-BEISPIEL

4

Page 5: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

QUELLPROGRAMM

•Der einzige erlaubte Datentyp ist Array.

• Array-Indizes müssen affine Funktionen in den Schleifenvariablen sein.

•Die einzigen erlaubten Statements sind Schleifen (mit Schrittweite ±1) und Array-Zuweisungen.

for i1 = l1 to u1 for i2 = l2 to u2 ... a[i1, i2] = a[i1, 0] * 4 + b[i10 + 10 * i1] end S2end

5

Page 6: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

INDEXRAUM

• Jedes Statement S besitzt einen Indexraum IS.

•Dieser Indexraum lässt sich als Ungleichungssystem darstellen, welches ein Polytop beschreibt.

for i = 0 to n for j = 0 to m S1 end S2end

i ≥ 0

j ≥ 0i ≤ n

j ≤ m

S1: S2: i ≥ 0

i ≤ n

6

Page 7: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

INDEXVEKTOR

• Ein Element eines Indexraumes heißt Indexvektor.

for i = 0 to 3 for j = 0 to 4 a[i, j] = 10 endend

x =

12

7

Page 8: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

BEISPIELfor i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

A ∗ x =

1 0−1 00 10 −1

∗ij

0−50−4

Als Polytop:

8

Page 9: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

BEISPIELfor i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

j

i9

Page 10: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

ABHÄNGIGKEITEN

j

i10

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

d1 =

10

d2 =

01

Page 11: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

SCHEDULE

•Ist gültig, wenn er alle Abhängigkeiten erhält:

•Muss eine affine Funktion sein.

•Beschreibt welche Operationen zum Zeitpunkt t ausgeführt werden.

∀x, x : x, x ∈ Ω ∧ (x, x) ∈ E : t(x) <lex t(x)

11

t : Statement× Indexvektor → Z

Page 12: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

ALLOKATION

•Weist einer Operation (Statement x Indexvektor) einen Prozessor zu.

•Muss ebenfalls eine affine Funktion sein.

12

a : Statement× Indexvektor → Zr

Page 13: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

SCHEDULE

j

i

t(

ij

) = i+ j

13

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

Page 14: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

ALLOCATION

j

i

t(

ij

) = i+ j

a(

ij

) = i

14

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

Page 15: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

l

k

ZIEL

t(

ij

) = i+ j

a(

ij

) = i

15

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

Page 16: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

TRANSFORMATIONSMATRIX

t(

ij

) = i+ j

a(

ij

) = i

T =

1 11 0

16

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

Page 17: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

NEUE INDIZES

T =

1 11 0

T ∗ x = T ∗ij

= y =

kl

=

i+ ji

17

for i = 0 to 5 for j = 0 to 4 a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

Page 18: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

TRANSFORMIERTES POLYTOP

A ∗ x = A ∗ (T−1 ∗ y) ≥ b

T−1 =

0 11 −1

1 0−1 00 10 −1

∗ (0 11 −1

∗ y) =

l−lk − ll − k

0−50−4

18

Page 19: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

TRANSFORMIERTES POLYTOP

l−lk − ll − k

0−50−4

Problem:Das transformierte Polytope lässt sich nicht ohne weiteres in eine Schleife verwandeln, da l von k und k von l abhängt.

Lösung:Fourier-Motzkin-Elimination

19

Page 20: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

FOURIER-MOTZKIN-ELIMINATION

• Eliminiert Variablen aus einem Ungleichungssystem.

20

Page 21: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

FOURIER-MOTZKIN-ELIMINATION

max(0, k − 4) ≤ l ≤ min(k, 5) ⇒max(0, k − 4) ≤ min(k, 5)

⇒ 0 ≤ k

k ≤ 921

l ≥ 0

l ≥ k − 4

l ≤ 5

l ≤ k

Page 22: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

l

k

for k = 0 to 9 parfor l = max(0, k - 4) to min(5, k) i = l j = k - l a[i, j] = a[i - 1, j] + a[i, j - 1] * 10 endend

ZIELPROGRAMM

22

Page 23: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

FINDEN EINES SCHEDULES

• Hyperebenen-Methode von Lampert

•Methode von Feautrier

23

Page 24: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

HYPEREBENEN-METHODE

• benötigt perfekt verschachtelte Schleifen

• schleifenbasiert, dies heißt für jede Schleife wird eine Transformationsmatrix berechnet

• nicht immer optimal

24

for i1 = l1 to u1 for i2 = l2 to u2 S1 S2 ...

endend

Page 25: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

METHODE VON FEAUTRIER

• statementbasiert, das heißt für jedes Statement gewinnt man eine eigene Transformationsmatrix

• optimal

• löst LIP (Linear Integer Program)

• hoher Rechenaufwand

25

Page 26: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

ZUSAMMENFÜGEN VON SCHLEIFEN

• Runtime

• Compile time

26

Page 27: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

RUNTIME

27

for i = 0 to 8 for j = 0 to m S1 end S2end

for i = 0 to 5 S3end

for i = 0 to 8 for j = 0 to m S1 end S2 if i <= 5 S3 endend

Page 28: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

COMPILE TIME

28

for i = 0 to n for j = 0 to m S1 end S2 S3end

for i = n + 1 to 8 for j = 0 to m S1 end S2end

for i = 0 to 8 for j = 0 to m S1 end S2end

for i = 0 to n S3end

0 <= n <= 8

Page 29: POLYTOPE MODEL - pp.ipd.kit.edu · POLYTOP • Verallgemeinertes Polygon in beliebiger Dimension • Konvexe Polytope lassen sich als lineares Ungleichungssystem darstellen Polygon

LITERATUR

• Loop Parallelization in the Polytope Model (Christian Lengauer)

•Code Generation in the Polytope Model (Martin Griebl, Christian Lengauer, Sabine Wetzel)

•Automatische Methoden zur Parallelisierung im Polyedermodell (Christian Wieninger)

29


Top Related