Projektovanje paralelnih algoritama I. Uvod Osnove dinamičke paralelizacije

Similar documents
Projektovanje paralelnih algoritama II

DISTRIBUIRANI ALGORITMI I SISTEMI

Fajl koji je korišćen može se naći na

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Red veze za benzen. Slika 1.

Mathcad sa algoritmima

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

Iskazna logika 1. Matematička logika u računarstvu. oktobar 2012

TEORIJA SKUPOVA Zadaci

Osobine metode rezolucije: zaustavlja se, pouzdanost i kompletnost. Iskazna logika 4

Grafovi. Osnovni algoritmi sa grafovima. Predstavljanje grafova

Programiranje u realnom vremenu Bojan Furlan

Uvod u relacione baze podataka

1.1 Algoritmi. 2 Uvod

MATHEMATICAL ANALYSIS OF PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR FEEDING BOTTLE CAPS

NEURONSKE MREŽE 1. predavanje

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Lecture 22: Multithreaded Algorithms CSCI Algorithms I. Andrew Rosenberg

APPROPRIATENESS OF GENETIC ALGORITHM USE FOR DISASSEMBLY SEQUENCE OPTIMIZATION

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Paralelni algoritmi 1

ANALYSIS OF INFLUENCE OF PARAMETERS ON TRANSFER FUNCTIONS OF APERIODIC MECHANISMS UDC Života Živković, Miloš Milošević, Ivan Ivanov

Asian Journal of Science and Technology Vol. 4, Issue 08, pp , August, 2013 RESEARCH ARTICLE

An Algorithm for Computation of Bond Contributions of the Wiener Index

Mehurasto sortiranje Brzo sortiranje Sortiranje učešljavanjem Sortiranje umetanjem. Overviev Problemi pretraživanja Heš tabele.

U VOD U ALGOR IT ME I S T RUKT URE P ODATAK A

Modified Zagreb M 2 Index Comparison with the Randi} Connectivity Index for Benzenoid Systems

1. Ocena performansi

Rekurzivni algoritmi POGLAVLJE Algoritmi s rekurzijama

BROJEVNE KONGRUENCIJE

ANALYTICAL AND NUMERICAL PREDICTION OF SPRINGBACK IN SHEET METAL BENDING

Algoritmi i programiranje

Algoritmi za pronalaºenje minimalnog pokrivaju eg stabla

Rešenja zadataka za vežbu na relacionoj algebri i relacionom računu

Uvod u algoritamske tehnike

Zadatci sa ciklusima. Zadatak1: Sastaviti progra koji određuje z ir prvih prirod ih rojeva.

O homomorfizam-homogenim geometrijama ranga 2

DEVELOPMENT OF A MATHEMATICAL MODEL TO PREDICT THE PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR HEADED COMPONENTS

UNIVERZITET U BEOGRADU MATEMATIČKI FAKULTET

Hamiltonovi grafovi i digrafovi

INVESTIGATION OF UPSETTING OF CYLINDER BY CONICAL DIES

3. Programiranje u Matlab-u

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

REVIEW OF GAMMA FUNCTIONS IN ACCUMULATED FATIGUE DAMAGE ASSESSMENT OF SHIP STRUCTURES

Uvod u analizu (M3-02) 05., 07. i 12. XI dr Nenad Teofanov. principle) ili Dirihleov princip (engl. Dirichlet box principle).

AIR CURTAINS VAZDU[NE ZAVESE V H

Konstrukcija i analiza algoritama

Đorđe Đorđević, Dušan Petković, Darko Živković. University of Niš, The Faculty of Civil Engineering and Architecture, Serbia

VELOCITY PROFILES AT THE OUTLET OF THE DIFFERENT DESIGNED DIES FOR ALUMINIUM EXTRUSION

A STUDY ON NATURAL CONVECTION HEAT TRANSFER IN COMPLEX BOUNDARIES

PRIMENA FAZI LOGIKE ZA REŠAVANJE NP-TEŠKIH PROBLEMA RUTIRANJA VOZILA I

ANALYSIS OF THE RELIABILITY OF THE "ALTERNATOR- ALTERNATOR BELT" SYSTEM

Ksenija Doroslovački KOMBINATORIKA INTERPRETIRANA FUNKCIJAMA I NJIHOVIM OSOBINAMA MASTER RAD. NOVI SAD jun 2008

PARAMETRIC OPTIMIZATION OF EDM USING MULTI-RESPONSE SIGNAL-TO- NOISE RATIO TECHNIQUE

Dekartov proizvod grafova

DEVELOPMENT OF MATHEMATICAL MODELS TO PREDICT THE EFFECT OF INPUT PARAMETERS ON FEED RATE OF A RECIPROCATORY TUBE FUNNEL FEEDER

U ovom dijelu upoznat ćemo strukturu podataka stablo, uvesti osnovnu terminologiju, implementaciju i algoritme nad tom strukturom.

UNIVERZITET U NIŠU PRIRODNO-MATEMATIČKI FAKULTET. mr Dragan Stevanović NEKE KOMPOZICIJE GRAFOVA I GRAFOVI SA CELOBROJNIM SPEKTROM

povezuju tačke na četiri različita načina (pravom linijom, splajnom,

Rešavanje problema uspostavljanja uslužnih objekata primenom heurističkih metoda

Algoritam za odre divanje ukupnog poravnanja dva grafa poravnanja parcijalnog ure daja

Oracle Spatial Koordinatni sustavi, projekcije i transformacije. Dalibor Kušić, mag. ing. listopad 2010.

O GLATKIM GRAFOVIMA KOMPATIBILNIM SA TEJLOROVIM OPERACIJAMA

Sortiranje podataka. Ključne riječi: algoritmi za sortiranje, merge-sort, rekurzivni algoritmi. Data sorting

Metode praćenja planova

5 th INTERNATIONAL CONFERENCE Contemporary achievements in civil engineering 21. April Subotica, SERBIA

MREŽNI DIJAGRAMI Planiranje

Geometrija (I smer) deo 3: Linije u ravni

Računarska grafika. 28. Rasterizacija. Malo matematike. Rasterizacija. Druge korisne formule. Jednačine linije

Ivan Soldo. Sažetak. U članku se analiziraju različiti načini množenja matrica. Svaki od njih ilustriran je primjerom.

Realizacija i ocjena MPPT algoritama u fotonaponskom sistemu napajanja

U člnaku se nastoji na jednostavan i sažet način bez ulaženja u egzaktne i formalizirane dokaze postići slijedeće:

Primjena optimizacije kolonijom mrava na rješavanje problema trgovačkog putnika

Uvod u dinamičko programiranje

Matematika (PITUP) Prof.dr.sc. Blaženka Divjak. Matematika (PITUP) FOI, Varaždin

Šta je to mašinsko učenje?

FTN Novi Sad Katedra za motore i vozila. Drumska vozila Uputstvo za izradu vučnog proračuna motornog vozila. 1. Ulazni podaci IZVOR:

STRUCTURAL VEHICLE IMPACT LOADING UDC =111. Dragoslav Stojić #, Stefan Conić

PLANIRANJE SAOBRAĆAJA - Izvod iz vježbi -II dio-

Fraktali - konačno u beskonačnom

~ HEURISTIKE ~ Složen problem se često ne može rešiti tačno, zato koristimo približno rešenje!

Termodinamika. FIZIKA PSS-GRAD 29. studenog Copyright 2015 John Wiley & Sons, Inc. All rights reserved.

Karakterizacija problema zadovoljenja uslova širine 1

Veleučilište u Rijeci. Dodjela procesora (eng. CPU scheduling)

LINEARNI MODELI STATISTIČKI PRAKTIKUM 2 2. VJEŽBE

Ivan Petković ANALIZA PROCESNIH I RAČUNSKIH ITERACIJA PRIMENOM SAVREMENIH RAČUNARSKIH ARITMETIKA

DYNAMIC HEAT TRANSFER IN WALLS: LIMITATIONS OF HEAT FLUX METERS

ALGORITMI ZA ISPITIVANJE DJELJIVOSTI

EFFECT OF LAYER THICKNESS, DEPOSITION ANGLE, AND INFILL ON MAXIMUM FLEXURAL FORCE IN FDM-BUILT SPECIMENS

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku

6. PROGRAMSKE STRUKTURE STRUKTUIRANOG PROGRAMIRANJA

A NEW THREE-DIMENSIONAL CHAOTIC SYSTEM WITHOUT EQUILIBRIUM POINTS, ITS DYNAMICAL ANALYSES AND ELECTRONIC CIRCUIT APPLICATION

Problemi transporta i analiza osetljivosti

LLL Seminari u okviru TEMPUS projekta

Summary Modeling of nonlinear reactive electronic circuits using artificial neural networks

TemidaLib sistem za rad sa velikim brojevima TemidaLib Multiprecision Arithmetic Library

Numerical Inverse Laplace Transform

Univerzitet u Beogradu

Transcription:

Projektovanje paralelnih algoritama I Uvod Osnove dinamičke paralelizacije 1

Uvod 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 2

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 3

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 rekurencija (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) 4

Osnovi dinamičke paralelizacije Primer rekurz. računanja Fibonačijevih brojeva: F 0 = 0; F 1 = 1; F i = F i -1 + F i -2 za i 2 Serijski 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 Fib(4) Fib(3) Fib(2) Fib(2) Fib(1) Fib(1) Fib(0) Fib(5) Fib(3) Fib(2) Fib(1) Fib(1) Fib(0) Fib(1) Fib(0) 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) 5

Analiza serijskog algoritma 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 6

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 7

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 8

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 (eng. 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 9

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 (zoom-in) Npr. u prethodnom stablu instanci procedure za poziv P-Fib(5), možemo uvećati deo za računanje P-Fib(4) 10

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 11

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 12

Idealan paralelni računar Skup procesora i sekvencijalno konzistentne (SK) deljene memorije SK: više istovremenih operacija R i W, kao kada bi se obavljala po jedan R/W od strane jednog procesora Linearan redosled, koji očuvava redosled grafa Pretpostavlja se da su svi procesori iste snage i zanemaruje se cena raspoređivanja 13

Mere performanse Dve mere efikasnost paralelnog algoritma: RAD: ukupno vreme računanje 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 14

Vremena T P, T 1 i T Stvarno vreme izvršenja paralelnog algoritma: Koliko je procesora raspoloživo? 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 15

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 16

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 (max 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) 17

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 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 Kako se labavost povećava od 1, ubrzanje sve bliže savršenom 18

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, iz zakona raspona min T P = T. Koliko je max T P? 19

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 vreme T P T 1 /P, ili ekvivalentno, da je ubrzanje približno jednako sa P 20

Analiza paralelnih algoritama Cilj analize: odrediti granice T P u funkciji od 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)) 21

Primer: Analiza P-Fib(n) Rad: pošto je Fib je 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) 22

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 =1to n 4. y i =0 5.parallel for i =1to n 6. for j =1to n 7. y i = y i + a ij x j 8.return y 23

Realizacija paralelne petlje Mat-Vec(A, x) 1.n = A.rows 2.neka je y novi vector dužine n 3.parallel for i =1to n 4. y i =0 5.parallel for i =1to n 6. for j =1to n 7. y i = y i + a ij x j 8.return y Kompajler realizuje svaku parallel for 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 =1ton 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 24

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 25

Analiza procedure Mat-Vec (1/2) Rad T 1 (n): Serijalizacija: parallel for 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 26

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) 27

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=1to 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 28

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. 29

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

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 =1to n 4. y i =0 5.parallel for i =1to n 6. parallel for j =1to 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) 31

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 32

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 33