P2.1 Projektovanje paralelnih algoritama 1

Слични документи
Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

P11.3 Analiza zivotnog veka, Graf smetnji

P3.2 Paralelno programiranje 2

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

P9.1 Dodela resursa, Bojenje grafa

P1.1 Analiza efikasnosti algoritama 1

Funkcije predavač: Nadežda Jakšić

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

Inženjering informacionih sistema

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

Microsoft PowerPoint - C-4-1

Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Algoritmi i arhitekture DSP I

Увод у организацију и архитектуру рачунара 1

Drveta odlucivanja - algoritmi

Classroom Expectations

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

P1.2 Analiza efikasnosti algoritama 2

УНИВЕРЗИТЕТ У НОВОМ САДУ ОБРАЗАЦ 6

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Postavka 12: Uzročnost 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

PROMENLJIVE, TIPOVI PROMENLJIVIH

P1.0 Uvod

Profajliranje ivica: Knutov algoritam i njegova unapredenja Seminarski rad u okviru kursa Verifikacija softvera Matematički fakultet Nevena Nikolić, 1

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]

IV Spekulativno I predikatsko izvršavanje

_sheets.dvi

Uvod u računarstvo 2+2

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

P11.2 Izbor instrukcija, IBURG

IV Spekulativno I predikatsko izvršavanje

Dijagrami sekvenci

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

Slide 1

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

P1.2 Projektovanje asemblera

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Algoritmi

2015_k2_z12.dvi

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

06 Poverljivost simetricnih algoritama1

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Problemi zadovoljavanja ogranicenja.

Повезивање са интернетом

Рачунарска интелигенција

Microsoft Word - 11 Pokazivaci

Microsoft PowerPoint - jkoren10.ppt

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

Državna matura iz informatike

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp

Microsoft PowerPoint - 12a PEK EMT VHDL 1 od 4 - Uvod (2011).ppt [Compatibility Mode]

Funkcije predavač: Nadežda Jakšić

СТРАХИЊА РАДИЋ КЛАСИФИКАЦИJА ИЗОМЕТРИJА И СЛИЧНОСТИ Према књизи [1], свака изометриjа σ се може представити ком позици - jом неке транслациjе за векто

OPERATIVNI SISTEMI

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan

Grananje u programu predavač: Nadežda Jakšić

Logicko projektovanje racunarskih sistema I

Microsoft Word - Matematika_kozep_irasbeli_jav_utmut0513V28_szerb.doc

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Tutoring System for Distance Learning of Java Programming Language

PowerPoint Presentation

12 Stanje

PowerPoint Presentation

Р273 Пројектовање база података Примери питања за колоквијум 1. Навести најважније моделе података кроз историју рачунарства до данас. 2. Објаснити ос

PowerPoint Presentation

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Microsoft PowerPoint - Pred12-13-DistribuiraneBP [Compatibility Mode]

Microsoft PowerPoint - PS9_Linijski raspored i redosled

SRV_1_Problematika_real_time_sistema

Logičke izjave i logičke funkcije

Microsoft PowerPoint - Topic02 - Serbian.ppt

Mere slicnosti

Uvod u računarstvo 2+2

Microsoft PowerPoint - Topic02 - Serbian.ppt

Postojanost boja

Прилог аутоматској паралелизацији секвенцијалног машинског кода

PowerPoint Presentation

Microsoft Word - III godina - EA - Metodi vjestacke inteligencije

Algoritmi SŠ P1

Microsoft Word - KVADRATNA FUNKCIJA.doc

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Slide 1

Slide 1

Vjezbe

P1.3 Projektovanje makroasemblera

PowerPoint Presentation

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

Транскрипт:

Projektovanje paralelnih algoritama I Uvod Osnove dinamičke paralelizacije 1

Primer: Fibonačijev niz Primer rekurz. računanja Fibonačijevih brojeva: F 0 = 0; F 1 = 1; F i = F i -1 + F i -2 za i 2 Algoritam i stablo rekurzivnih instanci Fib(n): Fib(n) 1. if n 1 2. return n 3. else x = Fib(n - 1) 4. y = Fib(n - 2) 5. return x + y Nedostatak ovog algoritma: obavlja dosta istog posla više puta Npr. Fib(5) poziva Fib(4) i Fib(3), Fib(4) takođe poziva Fib(3) 2

Primer: Fibonačijev niz Rekurentna jednačina za proceduru Fib(n): T(n) = T(n - 1) + T(n - 2) + Θ(1) Rešenje: T(n) = Θ(F n ) = Θ(φ n ), gde je φ = (1+5 1/2 )/2 tzv. zlatni odnos Provera metodom zamene: Induktivna hipoteza: T(n) af n b, a i b konstante Zamenom dobijamo: T(n) (af n-1 b) + (af n-2 b) + Θ(1) = a(f n-1 + F n-2 ) 2b + Θ(1) = af n b (b Θ(1)) af n b 3

Primer: Fibonačijev niz Primer rekurz. računanja Fibonačijevih brojeva: F 0 = 0; F 1 = 1; F i = F i -1 + F i -2 za i 2 Algoritam i stablo rekurzivnih instanci Fib(n): Fib(n) 1. if n 1 2. return n 3. else x = Fib(n - 1) 4. y = Fib(n - 2) 5. return x + y I gde je ovde paralelizam? 4

Šta sve utiče na performanse Algoritam Implementacija Prevodilac (kompajler) Fizička arhitektura (hardver, procesor) 5

Dinamička paralelizacija PLATFORMA ZA DINAMIČKU PARALELIZACIJU Omogućava specificiranje paralelizma u aplikaciji Bez brige o komunikacionim protokolima, uravnoteženju opterećenja i drugim problemima Konkurentna platforma sadrži raspoređivač Koji uravnotežuje opterećenje procesorskih jezgara Platforma podržava dve apstrakcije: UGNJEŽDENI PARALELIZAM: podprogram se može pokrenuti kao paralelna aktivost (spawn) PARALELNE PETLJE: iteracije se mogu izvršavati paralelno 6

Osnovni model dinamičke paralelizacije (1/2) Projektant definiše logički paralelizam u aplikaciji Niti unutar platforme raspoređuju i uravnotežuju opterećenje same između sebe Ovaj model nudi sledeće 4 važne prednosti: Pseudo kod sa samo tri nove ključne reči: parallel, spawn i sync. Njihovim brisanjem iz pseudo koda paralelnog algoritma serijski algoritam, tzv. SERIJALIZACIJA paralelnog algoritma Obezbeđuje kvantifikaciju paralelizma zasnovanu na pojmovima RAD i RASPON 7

Osnovni model dinamičke paralelizacije (2/2) (važne prednosti modela, nastavak...): Mnogi paralelni algoritmi proističu iz prakse podeli-izavladaj. Oni podležu analizi pomoću rešavanja rekurenctnih jednačina (kao i serijski algoritmi tog tipa) Moderne konkurentne platforme podržavaju neku od varijanti dinamičke paralelizacije. Npr. Cilk, Cilk++, OpenMP, TPL (Task Parallel Library) i TBB (Threading Building Blocks) 8

Paralelni algoritam za računanje F n Pseudo kod se proširuje dodavanjem ključnih reči spawn i sync, rezultat je P-Fib(n) Uklanjanjem spawn i sync iz P-Fib(n) dobija se SERIJALIZACIJA serijski kod koji rešava isti problem P-Fib(n) 1.if n 1 2. return n 3.else x = spawn P-Fib(n - 1) 4. y = P-Fib(n - 2) 5. sync 6. return x + y Ugnježdeni paralelizam se dešava uvek kada ključna reč spawn prethodi pozivu procedure, kao npr. u liniji 3 spawn izražava logički paralelizam u računanju: ukazuje na delove koji mogu ići u paralleli, simbol: Prilikom izvršenja, raspoređivač određuje koja podračunanja se zaista izvršavaju paralelno 9

Ugnježdeni paralelizam P-Fib(n) 1.if n 1 2. return n 3.else x = spawn P-Fib(n - 1) 4. y = P-Fib(n - 2) 5. sync 6. return x + y Semantika ključne reči spawn se razlikuje od običnog poziva procedure Instanca procedure koja izvrši spawn, tzv. predak, može da se izvršava u paraleli sa novom instancom, tzv. potomak Npr. dok potomak računa P-Fib(n - 1), predak može paralelno računati P- Fib(n - 2) u liniji 4 P-Fib ne može koristiti vrednost x koju vraća izmrešćeni potomak sve dok ne izvrši sync u liniji 5 10

Model paralelnog izvršavanja (1/3) Graf računanja G = (V, E) Čvorovi u V su instrukcije Grane u E pretstavljaju zavisnosti između instrukcija (u, v) E znači da se u mora izvršiti pre v Serijski iskazi se mogu grupisati u jednu liniju (engl. strand) izvršenja Instr. za kontrolu izvršenja se ne uključuju u linije već se pretstavljaju u strukturi grafa Dakle, skup V formira skup linija, dok skup usmerenih grana iz E pretstavlja zavisnosti između njih 11

Model paralelnog izvršavanja (2/3) Ako u G postoji usmerena putanja od linije u do linije v, dve linije su logički u rednoj vezi U suprotnom, linije u i v su logički u paralelnoj vezi Graf linija izvršenja je ugrađen u stablo instanci procedure On je uvećan detalj tog stabla Npr. u prethodnom stablu instanci procedure za poziv P-Fib(5), možemo uvećati deo za računanje P-Fib(4) 12

Model paralelnog izvršavanja (3/3) 4 vrste grana grafa računanja: GRANA NASTAVKA (u, u ) se crta udesno, povezuje liniju u sa njenim sledbenikom u unutar iste instance procedure GRANA MREŠĆENJA (u, v) se crta nadole, i pokazuje da je linija izvršenja u izmrestila liniju v GRANA POZIVA se crta takođe nadole, i pretstavlja običan poziv procedure (ali ne indukuje nastavak) GRANA POVRATKA (u, x) se crta na gore, i pokazuje da se linija izvršenja u vraća njenoj pozivajućoj proceduri x 13

Graf računanja za poziv Fib(4) Ovalni simbol: jedna linija Crni čvor: osnovni slučaj ili deo instance procedure do tačke mreščenja Osenčeni čvor: deo procedure koji poziva P- Fib(n-2), od linije 4 do iskaza sync Beli čvor: deo procedure iza iskaza sync Kritična putanja u grafu je označena punijim strelicama 14

Idealan paralelni računar Sekvencijalno konzistentne (SK) deljene memorije više istovremenih operacija R i W, kao kada bi se obavljala po jedan R/W od strane jednog procesora Svi procesori isti (iste procesorske snage) homogena arhitektura Raspoređivanje ne košta ništa 15

Mere performanse Dve mere efikasnost paralelnog algoritma: RAD: ukupno vreme računanje kao kada bi se izvršavalo na jednom procesoru. Ako je vreme za svaki čvor 1, rad je = br. čvorova RASPON: najveće vreme potrebno da se izvrše linije duž bilo kog puta. Ako je vreme za svaki čvor 1, raspon je = br. čvorova duž najduže putanje u grafu Def: KRITIČNA PUTANJA grafa je najduža putanja u grafu Primer: graf Fib(4) ima 17 čvorova i 8 je na kritičnoj putanji, ako je vreme za svaki čvor 1, rad=17, raspon=8 16

Vremena T P, T 1 i T Stvarno vreme izvršenja paralelnog algoritma, osim od n zavisi i: od toga koliko je procesora raspoloživo kao i od toga kako raspoređivač dodeljuje procesore linijama. Oznake T P vreme na P procesora T 1 vreme na jednom procesoru (= rad) T vreme za neograničen broj procesora (= raspon, jer bi se svaka linija izvršavala na svom procesoru) Rad i raspon obezbeđuju donje granice za vreme izvršenja T P zakon rada i zakon raspona 17

Zakoni rada i raspona, ubrzanje ZAKON RADA: T P T 1 / P ZAKON RASPONA: T P T Def: UBRZANJE na P procesora je odnos T 1 / T P Govori koliko puta je brže izvršenje na P procesora Ako je T 1 / T P = Θ(P), to je LINEARNO UBRZANJE Ako je T 1 / T P = P, to je SAVRŠENO LINEARNO UBRZANJE 18

Paralelizam Def: PARALELIZAM paralelnog algoritma je odnos T 1 / T. Tri perspektive: Kao odnos: srednja količina rada, koja se može obaviti u paraleli Kao gornja granica, najveće moguće ubrzanje Ograničenje savršenog linearnog ubrzanja (maks. br. procesora za savršeno linearno ubrzanje) Npr, rad T 1 =17, raspon T =8 paralelizam je T 1 / T = 17/8 = 2.125 Posledica: nemoguće ostvariti ubrzanje mnogo veće od duplog (označava se kao 2x) 19

Labavost paralelizma Def: To je odnos (T 1 / T )/P = T 1 / (P T ) Smisao: faktor sa kojim paralelizam algoritma prevazilazi broj procesora Ako je labavost manja od 1, ne može se ostvari savršeno linearno ubrzanje (tj. dodatni procesori ne bi mnogo doprineli ubrazanju) IzT 1 / (P T ) < 1 T 1 / T P T 1 / T < P Kako se labavost smanjuje od 1 ka 0, ubrzanje divergira sve dalje od savršenog Ako pak je labavost veća od 1, ograničavajući faktor je rad po procesoru (tj. dodatni procesori bi doprineli ubrzanju) Kako se labavost povećava od 1, ubrzanje sve bliže savršenom 20

Raspoređivanje Apstrakcija: raspoređivač konkurentne platforme direktno preslikava linije na procesore U stvarnosti: Raspoređivač preslikava linije na statičke niti, a OS raspoređuje niti na procesore POHLEPNI RASPOREĐIVAČI dodeljuju što je moguće više linija u svakom koraku. Korak: POTPUN: barem P linija P linija na izvršenje NEPOTPUN: manje od P linija sve na izvršenje Iz zakona rada min. T P = T 1 / P, a iz zakona raspona min T P = T. Koliko je maks. T P? 21

Teorema o gornjoj granici T P Na P procesora, pohlepni raspoređivač izvršava paralelni algoritam sa radom T 1 i rasponom T u vremenu : T P T 1 /P + T I posledica: T P nikada nije više od 2 puta veće od optimalnog vremena T P *: T P 2 T P * II posledica: ako je P << T 1 / T (paralelizam algoritma) vreme T P T 1 /P, ili ekvivalentno, da je ubrzanje približno jednako sa P 22

Analiza paralelnih algoritama Cilj analize: odrediti granice T P za različite br. P Analiza rada analiza SERIJALIZACIJE Analiza raspona analiza KRITIČNOG PUTA Analiza raspona razlikuje 2 slučaja: Ako su dva podgrafa A i B povezana redno: T (A B) = T (A) + T (B) Ako su dva podgrafa A i B povezana paralelno: T (A B) = max(t (A), T (B)) 23

Primer: Analiza P-Fib(n) Rad: pošto je Fib serijalizacija od P-Fib: T 1 (n)=t(n)=θ(φ n ) Raspon: pošto unutar P-Fib(n) postoji paralelna veza P-Fib(n 1) i P-Fib(n 2): T (n) = max(t (n 1), T (n 2)) + Θ(1) = T (n 1) + Θ(1) Rešenje ove jednačine je T (n) = Θ(n) Paralelizam P-Fib(n) je: T 1 (n)/t (n) = Θ(φ n /n) Već za malo n, savršeno ubrzanje, čak i na najvećim paralelnim računarima (zbog velike labavosti) 24

Paralelne petlje Petlje čije sve iteracije mogu da se izvršavaju Obično se paralelizuju pomoću parallel for Primer: moženje matrice A sa vektorom x : y i = Σ j=1..n a ij x j, i = 1, 2,, n Mat-Vec(A, x) 1.n = A.rows 2.neka je y novi vektor dužine n 3.parallel for i = 1 to n 4. y i = 0 5.parallel for i = 1 to n 6. for j = 1 to n 7. y i = y i + a ij x j 8.return y 25

Realizacija paralelne petlje Mat-Vec(A, x) 1.n = A.rows 2.neka je y novi vector dužine n 3.parallel for i = 1 to n 4. y i = 0 5.parallel for i = 1 to n 6. for j = 1 to n 7. y i = y i + a ij x j 8.return y Kompajler realizuje svaku parallelfor petlju kao proceduru zasnovanu na pristupu podeli-i-zavladaj, koja koristi ugnježdeni paralelizam Mat-Vec-Main-Loop(A, x, y, n, i, i ) 1.if i == i 2. for j = 1 to n 3. y i = y i + a ij x j 4.else mid = (i + i )/2 5. spawn Mat-Vec-Main-Loop(A, x, y, n, i, mid) 6. Mat-Vec-Main-Loop(A, x, y, n, mid+1, i ) 7. sync 26

Binarno stablo računanja za proceduru Mat-Vec-Main-Loop Graf za poziv Mat-Vec-Main-Loop(A,x,y,8,1,8). dva broja ispod linija su vrednosti indeksa: i, i 27

Analiza procedure Mat-Vec (1/2) Rad T 1 (n): Serijalizacija: parallelfor petlje se zamene običnim for petljama T 1 (n) = Θ(n 2 ), pošto je kvadratno vremene izvršenja dvostruke ugnježdene petlje dominantno Koliki je gubitak vremena zbog mrešćenja? Br. unutrašnjih čvorova je za 1 manji od broja listova Svaki čvor uzima Θ(1) Svaki list odgovara jednoj iteraciji, koja uzima Θ(1) Sve zajedno to je Θ(n), što Θ(n 2 ) absorbuje 28

Analiza procedure Mat-Vec (2/2) Raspon T (n): Pošto je dubina rekurzivnog pozivanja logaritamska funkcija broja iteracija, za paralelnu petlju sa n iteracija, u kojoj i-ta iteracija ima raspon iter (i ): T (n) = Θ(lg n) + max 1 i n iter (i ) Paralelna petlja u linijama 3-4 ima raspon Θ(lg n) Raspon dve ugnježdene petlje u linijama 5-7 je Θ(n) Raspon preostalog koda u toj proceduri je konstantan Raspon cele procedure je Θ(n) Kako je rad Θ(n 2 ), paralelizam je Θ(n 2 )/Θ(n) = Θ(n) 29

Trka do podataka Paralelni algoritam je DETERMINISTIČAN, ako je njegovo ponašanje uvek isto za isti ulaz TRKA DO PODATAKA se dešava između dve logički paralelne instrukcije koje pristupaju istoj memorijskoj lokaciji i bar jedna od tih instrukcija upisuje u tu lokaciju. Primer: Race-Example() 1.x = 0 2.parallel for i = 1 to 2 3. x = x + 1 4.print x Anomalija se dešava zato što se sadržaj x ne uvećava za 1 odjednom, već nizom instrukcija: 1. Učitaj x iz memorije u registar 2. Uvećaj sadržaj tog registra za 1 3. Upiši registar u x u memoriji 30

Ilustracija trke do podataka U prikazanom redosledu instrukcija procedura pogrešno štampa 1. Problem: Mnoga izvršenja ne otkrivaju grešku! Npr. redosled izvršenja <1,2,3,7,4,5,6,8> ili <1,4,5,6,2,3,7,8> proizvodi ispravan rezultat 2. 31

Rešenje trke do podataka Postoje razni načini Npr. objekti za međusobno isključivanje, itd. Najbolje rešenje: izbeći trku do podataka U konstrukciji sa parallelfor sve iteracije treba da budu nezavisne Između spawn isync, programski kod potomka treba da bude nezavistan od koda njegovog pretka Uključujući kod dodatno izmrešćenih ili pozvanih potomaka! 32

Oprezno! Jako je lako pogrešiti! Neispravna realizacija paralelnog množenja matrice vektorom, sa rasponom Θ(lg n), tako što paralelizuje unutrašnju for petlju: Mat-Vec-Wrong(A, x) 1.n = A.rows 2.neka je y novi vector dužine n 3.parallel for i = 1 to n 4. y i = 0 5.parallel for i = 1 to n 6. parallel for j = 1 to n 7. y i = y i + a ij x j 8.return y Neispravna zbog trke prilikom ažuriranja y i u liniji 7, koja se izvršavaju konkurentno za svih n vrednosti indeksa j Domaći: napraviti ispravnu realizaciju koja ostvaruje raspon Θ(lg n) 33

Lekcija iz paralelizma (1/2) Istinita priča Desila se prilikom razvoja programa za igranje šaha, pod nazivom Sokrates Razvoj na 32 procesora, ciljni računar 512 procesora Jedna optimizacija je smanjila vreme izvršenja važnog referentnog testa sa T 32 = 65s na T 32 = 40s Na osnovu rada i raspona zaključeno da će ta verzija, koja je bila brža na 32 procesora, ustvari biti sporija na ciljnom računaru sa 512 procesora Epilog: napustili su tu optimizaciju 34

Lekcija iz paralelizma (2/2) Proračun: Originalna verzija T 1 =2048s i raspon T =1s Ako se uzme T P = T 1 /P + T T 32 = 2048/32 + 1 = 65 T 32 = 1024/32 + 8 = 40 T 512 = 2048/512 + 1 = 5s T 512 = 1024/512 + 8 = 10s Dva puta sporije na 512 procesora! Pouka: Bolje računati rad i raspon nego osloniti se samo na merenja 35