Hatékonyságának értékelése párhuzamosításhoz Intel® szoftver

Létrehozása egy párhuzamos változata lehetővé teszi az alkalmazások jelentősen növeli a sebességet az adatfeldolgozás. párhuzamosítás siker általában határozza meg a gyorsulás a munka a párhuzamos programok vonatkozásában a soros változata. Ebben az esetben érdemes összehasonlítani az eredményt egy bizonyos felső határt. Ezt meg lehet tenni a segítségével Amdahl törvény (Amdahl törvény) és Gustaf (Gustafson törvény).

bemenetek

Minimális futási képes kezelni nagy adathalmazok (például nagyobb számú sorok pixel, vagy használni a fizikai modellek nagyobb léptékű) ésszerű időt. Az egyik intézkedés a növekedés ilyen teljesítmény, hogy gyorsítsák (sebességnövekedés).

Általánosságban elmondható, hogy a gyorsulás - ez az arány a soros-párhuzamos program végrehajtásának ideje. Például, ha az egymás utáni alkalmazás fut 6720 másodperc, és a megfelelő párhuzamos alkalmazás 126,7 másodpercre (használatakor 64 áramlások és sejtmagok), a gyorsulás 53x (6720 / 126,7 = 53,038).

Az erősen skálázható modellek gyorsulás növeli majdnem arányosan növeli a magok számának (stream). Ha a mért gyorsulás nem növekszik arányosan, és továbbra is ugyanazon a szinten, vagy csökkenni kezd, az azt jelenti, hogy az alkalmazás nem skálázható jól adatokat. Ha ezek adathalmazok jellemző ez az alkalmazás, akkor nem jól skálázható.

Közel az jelenti, hogy a gyorsulás mutató áll metrikus hatékonyság (hatásfok). Ha a gyorsulás mutatja, hogy a párhuzamos végrehajtás gyors egymásutánban hatékonyságát mutatja, milyen jól használja a program a számítógépes erőforrások a rendszer. Kiszámításához a hatékonysága a párhuzamos alkalmazások kell venni a megfigyelt gyorsulás és osszuk el a magok száma használni. Ezt a számot a százalékban kifejezve. Például, egy 53-szorosra gyorsult a 64 magok ad hatásos 82,8% (53/64 = 0,828). Ez azt jelenti, hogy átlagosan a végrehajtása során minden egyes mag tétlen mintegy 17% -át az időt.

Mielőtt a projekt fejlesztője a párhuzamosság is érdekes lehet, hogy értékelje a gyorsulás, hogy elméletileg képes elérni. Ha a százalékos soros kódot, amely párhuzamosan futtatni, ismert (vagy becsült), akkor tudja használni Amdahl törvénye kiszámításához a felső határ a gyorsulás alkalmazások szükségessége nélkül előre írásban minden konkurens kódot. Az irodalomban számos változatai képlet Amdahl törvénye. Mindegyikben használt százalékos (tervezett) ideje, a párhuzamos végrehajtás (pctPar), szekvenciális végrehajtást (1 - pctPar), és a szálak számát / magok (p). Itt van egy egyszerű megfogalmazása Amdahl törvény kiszámítható a gyorsulás párhuzamos alkalmazások p magok:

Ez a képlet jelenti a szekvenciális végrehajtási időt, és normalizáljuk 1 osztva becsült idejét a párhuzamos végrehajtás a normalizált százaléka idő szekvenciális végrehajtást. párhuzamos végrehajtás időt úgy számítjuk ki, mint a százalékos szekvenciális végrehajtást (1 - pctPar) és a százalékos párhuzamos végrehajtás, osztva a száma használt magok (pctPar / p). Például, ha 95% az idő szekvenciális végrehajtást végezhető párhuzamosan 8 mag, a becsült gyorsulás szerint Amdahl törvénye szerint körülbelül 6x (1 / (0,05 + 0,95 / 8) = 5,925).

Amellett, hogy az arány kisebb, mint vagy egyenlő (≤) a képletben, a készítmény a Amdahl-törvény azt feltételezi, hogy a számítások végezhető párhuzamosan, lesz osztva végtelen számú magok. Ez a feltételezés eltávolítja a második kifejezés a nevező, ami azt jelenti, hogy a lehető legmagasabb gyorsulás egyszerűen egyenlő a inverzióját a maradék szekvenciális végrehajtást.

Amdahl törvénye gyakran kritizálták figyelmen kívül hagyva a kommunikáció költségek, a szinkronizálás, és más intézkedéseket áramlási szabályozással, valamint feltételezve végtelen számú processzorok. Amellett, hogy figyelmen kívül hagyva a költségek rejlő párhuzamos algoritmusok, az egyik legerősebb megfigyelések, hogy növelésével a magok száma a mennyisége a feldolgozandó adatok is jellemzően növeli. Amdahl törvénye magában foglalja egy rögzített adathalmaz bármely magok száma, és hogy a százalékos szekvenciális végrehajtási idő ugyanaz marad.

Ha a párhuzamos alkalmazás segítségével nyolc mag képes kezelni az adatmennyiség meghatározott nyolcszor nagyobb, mint az előbbi, akár egyidejűleg a soros rész növeljük? Még ha ez növeli az adatmennyiség aránytalan növekedést. Az igazi gyakorlat azt mutatja, hogy egy következetes futási időben is szinte állandó.

Gustafson törvénye, más néven méretezhető gyorsulás (pikkelyes sebességnövekedést). figyelembe veszi a növekedés adatméretet növekedésével arányosan a magok számának és kiszámítja (felső korlát) A gyorsulás az alkalmazás mintha egy nagyobb mennyiségű adatot lehet feldolgozni. Formula skálázható gyorsulás a következő:

Mint Amdahl törvénye képletben p jelöli a magok számának. Az egyszerűség kedvéért, s az idő százalékát szekvenciális végrehajtást párhuzamosan az alkalmazása az említett adatok meghatározott méretű. Például, ha az 1% a munkaidő 32 sejtmagok végezzük egymást követően, a gyorsulási teljesítményt az alkalmazás ugyanazon adathalmaz képest teljesítményét egy egymagos egy adatfolyam (feltételezve, hogy ez lehetséges) a következő:

Lássuk, hogy nem fog adni nekünk alatt ezek a feltételezések, Amdahl törvénye. Ha a százalékos szekvenciális végrehajtást egyenlő 1%, a Amdahl törvénye - 1 / (0,01 + (0,99 / 32)) = 24.43x. Azonban ez az eredmény hamis, hiszen a százalékos szekvenciális idő otsenon 32 végrehajtást a magok. Ebből például nem világos, hogy milyen százalékban szekvenciális végrehajtást lehet, hogy nagyobb vagy kisebb gócok számát. Ha a kód tökéletesen skálázható és adatmennyiség növekedésével, illetve a magok száma, ez a százalék maradhat ugyanaz, és Amdahl törvénye lenne megjósolni a gyorsulás egymagos feladatok (fix méretű) 32 magot.

Másrészt, ha a teljes idejét a párhuzamos végrehajtás ismert 32 atommagok, miközben teljes mértékben a soros végrehajtását lehet számítani, és a gyorsulás ezt a problémát egy fix méretű (azaz, hogy lehet számítani a közös magra) jósolható meg Amdahl törvény 32 magok. Feltételezve, hogy a teljes végrehajtási ideje a párhuzamos alkalmazását 32-1040 másodperc magok, míg 1% -a, amely idő lesz konzisztens, azaz 10,4 másodperc. Megszorozzuk a másodpercek számát (1029,6), a párhuzamos végrehajtás mag 32, azt találjuk, hogy a teljes összeg által végzett munka alkalmazása, elfoglalja 1029,6 * 32 + 10,4 = 32957,6 másodperc. Párhuzamosak idő (4.10 másodperc) az 0,032% az összes működési ideje. Ezzel eredményeként Amdahl törvénye ad nekünk a gyorsulás 1 / (+ 0,00032 (0,99968 / 32)) = 31.686x.

Ami a törvény Gustafson ismerni kell a százalékos szekvenciális párhuzamos végrehajtás ideje, ezt a képletet általában kiszámításához használt gyorsulás párhuzamos végrehajtás skálázható (növekvő mennyiségű adat megfelelő számú mag) viszonyított sorrendje feladatait az azonos méretű. A fent említett példák, ebből következik, hogy a szigorú adatok felhasználása végrehajtásáról szóló program a képlet Amdahl törvény ad egy sokkal pesszimistán értékelik, mint képlet skálázható gyorsulás.

ajánlások

Kiszámításánál a gyorsulás akkor kell használni, hogy a legjobb szekvenciális algoritmust, és a leggyorsabb soros kód összehasonlításra. Gyakran előfordul, hogy könnyebb összevessünk nem a legjobb szekvenciális algoritmust. Még ezekben az esetekben nem valószínű, hogy bárki is használja a soros kódot, ha van egy gyorsabb változata. Így, még ha a használt algoritmust különböző, a számításhoz a gyorsulás a megfelelő párhuzamos alkalmazása akkor kell használni a legjobb működési ideje a leggyorsabb kódot.

Ha megad egy értéket a gyorsulás szükséges egy szorzó. Gyorsul százalékban kifejezve. Ebben az esetben a használata százalékos zavaró lehet. Például, ha azt mondjuk, hogy a párhuzamos kód 200% -kal gyorsabb szekvenciális, ez azt jelenti, hogy működik az idő felében soros változata, és egy külső? Majd a gyorsulása 105% szinte megegyezik az egymást követő műveletek vagy kétszer olyan gyorsan? A bázis-szekvenciák gyorsítás közben a 0% -os vagy 100%? Másrészt, ha az alkalmazás párhuzamos gyorsulás 2x, egyértelmű, hogy a munka nem volt ott fele annyi idő alatt (azaz párhuzamos változat képes volt dolgozni kétszer ez idő alatt, míg a soros kódot csak egyszer működik).

Nagyon ritka esetekben, a gyorsulás alkalmazások meghaladja a magok száma. Ezt a jelenséget nevezik szuperlineáris gyorsulás. Normál ok szuperlineáris gyorsulás, hogy közben bomlik adatblokkot váltak elég kicsi ahhoz, hogy teljesen elférjen a helyi cache magok. A sorozat művelet adatokat kell állandóan átmennek a cache és a feldolgozó kénytelen volt várni a cache szükséges adatokat. Ha az adatok mennyisége elég nagy volt ahhoz, hogy kiszorítsa a korábbi cache vonal, minden további használata a cache sorok arra kényszeríti, hogy a processzor számíthat a megjelenésüket újra. Ha az adatokat blokkokra osztjuk, amelyeket teljes egészében cache kernel cache várakozási idő nem elvesztegetett betöltése után minden sorban. Így a használata több magot is kiküszöbölhetjük a kapcsolódó költségek a szekvenciális végrehajtást egy egymagos. Túl kicsi adathalmazok, amelyek kisebbek, mint a hagyományos, adhat hamis javult a teljesítmény.

használati utasítás

alternatív modellek konkurencia, bizonyos mértékig, amely tisztázza a jelen egyszerű modellje Amdahl törvény konfliktusok javasoltak.

Mivel azonban az egyszerűség és a megértés, hogy ez egy elméleti felső határa, amely a legvalószínűbb, akkor nem lehet elérni, vagy leküzdeni, Amdahl törvénye egy egyszerű és értékes mutató gyorsulás kapacitások sorozatos alkalmazásokhoz.

további források

Kapcsolódó cikkek