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

Hasonló dokumentumok
Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

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

Diszkrét matematika 2.

Dr. habil. Maróti György

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

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

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Gráfelméleti feladatok. c f

Gráf csúcsainak színezése. The Four-Color Theorem 4 szín tétel Appel és Haken bebizonyították, hogy minden térkép legfeljebb 4 színnel kiszínezhető.

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

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

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

Felvételi tematika INFORMATIKA

Adatszerkezetek 2. Dr. Iványi Péter

Diszkrét matematika 2.C szakirány

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Algoritmusok bonyolultsága

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Algoritmusok és adatszerkezetek gyakorlat 07

Algoritmuselmélet 11. előadás

Párhuzamosítás adatbáziskezelő rendszerekben

angolul: greedy algorithms, románul: algoritmi greedy

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

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

Bonyolultságelmélet gyakorlat 06 Gráfos visszavezetések II.

Diszkrét matematika 2. estis képzés

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

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Programozási módszertan. Mohó algoritmusok

Dr. Schuster György február / 32

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Bevezetés a számításelméletbe II. Zárthelyi feladatok április 23.

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Algoritmuselmélet 2. előadás

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

Régebbi Matek M1 zh-k. sztochasztikus folyamatokkal kapcsolatos feladatai.

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

Matematikai alapok és valószínőségszámítás. Statisztikai becslés Statisztikák eloszlása

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Matematika javítóvizsga témakörök 10.B (kompetencia alapú )

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Számítógép és programozás 2

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Diszkrét matematika 2.

Diszkrét matematika 2. estis képzés

Alap fatranszformátorok II

15. A VERSENYRENDEZÉS

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

Diszkrét matematika 2.C szakirány

2017/2018. Matematika 9.K

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

1. tétel - Gráfok alapfogalmai

Példaképpen állítsuk be az alábbi értékek eléréséhez szükséges alkatrészértékeket. =40 és =2

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Adatszerkezetek II. 10. előadás

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Fraktálok. Löwy Dániel Hints Miklós

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

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

Az egyenes egyenlete: 2 pont. Az összevont alak: 1 pont. Melyik ábrán látható e függvény grafikonjának egy részlete?

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

2008 II. 19. Internetes alkalmazások forgalmának mérése és osztályozása. Február 19

A tanulók gyűjtsenek saját tapasztalatot az adott szenzorral mérhető tartomány határairól.

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

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet 1. előadás

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Diszkrét matematika 2.C szakirány

Mérési jegyzőkönyv. az ötödik méréshez

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

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

NULLADIK MATEMATIKA ZÁRTHELYI

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Az értékelés a következők szerint történik: 0-4 elégtelen 5-6 elégséges 7 közepes 8 jó 9-10 jeles. A szóbeli vizsga várható időpontja

NULLADIK MATEMATIKA ZÁRTHELYI

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

Megoldások 7. gyakorlat Síkgráfok, dualitás, gyenge izomorfia, Whitney-tételei

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

Optimalizálási eljárások MSc hallgatók számára. 11. Előadás

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

2018, Diszkre t matematika. 10. elo ada s

Számítógép hálózatok, osztott rendszerek 2009

Alapfogalmak II. Def.: Egy gráf összefüggő, ha bármely pontjából bármely pontjába eljuthatunk egy úton.

Gráfok csúcsszínezései

Adatszerkezet - műveletek

Konvexitás, elaszticitás

Modulzáró ellenőrző kérdések és feladatok (2)

Diszkrét matematika 2. estis képzés

Occam 1. Készítette: Szabó Éva

Széchenyi István Egyetem

2. Elméleti összefoglaló

Analóg elektronika - laboratóriumi gyakorlatok

Átírás:

Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus EREW párhuzamos gépen O((log n) 4 ) idő alatt oldja meg a maximális független halmaz keresés problémáját O(n 3 /(log n) 3 ) processzor segítségével. Az implementáció JAVA nyelven történt a jgrapht gráf könyvtár felhasználásával. Az algoritmus leírása implementációs kérdésekre nem tér ki, tehát szabad kezet kaptam az implementációra, kivéve, hogy a gráf műveletek megvalósítására nem volt befolyásom. Továbbá a tesztkörnyezet (egy kétprocesszoros 64 bites számítógép) is erősen befolyásolta az implementációt. Nagyszámú rövid futási idejű taszk erősen csökkentette a futási időt, ezért bizonyos részek párhuzamosítását el is hagytam. 2. Az algoritmusról Az algoritmus alapötlete az, hogy a független csúcshalmazunkat O((log n) 2 ) iteráció alatt állítsuk elő. Az algoritmus vázlatosan a következő: I Ø; H V; while H Ø do begin S egy független halmaz a H indukált részgráfjában; I I U S; H H (S U N H (S)); end; A kívánt lépésszám úgy érhető el, ha S U N H (S) = Ω( H /log H ). Az algoritmus legnagyobb része az ilyen tulajdonságú S halmaz előállítását célozza. Ennek lényege egy pontszámítási rendszer, amellyel becsülni lehet, hogy megfelelő tulajdonságú-e a halmaz. Ez a pontszám annál nagyobb, minél nagyobb a halmazban található csúcsok fokszáma. Első lépésben tehát keresnünk kell a H egy olyan részhalmazát, amelyben a relatív magas fokszámú elemek száma elég nagy. Az így kapott halmaznak előállítjuk az összes, megadott paraméternek megfelelő BDDI (Balanced Incomplete Block Design) részhalmazát, és ezek közül kiválasztjuk a legnagyobb pontszámmal rendelkezőt. Végül az így kapott halmazt függetlenné tesszük, a benne szereplő élek tetszőleges csúcsainak eliminálásával. Az algoritmus vázlata ezek után: 1

I Ø; H V; while H Ø do begin K HEAVYFIND(H); T SCOREFIND(H); S INDFIND(T); I I U S; H H (S U N H (S)); end; Az így kapott algoritmusban aztán az egyes lépések külön-külön jól párhuzamosíthatóak, de a felhasznált munka becsléséhez érdemes az algoritmust egyelőre párhuzamosítás nélkül vizsgálni. 3. Az algoritmus elemzése párhuzamosítás nélkül Látható, hogy az új algoritmusunk elég bonyolult, várhatóan sokkal több munkát végez, mint az eredeti soros algoritmus. Ezt a mérések is megerősítik: 1 9 8 7 6 5 4 3 2 1 Párhuzamos Soros 1. ábra A függőleges tengelyen a futási idő látható milliszekundumban, a vízszintes tengelyen pedig a gráf csúcsszáma. A párhuzamos algoritmusnál csak 2 csúcsig végeztem el a méréseket, így is látható az óriási eltérés a futási időben. Most vizsgáljuk meg az algoritmusok memória felhasználását. A 2. ábrán látható diagram függőleges tengelye a maximális memória felhasználás kilóbájtban, a vízszintes pedig a gráf 2

csúcsszáma. Megfigyelhető, hogy bár a két algoritmus memória felhasználási görbéje hasonló, a soros csúcsszámhoz viszonyított memória felhasználása mégis sokkal nagyobb (lesz), mint a párhuzamosé, mivel a párhuzamos algoritmus memória felhasználásában ugrások tapasztalhatók (ez itt sajnos nem látszik jól, mert 5 csúcs után nem elég sűrű a mintavétel a párhuzamos algoritmus futási ideje miatt, de 5 és 3 csúcs között például a memória felhasználás gyakorlatilag nem változik) és köztük a memória felhasználás nem nő lényegesen, míg a soros algoritmusnál folyamatos növekedés tapasztalható. Ez azért van, mert a SCOREFIND eljárásban az aktuális csúcshalmazunkhoz kapcsolódó 2 hatványnál (max{2 l -1 l egész és 2 l -1 [1,( H /log H )]}) kisebb egyenlő kitevőjű 2 hatvány méretű részhalmazokat állítunk elő és ezek a részhalmazok határozzák meg nagyságrendileg az algoritmus memória felhasználását. 6 5 4 3 2 Soros Párhuzamos 1 2. ábra A 3. ábra a 2 csúcsra lefuttatott párhuzamos algoritmus memória telemetriáját mutatja. A memória felhasználásban mutatkozó hegyek völgyek az egyes iterációkhoz kapcsolódnak, amelyek a SCOREFIND eljárás futása során veszik fel a maximumukat. Ehhez nagyon hasonló ábrát fogunk látni később a párhuzamosított algoritmus processzor felhasználásában. Szintén érdemes megfigyelni, ahogy ezek a kiemelkedések időben egyre rövidülnek, ahogy egyre kevesebb és egyre kisebb méretű ilyen részhalmazt kell előállítani. Az utolsó, időben hosszabb kiemelkedés a tényleges függetlenséget vizsgáló eljárás nyoma. 3

3. ábra Egy másik tényező, hogy hogyan teljesül az algoritmus fontos tulajdonsága, az iterációk száma. A 4. ábrán látható az iterációk száma különböző csúcsszámok mellett. A gyakorlati érték jól közelíti az elméletit. 3 25 2 15 1 Elmélet Teszt 5 4. ábra Végül vizsgáljuk meg, hogy az algoritmus mely része milyen arányban foglalja a processzor erőforrásokat. Az 5. ábrán 5 a 6. ábrán pedig 3 csúcsú gráfon futattam az algoritmust. Látható, hogy míg kisebb csúcsszám esetén a meghatározó eljárás a HEAVYFIND eljárás, addig nagyobb csúcsszámoknál a SCOREFIND veszi át a helyét, amely sokkal hatékonyabban párhuzamosítható! Ugyanakkor, ha eljárásbontásban nézzük meg a profil adatokat, akkor azt látjuk, hogy az összes futási idő kb. 4-5% -áért a részgráf meghatározás a felelős (bár ennek aránya is csökken a csúcsszám növelésével), aminek párhuzamosítására nincs lehetőség ebben az implementációban. 4

5. ábra 6. ábra 4. A párhuzamosított algoritmus Végül vizsgáljuk meg, hogyan lehet az algoritmust párhuzamosítani. A főciklus két halmazművelete elvégezhető párhuzamosan O(log n) időben. Az INDFIND eljárás, minden élhez egy processzort rendelve szintén elvégezhető O(log n) időben. A HEAVYFIND eljárásban egy bizonyos fokszám feletti csúcsok számát határozzuk meg, ez is könnyedén párhuzamosítható csúcsszám számú processzor felhasználásával, bár a tesztek során az mutatkozott meg, hogy 2 processzoron, mivel a párhuzamosítható kódrészlet nagyon kevés munkát ad egy-egy processzornak, a párhuzamosítás rontja a futási sebességet. Ahol igazán komoly sebesség növekedés érhető el, az a SCOREFIND eljárás ciklusa, ahol minden iterációban generál egy új részhalmazt és kiszámolja a pontszámát, majd a legnagyobb pontszámút választja. Ezek az iterációk, különösen nagy csúcshalmaznál, sokáig futnak, és sokan vannak. A következő ábrán az látható, hogy a futási idő hogyan alakul az algoritmust 1, illetve 2 processzoron futtatva. Jól látható, hogy az előny nagy csúcsszámnál jön ki jelentősen (és csak a ciklus elején, amíg még a vizsgált H halmaz nagy), kis csúcsszámnál gyakorlatilag nem is jelentkezik. Ez a hatás jól látszik a 8. ábra processzor telemetriáján, ahol jól azonosíthatok az 1. processzor terheltségén az egyes ciklusok és látható az a pont, ahol már túl gyorsan fut le a SCOREFIND eljárás ahhoz, hogy a párhuzamosítás hatékonyan csökkentse a futási sebességet. 5

1 2 3 4 5 1 15 2 25 3 4 5 1 18 16 14 12 1 8 6 4 2 1 processzor 2 processzor 7. ábra És végül lássuk a processzor telemetriát két processzoron való futtatás esetén: 8. ábra A bal oldali doboz a másodlagos, a jobb oldali az elsődleges processzor kihasználtságát mutatja az idő tengelyen. Az idő tengely bal szélén kezdődik az algoritmus futása. Megfigyelhetők a bal oldali processzor kihasználtságán a SCOREFIND eljárás iterációinak elemszámmal csökkenő futási ideje. A 1% kihasználtság közötti részek, a rosszul párhuzamosítható (párhuzamosított) többi lépés által hagyott űrt jelentik. A futási időben középtájon megszűnik a másodlagos processzor kihasználtsága. Ez körülbelül 1 elemnél következik be, ez az a pont, ami alatt már nem érdemes párhuzamosan futtatni az egyes iterációkat. Ez a pont a 7. ábrán is megfigyelhető. 6