Párhuzamos programozási feladatok. BMF NIK tavasz B. Wilkinson és M. Allen oktatási anyaga alapján készült

Hasonló dokumentumok
Párhuzamos programozási feladatok

Párhuzamos programozási feladatok

A Hamilton-Jacobi-egyenlet

Példa sejtautomatákra. Homokdomb modellek.

Képfeldolgozás jól párhuzamosítható

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

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Molekuláris dinamika I. 10. előadás

MateFIZIKA: Pörgés, forgás, csavarodás (Vektorok és axiálvektorok a fizikában)

Programozás alapjai II. (7. ea) C++

Geometriai vagy kinematikai természetű feltételek: kötések vagy. kényszerek. 1. Egy apró korong egy mozdulatlan lejtőn vagy egy gömb belső

Robotika. Kinematika. Magyar Attila

Térbeli transzformációk, a tér leképezése síkra

1. Feladatok a dinamika tárgyköréből

Kinematika szeptember Vonatkoztatási rendszerek, koordinátarendszerek

Wavelet transzformáció

29. Nagy László Fizikaverseny Szalézi Szent Ferenc Gimnázium, Kazincbarcika február osztály

Képfeldolgozás jól párhuzamosítható

A brachistochron probléma megoldása

Közösség detektálás gráfokban

Automaták. bemenet: pénz, kiválasztó gombok stb. állapot: standby, pénz van behelyezve stb. kimenet: cola, sprite, visszajáró

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

Conway életjátéka (Conway' s Game of Life)

FIZIKA II. Dr. Rácz Ervin. egyetemi docens

PÉLDÁK ERŐTÖRVÉNYEKRE

A mechanika alapjai. A pontszerű testek dinamikája

Bolygómozgás. Számítógépes szimulációk fn1n4i11/1. Csabai István, Stéger József

Az elméleti mechanika alapjai

Newton törvények és a gravitációs kölcsönhatás (Vázlat)

"Flat" rendszerek. definíciók, példák, alkalmazások

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

A bifiláris felfüggesztésű rúd mozgásáról

Robotok inverz geometriája

Algoritmuselmélet 7. előadás

Transzformációk síkon, térben

Nem-lineáris programozási feladatok

Q 1 D Q 2 (D x) 2 (1.1)

Égi mechanika tesztkérdések. A hallgatók javaslatai 2008

1. ábra. 24B-19 feladat

Komplex számok. Komplex számok és alakjaik, számolás komplex számokkal.

A +Q töltés egy L hosszúságú egyenes szakasz mentén oszlik el egyenletesen (ld ábra ábra

Plakátok, részecskerendszerek. Szécsi László

A mérés célkitűzései: A matematikai inga lengésidejének kísérleti vizsgálata, a nehézségi gyorsulás meghatározása.

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

EGYSZERŰ GÉPEK. Azok az eszközök, amelyekkel kedvezőbbé lehet tenni az erőhatás nagyságát, irányát, támadáspontjának helyét.

Mechanika Kinematika. - Kinematikára: a testek mozgását tanulmányozza anélkül, hogy figyelembe venné a kiváltó

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

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

Denavit-Hartenberg konvenció alkalmazása térbeli 3DoF nyílt kinematikai láncú hengerkoordinátás és gömbi koordinátás robotra

Nemlineáris jelenségek és Kao2kus rendszerek vizsgálata MATHEMATICA segítségével. Előadás: Szerda, 215 Labor: 16-18, Szerda, 215

Mechanika - Versenyfeladatok

KÖRMOZGÁS, REZGŐMOZGÁS, FORGÓMOZGÁS

1. gyakorlat. Egyenletes és egyenletesen változó mozgás. 1. példa

Tömegpontok mozgása egyenes mentén, hajítások

Fraktál alapú képtömörítés p. 1/26

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Molekuláris dinamika. 10. előadás

Rezgőmozgás. A mechanikai rezgések vizsgálata, jellemzői és dinamikai feltétele

Koordinátageometria. , azaz ( ) a B halmazt pontosan azok a pontok alkotják, amelynek koordinátáira:

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK EMELT SZINT Koordinátageometria

Meghatározás: Olyan egyenlet, amely a független változók mellett tartalmaz egy vagy több függvényt és azok deriváltjait.

Fizika alapok. Az előadás témája

ANALÍZIS II. Példatár

Az alábbi fogalmak és törvények jelentését/értelmezését/matematikai alakját (megfelelő mélységben) ismerni kell: Newtoni mechanika

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Képfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008

Hamilton rendszerek, Lyapunov függvények és Stabilitás. Hamilton rendszerek valós dinamikai rendszerek, konzerva3v mechanikai rendszerek

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Érettségi feladatok: Trigonometria 1 /6

értékel függvény: rátermettségi függvény (tness function)

Mit nevezünk nehézségi erőnek?

Hatvani István fizikaverseny forduló megoldások. 1. kategória. J 0,063 kg kg + m 3

Kábel-membrán szerkezetek

Matematika A1. 8. feladatsor. Dierenciálás 2. Trigonometrikus függvények deriváltja. A láncszabály. 1. Határozzuk meg a dy/dx függvényt.

Az időmérés pontossága fontos, mert a távolságmérést erre alapozzuk.

PRÓBAÉRETTSÉGI MATEMATIKA május-június EMELT SZINT. Vizsgafejlesztő Központ

A Newton-Raphson iteráció kezdeti értéktől való érzékenysége

Térinformatikai adatszerkezetek

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Az inga mozgásának matematikai modellezése

Speciális relativitás

Felvételi tematika INFORMATIKA

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

Georg Cantor (1883) vezette be Henry John Stephen Smith fedezte fel 1875-ben. van struktúrája elemi kis skálákon is önhasonló

Mechanika. Kinematika

Rugalmas állandók mérése

Folyadékok és gázok áramlása

Számítógépes döntéstámogatás. Genetikus algoritmusok

Az analízis néhány közgazdaságtani alkalmazása

Irányításelmélet és technika I.

Kérdések Fizika112. Mozgás leírása gyorsuló koordinátarendszerben, folyadékok mechanikája, hullámok, termodinamika, elektrosztatika

Párhuzamos és Grid rendszerek

Fizika feladatok - 2. gyakorlat

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

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Lendület. Lendület (impulzus): A test tömegének és sebességének szorzata. vektormennyiség: iránya a sebesség vektor iránya.

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Átírás:

Párhuzamos programozási feladatok BMF NIK 2008. tavasz B. Wilkinson és M. Allen oktatási anyaga alapján készült

Gravitációs N-test probléma Fizikai törvények alapján testek helyzetének, mozgásjellemzőinek és a rájuk ható erőknek a meghatározása. Rekurzív szétosztás

Gravitációs N-test probléma - egyenletek Az m a és m b tömegű testek közötti gravitációs erő: m g a gravitációs gyorsulás, r a két test távolsága. Az F erő Newton 2. törvénye alapján gyorsítja a testet: F = m * a m r 2 m a test tömege és a a gyorsulás. F = a b g Párhuzamos programozási feladatok 3

Az időintervallumot jelölje Δt. Az m tömegű testre ható erő: F ( = m v Az új sebesség így: F t v t+1 v t Δ = + m ahol v t+1 a sebesség a t + 1 időpillanatban és v t a sebesség t időpontban. A Δt idő alatt a helyzetváltozás: x t+1 x t = v * Δt ahol x t a pozíció t paraméter szerint. A test mozgása során az erő változik. A számítást iterálni kell. t+ 1 Δt v t ) Párhuzamos programozási feladatok 4

N-test probléma soros kódja for (t = 0; t < tmax; t++) /* minden időperiódusra */ for (i = 0; i < N; i++) { /* minden testre */ F = Force_routine(i); /* az i. testre ható erő */ v[i]new = v[i] + F * dt / m; /* az új sebesség */ x[i]new = x[i] + v[i]new * dt; /* és pozíció */ } for (i = 0; i < N; i++) { /* minden testre */ x[i] = x[i]new; /* a sebesség és a helyzet */ v[i] = v[i]new; } Párhuzamos programozási feladatok 5

Párhuzamos kód indoka A soros program O(N 2 ) nagyságrendű egy iterációban, mivel mind az N test N - 1 testre fejt ki erőt. Ha N nagy, akkor az N-test problémára nem hatékony a soros kód. Párhuzamos programozási feladatok 6

A komplexitás csökkenhető, ha a távoli testek csoportját egy tömegbe redukáljuk úgy, hogy a klasztert alkotó testek tömegközéppontjába transzformáljuk az össztömegeket: tömegközéppont Testek klasztere Párhuzamos programozási feladatok 7

Barnes-Hut algoritmus Induljunk ki a teljes térből, ahol egy kocka tartalmazza a testeket. Elsőként osszuk a kockát nyolc részkockára. Ha egy részkocka nem tartalmaz testet, akkor a továbbiakban ne vegyük figyelembe. Ha a részkocka egy testet tartalmaz, akkor megőrizzük. Ha egy részkocka egynél több testet tartalmaz, akkor rekurzívan addig részkockákra bontjuk, amíg nem egy test lesz benne. Párhuzamos programozási feladatok 8

Készítsünk egy nyolcas fát (octtree) ahol minden csomópontból maximum nyolc él indul ki. A levelek cellákat reprezentálnak, amelyek pontosan egy testet tartalmaznak. A fa konstruálása után a részkocka teljes tömegét, és a tömegközéppont koordinátáját tároljuk minden csomópontban. Párhuzamos programozási feladatok 9

Minden testre ható erő megkapható, ha a fa gyökerétől elindulunk és eljutunk a csomóponting, ahol a klaszteres közelítés használható, azaz amikor: r ahol θ konstans tipikusan egy, vagy annál kisebb. d θ A fa elkészítése O(nlogn) nagyságrendű időt vesz igénybe, és az erőké is, így a teljes idő O(nlogn). Párhuzamos programozási feladatok 10

2 dimenziós tér rekurzív felosztása Felosztás menete részek (nem teljes) quadtree Párhuzamos programozási feladatok 11

Ortogonális rekurzív kettéosztás 2D-s területben elsőként keressünk egy függőleges egyenest, amely úgy osztja két részre, hogy mindkét félbe azonos számú test essen. Minden így kapott részt vízszintesen osszunk ketté egy egyenessel, hogy azonos számú testet tartalmazzanak. Amíg szükséges folytassuk a szétosztásokat. Párhuzamos programozási feladatok 12

Alacsony szintű képfeldolgozás Nyilvánvalóan párhuzamosítható számítás. Számos alacsony szintű képfeldolgozási művelet csak lokális adaton dolgozik, vagy esetleg egy szűk környezetből veszi inputját.

Geometriai transzformációk Objektum eltolása Dx értékkel x irányba és Dy értékkel y irányba: x = x + Dx y = y + Dy ahol x és y az eredeti koordináták, x, valamint y az újak. Objektum skálázása x irányban S x és y irányban S y értékkel: x = x* S x y = y * S y Párhuzamos programozási feladatok 14

Geometriai transzformációk Objektum forgatása θ szöggel a koordinátarendszer z tengelye körül: x = x * cos θ + y * sin θ y = -x * sin θ + y * cos θ Párhuzamos programozási feladatok 15

Régiókra particionálás Minden régiót külön processzben számolhatunk Párhuzamos programozási feladatok 16

Mandelbrot halmaz Nyilvánvalóan párhuzamosítható számítás

Mandelbrot halmaz A komplex sík pontjai, amelyek iteráció során változtatunk, de egy határon belül maradnak. z 2 = + k + 1 k ahol z k+1 a (k+1)-dik iterációja a z = a + bi komplex számnak és c komplex szám a a pont kezdeti helyzetét adja meg a komplex síkon. z kezdeti értéke nulla. Az iteráció addig folytatódik, amíg z nagysága kettőnél nem nagyobb, vagy az lépések száma egy határt el nem ér. A komplex z szám nagysága, mint vektorhossz: z c zlength = a 2 + b 2 Párhuzamos programozási feladatok 18

Soros rutin egy pontra structure complex { float real; float imag; }; int cal_pixel(complex c) { int count, max; complex z; float temp, lengthsq; max = 256; z.real = 0; z.imag = 0; count = 0; /* number of iterations */ do { temp = z.real * z.real - z.imag * z.imag + c.real; z.imag = 2 * z.real * z.imag + c.imag; z.real = temp; lengthsq = z.real * z.real + z.imag * z.imag; count++; } while ((lengthsq < 4.0) && (count < max)); return count; } Párhuzamos programozási feladatok 19

Mandelbrot halmaz Párhuzamos programozási feladatok 20

Párhuzamosítás Statikus feladat kiosztás Egyszerűen osszuk a teret fix számú részre és minden részt külön processz számoljon. Nem igazán hatékony, mert minden régió eltérő számú iterációt igényel. Dinamikus feladat kiosztás (Work pool modell) Amikor a processz elkészül a korábbi számítással, új feladatot kap. Párhuzamos programozási feladatok 21

Work pool modell Párhuzamos programozási feladatok 22

Celluláris automata Számítások randevú típusú szinkronizálással

Celluláris automata A feladatteret cellákra osztjuk. Minden cella véges állapotok közül pontosan egyet vesz fel. A cellákra a szomszédjai valamilyen hatással vannak bizonyos szabály szerint, és minden cella egy generációs szabállyal is rendelkezik, amely szimultán fut. A szabályok újra és újra alkalmazásra kerülnek minden generációs lépésben, így a cellák fejlődnek, vagy megváltoztatják állapotukat generációról generációra. A legismertebb celluláris automata John Horton Conway cambridge-i matematikus Élet játéka ( Game of Life ). Párhuzamos programozási feladatok 24

Az élet játéka Táblás játék elméletben végtelen méretű kétdimenziós cellatömbbel. Minden cellában egy organizmus lehet, nyolc szomszédja van. Kezdetben néhány cella foglalt. A következő szabályokat alkalmazzuk: 1. Minden organizmus, amelynek két, vagy három szomszédja van, életben marad a következő generációra. 2. Minden organizmus, amelynek négy, vagy több szomszédja van, meghal a túlnépesedés miatt. 3. Minden organizmus, amelynek maximum egy szomszédja van, elpusztul az izoláltság miatt. 4. Minden üres cellában, amelynek pontosan három nem üres szomszédja van egy új organizmus születik. E szabályokat Conway határozta meg hosszas kísérletek után. Párhuzamos programozási feladatok 25

Más egyszerű példa* halak és cápák Az óceán három dimenziós tömbbel modellezhető Minden cella tartalmazhat vagy halat, vagy cápát A halak és a cápák szabályokat követnek *: Más példák is lehetnek: nyulak rókák Párhuzamos programozási feladatok 26

Halak A következő szabályok szerint élnek: 1. Ha valamely szomszédos cella üres, akkor odaúszik. 2. Ha több szomszédos cella üres, akkor véletlenszerűen választ egyet. 3. Ha nincs üres szomszédos cella, akkor helyben marad. 4. Ha a hal mozog és eléri nemzési idejét (paraméter), akkor egy bébihalnak életet ad, amely a megüresedő cellába kerül. 5. A hal x generáció után meghal. Párhuzamos programozási feladatok 27

Cápák A következő szabályok vonatkoznak rájuk: 1. Ha valamely szomszédos cellában hal van, akkor a cápa abba a cellába megy és megeszi a halat. 2. Ha több szomszédos cellában van hall, akkor a cápa véletlenszerűen választ egyet, abba a cellába megy és megeszi a halat. 3. Ha nincs hal a szomszédos cellában, akkor a cápa egy nem foglalt szomszédos cellába mozog olyan szabályok szerint, mint a hal. 4. Ha a cápa mozog és eléri nemzési idejét, akkor egy bébicápának életet ad, amely a megüresedő cellába kerül. 5. Ha a cápa y generáción keresztül nem eszik, akkor meghal. Párhuzamos programozási feladatok 28

Valós CA példák Folyadék/gáz dinamika Folyadékok és gázok áramlása testek körül Gázok diffúziója Biológiai fejlődés Légáramlás repülőgép légcsavarjánál Homok eróziója/mozgása folyóparton Párhuzamos programozási feladatok 29

Részben szinkron számítás Nem minden iterációnál végezzük el a szükséges szinkronizációt Ez jelentősen csökkentheti az átfutási időt, mert a randevú típusú szinkronizálás általában nagyon lelassítja a számításokat A globális szinkronizációt randevú rutinnal végezzük bizonyos időnként Párhuzamos programozási feladatok 30