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

Hasonló dokumentumok
egy szisztolikus példa

Párhuzamos programozási platformok

Párhuzamos programozási platformok

Grafikus csővezeték 1 / 44

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

Lineáris algebra (10A103)

Valasek Gábor

PTE PMMFK Levelező-távoktatás, villamosmérnök szak

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Digitális technika VIMIAA hét

Gauss elimináció, LU felbontás

Digitális technika VIMIAA hét

Matematika (mesterképzés)

1. Transzformációk mátrixa

Intergrált Intenzív Matematika Érettségi

Mátrixok 2017 Mátrixok

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

Vektorok, mátrixok, lineáris egyenletrendszerek

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

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

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Párhuzamos és Grid rendszerek

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

Összeállította: dr. Leitold Adrien egyetemi docens

Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával

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

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Számítógépes Grafika mintafeladatok

Mátrixok, mátrixműveletek

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

FIR SZŰRŐK TELJESÍTMÉNYÉNEK JAVÍTÁSA C/C++-BAN

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

Negatív alapú számrendszerek

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. INFORMATIKA II. (programozás) kategória

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

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

3. ZH-ban a minimum pontszám 15

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

Dinamikus modellek szerkezete, SDG modellek

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

Lineáris algebra. (közgazdászoknak)

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

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

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Lin.Alg.Zh.1 feladatok

KOVÁCS BÉLA, MATEMATIKA I.

1.1. Definíció. Azt mondjuk, hogy a oszója b-nek, vagy más szóval, b osztható a-val, ha létezik olyan x Z, hogy b = ax. Ennek jelölése a b.

Osztályozóvizsga követelményei

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

Diszkrét matematika II., 8. előadás. Vektorterek

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

2018/2019. Matematika 10.K

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

Számítási feladatok a Számítógépi geometria órához

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

NUMERIKUS MÓDSZEREK I. TÉTELEK

SZÁMÍTÁSOK A TÁBLÁZATBAN

A számítógép egységei


I. VEKTOROK, MÁTRIXOK

17. előadás: Vektorok a térben

A szimplex algoritmus

A PET-adatgy informatikai háttereh. Nagy Ferenc Elektronikai osztály, ATOMKI

9. MPI

1. Mátrixösszeadás és skalárral szorzás

Tartalomjegyzék. 3. Elsőfokú egyenletek és egyenlőtlenségek Elsőfokú egyenletek Valós szám abszolút értéke...

Matematikai programok

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Előadó: Horváth Judit

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

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

Magas szintű optimalizálás

Lineáris algebra (10A103)

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

OpenCL - The open standard for parallel programming of heterogeneous systems

Minimum követelmények matematika tantárgyból 11. évfolyamon

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

9. gyakorlat Lineáris egyenletrendszerek megoldási módszerei folyt. Néhány kiegészítés a Gauss- és a Gauss Jordan-eliminációhoz

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

GPGPU-k és programozásuk Dezső, Sima Sándor, Szénási

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

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

Neurális hálózatok bemutató

Lin.Alg.Zh.1 feladatok

Érettségi előkészítő emelt szint évf. Matematika. 11. évfolyam. Tematikai egység/fejlesztési cél

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Budapesti Műszaki Főiskola, Neumann János Informatikai Kar. Vektorok. Fodor János

Matematika A1a Analízis

Bevezetés az informatikába

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

Gauss-Seidel iteráció

Matematika szigorlat június 17. Neptun kód:

Átírás:

M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak a szintjei? Speciálisan, elosztott memóriájú rendszereknél ismertesse a Gaxpy-algoritmust gyűrűn. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A számítógép architektúrákat és programozási modelleket az adat es az utasítás mennyiségének függvényében a Flynn-féle osztályozás négy csoportra osztja. Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD SISD: egy adaton egy utasítás végrehajtása, nincs párhuzamosság Nincs párhuzamosság. SIMD: 1 műveletet hajt végre minden adaton Képfeldolgozáshoz hasznos. példák: GPU (videokártyán grafikai processzor), vektor processzorok, tömbprocesszorok. MISD: különböző műveleteket hajtanak végre ugyanazon az adaton (1 adat sok művelet) példák: többféle szűrő egy jelfeldolgozásánál, többféle kriptográfiai algoritmus futtatása azonos kódolt üzenet feltörésére MIMD: az előző kettő keveréke, különböző adatokon és különböző feladatokat hajtanak végre. Ez a modell az elterjedt, mivel többféle számításra szokták használni a számítógépeket (kivéve amikor nem) példák: mai számítógépek. Az architektúra kétféle módon valósítható meg. közös memóriával és elosztott memóriával. Az osztályozásnál a párhuzamos architektúrákat osztályozzák. Az egyes feladatoknál nem szükséges a processzorok számát növelni, elég lehet ha több utasítás végrehajtására képesek (több PU processing unit). 1

A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak a szintjei? A BLAS csomag célja a mátrix és vektor hatékony implementálása és szabványosítása. A rutinok az adott műveletnél legjobb, vagy legjobbnak tartott algoritmus megvalósításait tartalmazzák. A csomag algoritmusai különböző gépcsaládokra optimalizálva is elérhető (például AMD, Intel, Cray, Apple stb.) A csomag ingyenesen felhasználható, a szerzők kérése, hogyha módosítás történik az algoritmusukban, akkor a függvények legyenek átnevezve és jól dokumentálva a módosítások okai. Tehát a csomag célja: hogy elérhető egy ilyen jellegű algoritmusokat kínáló csomag több programozási nyelven és többféle processzorcsaládra. A csomag szintjei: A BLAS (Basic Linear Algebra Subprograms) csomag célja, hogy segítséget nyújtson a lineárisalgebra alapműveleteinek párhuzamos elvégzéséhez. A csomagnak három szintbe sorolható (Level 1 BLAS, Level BLAS, Level 3 BLAS). az első szint a vektoriális műveletek (vektor-vektor, vektor-skalár szorzás) a második a mátrix vektor műveletek (mátrix-vektor szorzás) a harmadik a mátrix mátrix műveletekre (szorzás, hatványozás) A csomag legnagyobb előnye, hogy létezik és gyorsan felhasználható. Bárki ki tudja használni, ezzel elősegítve a párhuzamos programozás hatékonyságát, valamint gyorsítja a fejlesztést. vektor-vektor szorzás Ο(log n) n darab processzor vektor skaláris szorzás Ο(1) n darab processzor vektorok összeadása ( darab) Ο(1) n darab processzor vektorok összeadása (n darab, mx1) mátrix-vektor szorzás (mxn * nx1) mátrix-vektor szorzás (mxn * nx1) Ο(logn) Ο(logn) Ο(n) mn mn darab processzor darab processzor van Ha soronként 1, m darab processzor van mátrix-mátrix szorzás (mxn * nxk) Ο(log n) Ο(n 3 ) darab processzor mátrix-mátrix szorzás (mxn * nxk) Ο(n) Ο(n ) darab processzor mátrix-mátrix szorzás (mxn * nxk) Ο(n ) Ο(n) darab processzor Az előbbi becslések szemléltetik az utópia esetét, mert általában nincs n processzorunk.

Speciálisan, elosztott memóriájú rendszereknél ismertesse a Gaxpy-algoritmust gyűrűn. Feladat: Gaxpy művelet (general Ax plus y) megoldása. Tehát a feladat a z vektor kiszámítása. z = y + Ax, A R n x n, x, y, z R n Elosztott memóriás rendszer: 1. ábra Soros algoritmus. ábra Négy processzoros gyűrű Minden processzornak van saját memóriája és a gyűrűn keresztül tud kommunikálni a többi processzorral. p = processzor szám, n = a bemenet teljes mérete r = processzoronként kezelt sorok száma n = rp, z 1 z p = y 1 y p + A 11 A 1p A p1 A pp Számítás közben a feladatot blokkokra bontjuk majd a részeredmények összegződnek (y érték inicializálása az első lépésben) Kommunikáció, az x vektor értékeit körbeadják. Minden egységben ugyanaz az algoritmus fut, add jobbra, várd balról és számold. Lépés Proc(1) Proc() Proc(3) 1 x 3 x 1 x x x 3 x 1 3 x 1 x x 3 x 1 x p 3

Amikor a részvektor (x) megérkezett: Lépés Proc(1) Proc() Proc(3) 1 y 1 = y 1 + A 13 x 3 y = y + A 1 x 1 y 3 = y + A 3 x y 1 = y 1 + A 1 x y = y + A 3 x 3 y 3 = y + A 31 x 1 3 y 1 = y 1 + A 11 x 1 y = y + A x y 3 = y + A 33 x 3 ( P μ folyamatoz: z μ = y μ + A μr x r A processzoroknál van a mátrix megfelelő darabja, és az x vektor egy része (r darab sora az x vektornak). Az adatok így szétoszthatók a különböző egységek között. p r=1 ) Az algoritmus hatékonysága úgy növelhető, ha minden processzor azonos terhelést kap, tehát ugyanannyi feladatot. Terheléselosztás Speciális esetben alsó háromszög mátrix, akkor a terhelés nincs jól elosztva: A terhelés megfelelő elosztásához az egyes processzorhoz tartozó részeket át kell rendezni. 4

A példában a mátrix 9x9 méretű és a p = 3, tehát minden processzorhoz r=3 rész tartozik. Ezeknek a részfeladatoknak az elosztásával lehet a módszert hatékonyabbá tenni. számítási idő kommunikációs idő r R α d + β d r, α d : send vagy recv összeállytásának ideje, β d : üzenet átvitel ideje, R: R flops per second (műveletvégzés) A terhelés elosztás problémája abból fakad, hogy ha 0 érték szerepel a mátrixban, ott nem kell számolni. A szélső esete az alsóháromszög mátrix, ami gyakran előfordulhat (pl. a rendszer örök életére dolgozhat ilyennel ). A probléma megoldása, hogy közel azonos mennyiségű számítási feladatott adjunk ki a processzoroknak. Az alsóháromszög mátrixhoz tartozó ábra, csak szemlélteti a problémát és a megoldását. 5