• Nem Talált Eredményt

A 2.4. táblázat a számításokhoz használt grakus kártya paramétereit tartalmaz-za. Összehasonlításul a jelenleg csúcskategóriás Tesla K20 kártya 2496 aritmetikai egységet tartalmaz.

Típus: GeForce GTX 570

Globális memória mérete: 1.34 Gb

Osztott memória mérete blokkonként: 49 Kb Regiszterek mérete blokkonként: 32 Kb

Multiprocesszorok (MP) száma: 15

SP-k száma MP-nként (warp size): 32

Memória busz szélessége: 320 bit

Órajel: 1.56 GHz

Kernel eléri a CPU memóriában tárolt adatokat: Igen Egyidej¶ adatmásolás és kernelfuttatás: Támogatva 2.4. táblázat. A számításokhoz használt GPU f®bb paraméterei.

A hibaterjedés és a futásid® vizsgálatához használt egyenletrendszerek véletlen-szám generátorral kerültek el®állításra:

A mátrix és x vektor elemei véletlen számok [0,1)-ben, b = Ax. Az algoritmus bemen® paraméterként az A mátrixot és a b vektort kapta meg, míg az eredményül kapott x0 vektor összevetésre került az eredeti x-el. A számítási eredményeket tar-talmazó 2.5. táblázat 100-100 független futtatás eredményeit tartalmazza. Minden futtatásnál az x és x0 vektorok elemeib®l páronként különbséget képzünk, hibának legnagyobb abszolút érték¶ különbséget tekintjük. A 100 futtatás alapján átlagolt hiba a táblázat utolsó oszlopába került. Sokismeretlenes egyenletrendszerek együtt-hatómátrixai meghaladhatják a rendelkezésre álló GPU memóriáját. (lásd: 2.3.1.)

kényszermegoldásnak természetesen id®költsége van. A táblázatban a 2-vel jelölt fu-tásid® CPU memóriában tárolt együtthatómátrixszal értend®, míg az 1-gyel jelölt GPU memóriába másolt együtthatómátrixszal készült. Természetesen a másolásnak is van id®költsége. A 8192 ismeretlenes esetben az együtthatómátrix már nem fér el a GPU memóriában, ezért itt futásid® adat nem áll rendelkezésre.

n Futásid®1 Futásid®2 Hibaátlag

2 6 ms 8 ms 0

4 8 ms 10 ms 7.81597E-14

8 10 ms 10 ms 2.13163E-14 16 16 ms 14 ms 1.00364E-13 32 24 ms 24 ms 1.82077E-13 64 46 ms 43 ms 7.43805E-12 128 100 ms 95 ms 6.81943E-12 256 245 ms 242 ms 7.41984E-12 512 886 ms 1 262 ms 4.81473E-11 1024 3.2 sec 4.6 sec 1.89602E-11 2048 14.7 sec 20.8 sec 8.06466E-13 4096 105.9 sec 191.4 sec 1.29308E-12

8192 23 min 2.35101E-12

2.5. táblázat. Számítási eredmények.

3. fejezet

Egy O (n 4 ) algoritmus párhuzamos architektúrán konvex testek

térfogatának kiszámítására

3.1. Konvex testek térfogatszámítása

Lovász László és Santosh Vempala nemrég közölt egy O(n4) m¶veletigény¶ algorit-must n dimenziós konvex testek térfogatának meghatározására. Az algoritmus több egymáshoz kapcsolódó, de kis mértékben eltér® szimulációs lépésb®l áll. Az els®

számítógépes implementáció lehet®vé tette az algoritmus viselkedésének tanulmányo-zását numerikus szempontból, de a vizsgált dimenziók száma nem haladhatta meg a 10-et, és az eredmények szórása sem volt kielégít®. Ebben a részben az algoritmus egy masszívan párhuzamos GPU architektúrára optimalizált, módosított változata kerül bemutatásra, amely többféle módszert tartalmaz a variancia csökkentésére. A gra-kus kártya több száz párhuzamosan m¶köd® számítóegységének kihasználásával olyan sebességnövekedést sikerült elérni, amellyel már a gyakorlatban is meghatározható 2 és 20 dimenzió közötti testek térfogata.

Konvex testek térfogatának polinomiális id® alatt történ® kiszámítása régóta fog-lalkoztatja a matematikusokat. A 80-as években bizonyítást nyert, hogy nem létezik a problémára polinomiális idej¶ megoldás. Ennek hatására a gyelem a statisztikai módszereken alapuló térfogatbecsl® eljárások felé fordult. Az áttörést Dyer, Frie-ze és Kannan (Dyer/FrieFrie-ze/Kannan 1991) cikksorozata jelentette, amelyben olyan véletlenen alapuló algoritmusokat mutattak be, amelyek polinomiális id®ben becslik konvex testek térfogatát. A véletlenen alapuló algoritmusokat randomizált

módsze-reknek nevezték. A 3.1. táblázat Simonovits (Simonovits 2003) nyomán mutatja be a randomizált algoritmusok történetét Simonovics maga is társszerz® számos, a témát érint® cikkben. A fokozatos fejlesztések eredményeképp Lovász, Simonovits, Kannan és Vempala (Kannan/Lovász/Simonovits 1997) a m¶veletigényt O(n27)-r®l O(n4)-re szorították le. Az eddigi legjobb eredmény Lovász és Vempala (Lovász/

Vempala 2003), (Lovász/Vempala J. of Computer and System Sciences 2006) két cikkében olvasható - a második írás az els® javított és magyarázatokkal b®vített vál-tozata.

A randomizált algoritmusok úgynevezett tagsági orákulumot használnak annak eldöntésére, hogy egy kérdéses pont a test belsejében helyezkedik el, vagy a testen kívül. Az egyes algoritmusok futásideje a térfogat meghatározásához szükséges orá-kulumhívások száma alapján kerül összehasonlításra. AzO(n)kifejezésben n a test dimenzióinak számát jelöli, a∗pedig arra utal, hogy m¶veletigény meghatározásánál a logaritmikus faktorokat gyelmen kívül hagyjuk.

A Lovász-Vempala algoritmus (továbbiakban LV) aK konvex testvol(K) térfoga-tát polinomiális id® alatt becsülirelhibahatáron belül, tetsz®legesprelvalószín¶séggel.

Az LV algoritmus els® számítógépes implementációját Lovász és Deák (Lovász/

Deák 2012) készítették el, amelynek segítségével 2 és 10 dimenzió közötti hiperkoc-kák térfogatát számolták. A teljesítménynövelés érdekében az LV algoritmus néhány ponton módosításra került. Erre a módosított változatra a továbbiakban LVD rövidí-téssel hivatkozunk. A variancia csökkentésére tett törekvések ellenére az eredmények pontossága nem érte el a várakozásokat. Számottev® pontosságnövekedés csak az algoritmus lépésszámának nagyságrendi növelésével érhet® el, ehhez viszont a gyakor-lati alkalmazhatóság érdekében a futásid®t vissza kell szorítani. A grakus kártyák több száz párhuzamosan m¶köd® számítóegysége elméletileg két nagyságrendnyi se-bességnövekedést tesz lehet®vé, de az elvi teljesítménymaximum megközelítéséhez az algoritmus tervezésénél több kritériumot is gyelembe kell venni. (Lásd: 2.2. feje-zet.) A GPU-k sajátosságaira való tekintettel az algoritmust több ponton módosítani kellett. Erre a változatra a továbbiakban PLVDM néven hivatkozunk. A rövidítésbe a P a párhuzamos megközelítésre utal, a többi bet¶ az érintett szerz®k neveire utal (Lovász, Vempala, Deák, Mohácsi). A bemutatott implementáció nVidia GTX 570 típusú grakus kártyán került tesztelésre, amely 480 párhuzamosan m¶köd® számító-egységével középkategóriás eszköznek számít. PLVDM segítségével lehet®ség nyílt az algoritmus több számítási példán történ® futtatására, és ennek köszönhet®en sajátos-ságainak mélyebb megismerésére.

A következ® fejezetekben az algoritmussal kapcsolatos számítási problémák és megoldási javaslatok kerülnek bemutatásra, különös tekintettel az algoritmus pár-huzamosítására, és a variancia csökkentésének érdekében tett módosításokra. Az LVD algoritmus elméleti matematikai hátterének részletes leírása megtalálható (Si-monovits 2003) cikkében. Magával az algoritmussal a korábban említett (Lovász/

Vempala 2003), (Lovász/Vempala J. of Computer and System Sciences 2006) cikkek foglalkoznak mélyebben.

Az LV térfogatszámító algoritmus lényegében egy olyan ceruzaszer¶ test felett vett Monte-Carlo integrálokból álló sorozattal számol, amelynek alapja az a konvex test, amelynek a térfogatát meg kívánjuk határozni. Az eredmény a ceruza térfo-gata, melynek alapján elfogadás-elvetés technikával meghatározható az eredeti test térfogata. A véletlen-szám generálással és a különböz® Monte-Carlo számításokkal a (Deák 1990), (Hammersley/Handscomb 1964) és (Devroye 1986) foglalkozik.

A Monte-Carlo integrálás alapvet®en jól párhuzamosítható. Az elért sebességnö-vekedés lehet®vé tette több varianciacsökkent® módszer vizsgálatát a gyakorlatban is, amelyek között az úgynevezett ortonormált becsl®vektorok módszere bizonyult a leghatékonyabbnak. A két nagyságrendnyi sebességnövekedésnek köszönhet®en lehe-t®ség nyílt 20 dimenziós testek térfogatának meghatározása.

A 3.2. fejezetben általános összefoglaló olvasható az 1990-2010 között kifejlesztett térfogatszámoló algoritmusokról és a LovászVempala algoritmus mögött meghúzódó f®bb gondolatokról. A 3.3. fejezet az LV algoritmust mélyebben mutatja be a mate-matikai jelölésrendszerrel együtt. A 3.5. fejezet a PLVDM implementáció felépítését tárgyalja, különös tekintettel a grakus kártyák felépítéséb®l adódó megfontolásokra.

Az ezt követ® fejezet számítási eredményeket közöl, amelyek alapján meghatározásra kerültek az optimális futtatási paraméterek.

Az utolsó fejezetben bemutatásra kerül a térfogatszámítás alkalmazása az op-timalizáció néhány területén (lásd (Lovász/Deák 2012), (Fábián 2013), (Romeijn/

Smith 1994), (Zverovich et al. 2012)).