Parallel Rekenen Prefix Sum Gerard Tel College Concurrency
Binair vermenigvuldigen, hoe
Cumulatiefberekening Invoer: Verkoop per week (gegeven) Uitvoer: Verkoop t/m week (uitrekenen) Weken als binair: Hoe reken je dit uit? Hoevaak optellen? W 1 2 3 4 5 6 7 8 9 10 11 12 13 in uit 15 19 22 27 31 36 40 43 49 56 W 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 in 3 4 5 6 7 uit 11 15 19 22 27 31 36 40 43 49 56 Cumulatiefberekening
Cumulatief (13) in 12 stappen Optellen: vorige optellen bij eigen W 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 in 3 4 5 6 7 T=1 2 11 15 19 22 27 31 8 36 9 40 10 43 49 12 56 uit Cumulatief (13) in 12 stappen
We gaan dit gewoon doen! Methode “Rechtstreeks doorgeven” Circa 20 vrijwilligers Weeknummer is 5 bits (tot 31 weken) Input: speelkaart Nr 1 doet niets (ik) Luisteren, optellen, doorvertellen Stopwatch (op smartfoontje?) Het aantal weken: N Het aantal optellingen: N-1 We gaan dit gewoon doen!
Kan het beter? Wat is eigenlijk beter? Aantal rekenstappen (optellingen) Het kan niet met minder dan N-1 Samenwerking, dingen tegelijk Door samenwerken kun je soms meer werk doen in minder tijd! Rekentruuk: 18 optellingen in 7 stappen Kan het beter?
Cumulatief (13) in 7 stappen Optellen: vorige bij eigen Stap 1: even weken, tegelijk! Stap 2/6: cumulatief even weken Stap 7: oneven weken, tegelijk! W 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 in 3 4 5 6 7 T=1 8 9 2 15 22 31 40 49 11 19 27 36 43 56 uit Cumulatief (13) in 7 stappen
We gaan dit ook doen! Methode “Overslaan” Stap 1: oneven geeft door aan hogere even Dit heet compressie Rechtstreeks doorgeven (alleen even) Eind: even geeft door aan hogere oneven Dit heet opvullen Stopwatch: Is het echt sneller? Is de uitkomst hetzelfde? Dwz de hele cumulatief! We gaan dit ook doen!
Hoe snel gaat het? Rechtstreeks doorgeven Overslaan Voorbeeld Optellingen N-1 Stappen N-1 Overslaan Optellingen (N-1) + N/2-1 Stappen 2 + N/2-1 Voorbeeld 20 maanden:28 optellingen in 11 stappen 1000 maanden: 1498 opt in 501 stappen Het gaat ongeveer 2x zo snel! Hoe snel gaat het?
De even cumulatief rekenen we niet Rechtstreeks uit maar met Overslaan! 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 in 3 4 5 6 7 T=1 8 9 2 15 16 18 31 49 22 40 11 19 27 36 43 56 uit Kan het nog beter?
Hoe snel is dubbel overslaan? Compressie, Compressie Cumulatief voor N/4 Opvullen, Opvullen Totaal is 4 + N/4-1 Bij N=13 is dat 6 Bij N=1000 is dat 253 dus ca. 4x zo snel Hoe snel is dubbel overslaan?
Dynamisch overslaan Zo vaak als zinvol Stappen: minder dan 2 x (len) Berekening stappen en optellingen Stappen: minder dan 2 x (len) Optellingen: minder dan 2N 2N – (len) – (enen) N N Binair Stap Optel 253 11111101 14 491 254 11111110 493 255 11111111 494 256 100000000 15 502 257 100000001 503 Dynamisch overslaan
In een computer Mem Opslag Bus Verplaatst data van Memory naar Cores Data wordt verwerkt In een computer
Belangrijk bij Informatica Hoe de computer werkt Hoe je een taak organiseert Gebruik maken van samenwerken Uitrekenen hoe lang het duurt Belangrijk bij Informatica