Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes...

48
Parallel Rekenen Rob Bisseling [email protected] http://www.math.uu.nl/people/bisseling Mathematisch Instituut Universiteit Utrecht Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 1

Transcript of Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes...

Page 1: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Parallel Rekenen

Rob Bisseling

[email protected]

http://www.math.uu.nl/people/bisseling

Mathematisch Instituut

Universiteit Utrecht

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 1

Page 2: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Indeling

Motivatie: waarom parallel rekenen?

Verdeel en heers: principes van parallel rekenen

Mondriaan: ijle matrix-vector vermenigvuldiging

Alhambra: verdelen van rekenroosters

Conclusie

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 2

Page 3: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Zoeken op het Web: welke pagina is de eerste?

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 3

Page 4: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

De linkmatrix A

We hebben n webpagina’s met onderlinge verwijzingen(links) en definiëren de ijle n × n linkmatrix A door

aij =

{

1 als er een link is van pagina j naar pagina i

0 anders.

Zij e = (1, 1, . . . , 1)T een vector die de initiële uniformebelangrijkheid van alle webpagina’s representeert. Dan is

(Ae)i =∑

j

aijej =∑

j

aij

het totaal aantal links die naar pagina i wijzen.

De vector Ae representeert het belang van de pagina’s;A2

e houdt ook rekening met het belang van deverwijzende pagina’s; enz.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 4

Page 5: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Het random surfer model

Een websurfer kiest elk van de uitgaande Nj links vanpagina j met gelijke kans.

Definieer de n × n diagonale matrix D met djj = 1/Nj.

Zij α de waarschijnlijkheid dat een websurfer eenuitgaande link van de huidige pagina volgt.Typische waarde van α = 0.85.

De surfer verveelt zich en springt naar een willekeurigepagina met kans 1 − α.

Elke webpagina is dus bereikbaar.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 5

Page 6: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

De Google-matrix

De Google-matrix is gedefinieerd door Brin and Page(1998) als

G = αAD + (1 − α)eeT /n.

De PageRank van een verzameling webpagina’s kanworden verkregen door herhaalde vermenigvuldiging vande matrix G met een vector.

Hiervoor is nodig: ijle matrix–vector vermenigvuldigingvoor de matrix A, en enige vectoroperaties.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 6

Page 7: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Parallelle computer: PC cluster

PC PC PC PC PC PC PC PC

switch switch switch switch

Google heeft 100.000 PC’s die samenwerken bij hetindexeren van het web en het zoeken naar informatie.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 7

Page 8: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Parallelle computer: abstract model

����

����

����

����

M

P P P PP

M M M M

Communicatie

netwerk

Bulk synchrone parallelle (BSP) computer (Valiant 1989)

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 8

Page 9: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Parallel algoritme: superstappen

����

����

��������

��������

��������

��������

�������

�������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������

����������������������������

����������������������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

����������������

������������

������������

������������������������

������������������������

���������������������������������

���������������������������������

������������������������������������������������

������������������������������������������������

P(0) P(1) P(2) P(3) P(4)

sync

sync

sync

sync

sync

comm

comm

comm

comp

comp

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 9

Page 10: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Tijd van een communicatiesuperstap

2-relaties:

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

������������������������������������������������������������������������������������

P(0) P(1)

P(2)

P(0)P(0) P(0)P(0) P(1)

P(2)

(a) (b)

Een h-relatie is een communicatiesuperstap waarin elkeprocessor ten hoogste h datawoorden stuurt en ontvangt:h = max{hsend, hrecv}

T (h) = hg + l, waarbij g de tijd is per datawoorden l de globale synchronisatietijd.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 10

Page 11: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Tijd van een h-relatie op een 8-processor IBM SP

0

50000

100000

150000

200000

250000

300000

350000

0 50 100 150 200 250

Tim

e (i

n fl

op u

nits

)

h

Measured dataLeast-squares fit

flop = floating-point operatie zoals +,−,×, /

r = 212 Mflop/s, p = 8, g = 187 flop (0.88µs),l = 148212 flop (698 µs)

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 11

Page 12: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

BSP-parameters van een SGI Origin 3800 (Teras)

p g l Tcomm(0)

1 99 55 3782 75 5118 14144 99 12743 20988 126 32742 4947

16 122 93488 15766r = 285 Mflop/s

Tcomm(0) is de tijd van een 0-relatie

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 12

Page 13: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

IJle matrix-vector vermenigvuldiging u := Av

A ijle m × n matrix, m rijen, n kolommenu vector van lengte mv vector van lengte n

Sequentiële berekening

ui :=n−1∑

j=0

aijvj

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 13

Page 14: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Parallelle ijle matrix-vector vermenigvuldiging u = Av

1

22

2 3

5

5

9

1

3

4

6

5

8

4

6

41 3

1

9 2

64

9

1

u

v

A4 superstappen:communiceren, rekenen, communiceren, rekenen

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 14

Page 15: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Matrix priem60

Blokverdeling van 60 × 60 matrix priem60 met 462niet-nullen, voor p = 4

aij 6= 0 ⇐⇒ i|j or j|i (1 ≤ i, j ≤ 60)

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 15

Page 16: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Matrix priem60: algemene dataverdeling

4 processoren

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 16

Page 17: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Cartesische matrixverdeling

Blokdistributie van 59 × 59 matrix impcol_b met 312niet-nullen voor p = 4

Aantal niet-nullen per processor: 126, 28, 128, 30

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 17

Page 18: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Niet-Cartesische matrixverdeling

Blokdistributie van 59 × 59 matrix impcol_b met 312niet-nullen voor p = 4

Aantal niet-nullen per processor: 76, 76, 80, 80

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 18

Page 19: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Compositie in Rood, Geel, Blauw en Zwart

Piet Mondriaan 1921

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 19

Page 20: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Ook geïnspireerd door Mondriaan

Yves Saint LaurentParallel rekenen - Kaleidoscoop 10 maart 2009 – p. 20

Page 21: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Een andere compositie: Blauw, Rood, Geel en Zwart

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 21

Page 22: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Communicatievolume voor een verdeelde matrix

V (A0, A1, A2, A3) = V (A0, A1, A2 ∪ A3) + V (A2, A3)

Hierbij is V (A0, A1, A2, A3) het globale matrix–vectorcommunicatievolume behorend bij de partitioneringA0, A1, A2, A3

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 22

Page 23: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Communicatievolume voor een verdeelde matrix

Stelling. Gegeven A: m × n matrix, A0, . . . , Ak

niet-doorsnijdende deelverzamelingen van A (k ≥ 1). Dan

V (A0, . . . , Ak) = V (A0, . . . , Ak−2, Ak−1 ∪ Ak) + V (Ak−1, Ak).

k delen ⇒ k + 1 delen kan onafhankelijk gedaan worden

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 23

Page 24: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Recursief verdeelalgoritme

MatrixPartition(A, p, ǫ)Output: nz (Ai) ≤ (1 + ǫ)nz (A)

p, i = 0, . . . , p − 1.

if p > 1 thenq := log2 p;(Ar

0, Ar1) := h(A, row, ǫ/q);

(Ac0, A

c1) := h(A, col, ǫ/q);

if V (Ar0, A

r1) ≤ V (Ac

0, Ac1) then

(A0, A1) := (Ar0, A

r1)

else (A0, A1) := (Ac0, A

c1)

maxnz := nz (A)p

(1 + ǫ);ǫ0 := maxnz

nz (A0)· p

2− 1; MatrixPartition(A0, p/2, ǫ0);

ǫ1 := maxnz

nz (A1)· p

2− 1; MatrixPartition(A1, p/2, ǫ1);

else output A;

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 24

Page 25: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Hypergraaf

0

4

2

1

3

6

8

5

7

Hypergraaf met 9 knopen en 6 netten,verdeeld over 2 processoren

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 25

Page 26: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Splitsen via hypergrafen

012345

0 1 2 3 4 5 6vertices

nets

Kolomsplitsen van m × n matrix

Hypergraaf H = (V,N) ⇒ exact communicatievolume.

Kolommen zijn knopen: 0, 1, 2, 3, 4, 5, 6.Rijen zijn netten, deelverzamelingen van V :n0 = {1, 4, 6}, n1 = {0, 3, 6}, n2 = {4, 5, 6},n3 = {0, 2, 3}, n4 = {2, 3, 5}, n5 = {1, 4, 6}.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 26

Page 27: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Functie h: minimaliseer communicatievolume

012345

0 1 2 3 4 5 6vertices

nets

Gebroken netten: n1, n2 veroorzaken horizontalecommunicatie

Gebruik aangepast Kernighan–Lin algoritme voorpartitionering van hypergraaf.

Multilevel methode: maak probleem kleiner doorkolommen (vertices) die op elkaar lijken samen tevoegen.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 27

Page 28: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Vectorverdeling

u A

v

vj 7→ een eigenaar van een niet-nul in matrixkolom jui 7→ een eigenaar van een niet-nul in matrixrij i

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 28

Page 29: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Broadway Boogie Woogie

Piet Mondriaan 1943

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 29

Page 30: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Mondriaan 2D partitionering

Recursieve splitsing van de matrix in 2 delen.

Probeer splitsing in beide richtingen, rij en kolom. Kies debeste. Rij/kolom-permutaties toegestaan.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 30

Page 31: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Fijnkorrelige 2D partitionering

(Çatalyürek and Aykanat, 2001)

Elke niet-nul van A krijgt individueel een processortoegewezen.

Elke niet-nul wordt een vertex in de hypergraaf.

Elke rij en kolom van de matrix wordt een net.

Er zijn dus nz (A) vertices en m + n netten.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 31

Page 32: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Fijnkorrelige 2D partitionering

Recursieve splitsing van de matrix in 2 delen.

Ken individuele niet-nullen toe aan delen.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 32

Page 33: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Hybride 2D partitioning

Probeer splitsing in rij- en kolomrichting, en fijnkorrelig.Neem telkens de beste.

Afstudeerwerk Tristan van Leeuwen (Jan. 2006).

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 33

Page 34: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Communicatievolume: PageRank matrix Stanford

Parkway 1D Parkway fine−grained Mondriaan 2D 0

1

2

3

4

5

6

7

8x 10

4

p = 4, 8, 16

n = 281.903 (pg’s), nz (A) = 2.594.228 niet-nullen (links).

Representeert het Stanford WWW subdomein, verkregenm.b.v. een webcrawl in sept. 2002 door Sep Kamvar.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 34

Page 35: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Communicatievolume: Stanford_Berkeley

Parkway 1D Parkway fine−grained Mondriaan 2D 0

5

10

15x 10

4

p = 4, 8, 16

n = 683.446, nz (A) = 8.262.087 niet-nullen.

Representeert Stanford en Berkeley WWWsubdomeinen, webcrawl in dec. 2002 door Sep Kamvar.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 35

Page 36: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Gemiddeld communicatievolume voor 3 methoden

2D Mondriaan Fine−grained Hybrid 0

0.2

0.4

0.6

0.8

1

1.2

Testverzameling van 18 matrices (kleiner dan PageRank).

Volume vergeleken met oorspronkelijke Mondriaanprogramma uit 2002.

Implementatie: Mondriaan’s hypergraafpartioneerder

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 36

Page 37: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Gemiddeld communicatievolume voor 3 methoden

2D Mondriaan Fine−grained Hybrid 0

0.2

0.4

0.6

0.8

1

1.2

Testverzameling van 18 matrices.

Volume vergeleken met oorspronkelijke Mondriaanprogramma uit 2002.

Implementatie: andere hypergraafpartioneerder, PatoH.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 37

Page 38: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Alhambra: meetkundige vlakverdeling

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 38

Page 39: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

8 × 8 rekenrooster

(a) (b) (c)

4 processoren

Verdeel rekenwerk eerlijk:hoekpunt 3 tijdseenheden (flops),randpunt 4, inwendig punt 5

Beperk communicatie door korte grenzen

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 39

Page 40: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Alhambra: schuin snijden

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 40

Page 41: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Rechthoekig rooster, schuin verdeeld

Periodieke betegeling

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 41

Page 42: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

12 × 12 rekenrooster: periodiek verdeeld

8 processoren

Totaal rekenwerk: 672 flops. Gem. 84. Maximum 90.

Communicatie: 104 waarden. Gem. 13. Maximum 14.

Totale tijd: 90 + 10 · 14 = 230.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 42

Page 43: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

12 × 12 rekenrooster: verdeeld door Mondriaan

8 processoren

Totaal rekenwerk: 672 flops. Gem. 84. Maximum 91.

Communicatie: 85 waarden. Gem. 10.525. Maximum 16.

Totale tijd: 91 + 10 · 16 = 251.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 43

Page 44: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Oplossingen 12 × 12 rekenrooster

8 processoren

Beste oplossingen:maart 2003 Casper Zelissen 219 (kaleidoscoop 2003)maart 2003 Rob Bisseling 214sept. 2005 Arjen Vermolen 200 (kleine scriptie)maart 2006 Bas den Heijer 199 (kaleidoscoop 2006).Benedengrens 199?

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 44

Page 45: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Mogelijke oplosmethoden

8 processoren

Probeer maar wat (trial-and-error)

Meetkundig (regelmatig)

Mondriaan, met verschillende parameters

Statistisch koelen (simulated annealing)

Genetische algoritmen (mutatie en crossover)

Geheeltallig lineair programmeren (ILP)

Enumeratie (branch-and-bound zoekalgoritme in bomen)

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 45

Page 46: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

15 × 15 rekenrooster: kaleidoscoopopgave

Huiswerkpgave: verdeel een 15 × 15 rooster over 8processoren.

Zorg voor een goede werkverdeling en zo min mogelijkcommunicatie.

De maximaal beladen processor telt.

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 46

Page 47: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Conclusie

De Mondriaanmethode is een goede manier om matriceste verdelen volgens de principes van parallel rekenen:

Verdeel het werk eerlijkMinimaliseer de communicatie

Parallel rekenen bevat alles wat wiskunde leuk maakt:creatief bedenken van algoritmes, van concreet naarabstract en weer terug, toepassen

Vak in 2-jarige Master Scientific Computing: ParallelAlgorithms. Onderdeel van Mastermath.

Toepassingen parallel rekenen:zoekmachinescryptoanalyse: het testen (‘kraken’) vanversleutelingsmethodenweersvoorspelling met globale rekenroosters

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 47

Page 48: Parallel Rekenen - Universiteit Utrechtkalle101/Kaleidoscoop/slides...Verdeel en heers: principes van parallel rekenen Mondriaan: ijle matrix-vector vermenigvuldiging Alhambra: verdelen

Dank voor de aandacht!

Parallel rekenen - Kaleidoscoop 10 maart 2009 – p. 48