egy szisztolikus példa



Hasonló dokumentumok
Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Párhuzamos programozási platformok

Párhuzamos programozási platformok

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Szűrő architektúrák FPGA realizációjának vizsgálata

Bevezetés. Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar

Függvények növekedési korlátainak jellemzése

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Neurális hálózatok bemutató

Számítógép architektúra

Komputeralgebrai Algoritmusok

Számítógépek felépítése

Hatványozás. A hatványozás azonosságai

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

FFT. Második nekifutás. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék október 2.

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

A félév során előkerülő témakörök

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Párhuzamos és Grid rendszerek

"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Programozási nyelvek 6. előadás

I. LABOR -Mesterséges neuron

Magas szintű optimalizálás

1. zárthelyi,

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Előadó: Nagy István (A65)

A programozás alapjai 1 Rekurzió

Mátrixok 2017 Mátrixok

Digitális jelfeldolgozás

Fehérzajhoz a konstans érték kell - megoldás a digitális szűrő Összegezési súlyok sin x/x szerint (ez akár analóg is lehet!!!)

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

ÁGAZATI SZAKMAI ÉRETTSÉGI VIZSGA VILLAMOSIPAR ÉS ELEKTRONIKA ISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ A MINTAFELADATOKHOZ

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Polinomok, Lagrange interpoláció

SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Digitális rendszerek. Mikroarchitektúra szintje

Bevezetés a párhuzamos programozási koncepciókba

Shift regiszter + XOR kapu: 2 n állapot

Számítógép architektúrák záróvizsga-kérdések február

Kereső algoritmusok a diszkrét optimalizálás problémájához

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Adatstruktúrák, algoritmusok, objektumok

Bevezetés a programozásba. 8. Előadás: Függvények 2.

16. modul: ALGEBRAI AZONOSSÁGOK

Alapvető polinomalgoritmusok

Elosztott rendszer architektúrák

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

Diszkréten mintavételezett függvények

Általános algoritmustervezési módszerek

Kereső algoritmusok a diszkrét optimalizálás problémájához

ELEMI PROGRAMOZÁSI TÉTELEK

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

TARTALOM. Előszó 9 HALMAZOK

Intergrált Intenzív Matematika Érettségi

GPU-k a gravitációs hullám kutatásban

2012. október 2 és 4. Dr. Vincze Szilvia

Komputeralgebra Rendszerek

Algoritmizálás, adatmodellezés tanítása 8. előadás

14. Mediánok és rendezett minták

Adatszerkezetek 1. előadás

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Nagy Gábor compalg.inf.elte.hu/ nagy

VEZÉRLŐEGYSÉGEK. Tartalom

Komputeralgebra rendszerek

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Matematika (mesterképzés)

Digitális technika VIMIAA hét

Vektorok összeadása, kivonása, szorzás számmal, koordináták

Térinformatikai algoritmusok Elemi algoritmusok

Számítógép Architektúrák

Beregszászi István Programozási példatár

7. Szisztolikus rendszerek (Eberhard Zehendner)

Számítógépvezérelt irányítás és szabályozás elmélete (Bevezetés a rendszer- és irányításelméletbe, Computer Controlled Systems) 8.

Térinformatikai algoritmusok Elemi algoritmusok

Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam

Digitális technika VIMIAA hét

17.2. Az egyenes egyenletei síkbeli koordinátarendszerben

Osztályozó- és javítóvizsga témakörei MATEMATIKA tantárgyból 2016 / tanév

Hajder Levente 2018/2019. II. félév

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

Analízis ZH konzultáció

Dinamikus modellek szerkezete, SDG modellek

Információs Technológia

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Osztályozó- és javítóvizsga. Matematika tantárgyból

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Algoritmusok pszeudókód... 1

Negatív alapú számrendszerek

Adatszerkezetek 7a. Dr. IványiPéter

Átírás:

Automatikus párhuzamosítás egy szisztolikus példa

Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet

Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet

Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet

Motiváció Növekvő igény a gyors adatfeldolgozásra Pl. néhány számításigényes feladatra: időjárás modellezés kép- illetve jelfeldolgozás szeizmológiai számítások tengeri áramlatok modellezése... megoldási lehetőségek: a hardver tökéletesítése fizikai korlátok párhuzamos programozás

Gyorsítás n processzor = n-szeres sebességnövekedés? pl. Proc. száma Idő Feladat 1 tyúk 10 nap alatt 10 tojás 10 tyúk 1 nap alatt 10 tojás (10-szer gyorsabban)

Gyorsítás n processzor = n-szeres sebességnövekedés? pl. Proc. száma Idő Feladat 1 tyúk 10 nap alatt 10 tojás 10 tyúk 1 nap alatt 10 tojás (10-szer gyorsabban) 1 nő 9 hónap alatt 1 gyerek 9 nő 1 hónap alatt...

Párhuzamosság párhuzamosság megvalósítása: a feladatot kisebb részekre bontjuk az egyes részfeladatokat szétosztjuk a processzorok között, melyek párhuzamosan dolgozhatnak szükség van a processzorok munkájának az összehangolására a részfeladat megoldása lehetőleg ne tartson rövidebb ideig, mint ami szükséges a feladat kiosztásához felmerülő kérdések: hogyan kapcsolódnak egymáshoz a processzorok (milyen párhuzamos architektúra) hogyan osszuk szét a feladatokat az egyes processzorok között

Különböző osztályozási kritériumok... Szorosan összekapcsolt rendszerek (shared memory) Gyengén összekapcsolt (szét)osztott rendszerek (distributed memory)

processzorok kapcsolatrendszere különböző topológiák Figure: Az összekötő hálózatok tengere [Par:02]

Szisztolikus architektúrák jellemzők: azonos (általában egyszerű) műveleteket végző processzorok (PE) szabályos struktúra, lokális kapcsolat a szomszédos PE-k közt szinkron működés (globális órajelre) globális be-/ kimenet (a szélen levő PE-ken keresztül) PE PE PE PE PE Memória Figure: Lineáris szisztolikus architektúra

Példa Hosszú egészek szorzása (szekvenciális alg.) Feladat: Adott két egész szám: A = a m 1 a m 2... a 1 a 0, illetve B = b n 1 b n 2... b 1 b 0. Számítsuk ki: C = c m+n 1 c m+n 2... c 1 c 0 = A B. a b c a b + c (a + b + c) Figure: Processzor, mely képes elvégezni két számjegy átviteles szorzását (illetve összeadását) Pl. A = 321, B = 987: 321 987 2247 2568 2889 316827 A szekveciális algoritmus bonyolultsága: O(m n)

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 0 3 2 1 9 8 7 $ $ y, r = d[1 7] = 7, 0 Eredmény: $ $ $ $ $ $ $, $... y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[xa xb], if s = $ xa $, $, if s = $ = xa Alg. bonyolultsága: O(m + n) Processzorok száma: Max{m, n}/2 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 1 0 3 2 0 9 8 7 $ 1 0 1 7 $ 1 $ $ 7 $ y, r = d[0 + 7 2 + 1 8] = 2, 2 Eredmény: 7 $ $ $, $... y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[r + hb 0 xa + + ha 0 xb], if s = 1 $, $, if s = $ = xa Alg. bonyolultsága: O(m + n) Processzorok száma: Max{m, n}/2 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 2 0 0 3 0 0 9 2 $ 2 2 2 8 $ 1 2 $ 7 8 y, r = d[2 + 2 8 + 7 3 + 1 9] = 8, 4 Eredmény: 27 $ $ $, $... y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[r + ha 1 hb 1 + + hb 0 xa + + ha 0 xb], if s = 2 $, $, if s = $ = xa Alg. bonyolultsága: O(m + n) Processzorok száma: Max{m, n}/2 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 3 0 0 0 0 0 0 8 $ 3 4 3... 9 $ 1 2 3 7 8 y, r = d[4 + 8 3 + 2 9 + 7 0 + 1 0] = 6, 4 Eredmény: 827 9 $ d[3 9] = 7, 2 y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[r + hb 1 za + + ha 1 zb + + hb 0 xa + + ha 0 xb], if s = 3 d[xa xb], if s = $ xa Alg. bonyolultsága: O(m + n) Processzorok száma: Max{m, n}/2 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 4 0 0 0 0 0 0 6 7 4 4 0... 0 9 1 2 0 3 $ 7 8 y, r = d[4+8 0+1 0+7 0 + 1 0+7] = 1, 1 Eredmény: 6827 Alg. bonyolultsága: O(m + n) 0 1 2 3 9 $ d[2+9 0+3 0] = 2, 0 Processzorok száma: Max{m, n}/2 y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[r + hb 1 za + + ha 1 zb + + hb 0 xa + + ha 0 xb + y ], if s = 4 d[r + hb 0 xa + + ha 0 xb], if s = 1 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 5 0 0 0 0 0 0 1 2 4 1 0... 0 0 1 2 0 3 0 7 8 y, r = d[1+8 0+1 0+ 7 0+1 0+ 2] = 3, 0 Eredmény: 16827 Alg. bonyolultsága: O(m + n) 0 2 0 0 9 0 d[0 + 0 0 + 9 0 + 3 0] = 0, 0 Processzorok száma: Max{m, n}/2 y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb y, r = d[r + hb 1 za + + ha 1 zb + + hb 0 xa + + ha 0 xb + y ], if s = 4 d[r + ha 1 hb 1 + + hb 0 xa + + ha 0 xb], if s = 2 d[a] = a mod β, a β

Példa Hosszú (tetszőleges pontosságú) egészek szorzása (online szisztolikus alg.) Lépés: 6 0 0 0 0 0 0 3 0 4 0 0 0 0 1 2 0 3 0 7 8 0 3 0 0 9 0... y, r = y y s r za xa zb xa xb ha 0 ha 1 hb 0 hb 1 xb Eredmény: 316827 Alg. bonyolultsága: O(m + n) Processzorok száma: Max{m, n}/2 d[a] = a mod β, a β

Automatikus párhuzamosítás ötlet Figure: Lineáris szisztolikus rács induktív (rekurzív) felépítése hasonlóság a szisztolikus rács induktív felépítése, illetve a feadat rekurzív megfogalmazása (funkcionális program argumentumának induktív dekompozíciója) között

Automatikus párhuzamosítás ötlet Két lépés: konkrét architektúra típus előzetes tanulmányozása cél: találni egy rekurzív összefüggést, mely az illető típusú architektúra működését jellemzi ugyanezt a logikát alkalmazzuk fordítva: ha sikerül a feladatnak egy olyan rekurzív leírását megadni, ami megfelel egy (vagy több) bizonyos architektúra működését jellemző leírásnak a feladatot (viszonylag) egyszerű levetíteni az illető típusú architektúrára.

Egy konkrét architektúra típus tanulmányozása Adatfolyam egy online szisztolikus tömbben, mely a bemenetet k = 2 lépést követően kezdi továbbítni. az Y = F [X ] eredménylista (az első 4 elem kivételével) kiszámolható rekurzívan X 4 illetve F [X 2 ] függvényében

A B kifejezés kifejtése kifejtés szabályai (polinomok szorzása esetén): skaláris elem hozzádása egy polinomhoz: két polinom összeadása: a + (b B) = (a + b) B (a A) + (b B) = (a + b) (A + B) skaláris elem szorzása egy polinommal: a (b B) = (a b) (a B) két polinom szorzása: (a A) (b B) = (a b) ((a B) + (b A) + (0 (A B)))

A B kifejezés kifejtése (polinomok szorzása esetén) A B = = (a 0 A1 ) (b 0 B1 ) a 0 = a 0 b 0 + = a 0 b 0 + B1 b 0 A1 0 (A 1 B 1 ) a 0 (b1 B2 ) = a 0 b 0, a 0 b 1 + b 0 b 0 (a1 A2 ) 0 A 1 B 1 a 0 a 1 + b 0 A 1 B 1 B2 A2

=... = a 0 b 0, a 0 b 1 + b 0 a 1, a 2 b 0 + a 1 b 1 + a 0 b 2 ), a 3 b 0 + a 2 b 1 + a 1 b 2 + a 0 b 3 ((a 0 B4 ) + (b 0 A4 )+ +(a 1 B3 ) + (b 1 A3 ) + (A 2 B 2 )) a kapott rekurzív összefüggés: H 0 [A] T 4 [B] H 0 [B] T 4 [A] T 4 [A B] = + H 1 [A] T 3 [B] H 1 [B] T 3 [A] T 2 [A] T 2 [B]

Az átmenetfüggvény meghatározása a kapott rekurzív összefüggés alapján a kifejezés elemeinek megfeleltetése az egyes regisztereknek: T 2 [A] T 2 [B] y T 4 [A B] y T 4 [A] xa, T 4 [B] xb T 3 [A] za, T 3 [B] zb H 0 [A] ha 0, H 0 [B] hb 0 H 1 [A] ha 1, H 1 [B] hb 1 Az első négy elem kiszámítását megadó összefüggésből hasonló módon kapjuk az átmenetfüggvény y kiszámítására vonatkozó részét az első négy lépésben (amikor a jobboldali szomszéd PE még nem szolgáltat semmiféle részeredményt).