• Nem Talált Eredményt

Sz´am´ıt´og´ep-architekt´ ur´ak

2. Alapfogalmak, jel¨ ol´ esek 22

2.9. Sz´am´ıt´og´ep-architekt´ ur´ak

Sok kutat´o alkalmazza a k¨uls˝o t´aras modellt az algoritmus´anak hat´ekonys´ag´anak vizsg´alatakor. M´ara az ´ori´asi mem´oriam´ereteknek k¨osz¨onhet˝oen a legt¨obb adatb´azis elf´er a mem´ori´aban, valamilyen sz˝urt form´aban. Ilyen esetekben az elemz´eshez haszn´alt modell le-egyszer˝us¨odik az egyszer˝ubb k¨ozvetlen hozz´af´er´es˝u (RAM-) modellre (amely Neumann-modell [178] n´even is ismert, mivel a magyar sz¨ulet´es˝u Neumann J´anos javasolta el˝osz¨or ezt az archi-tekt´ur´at.). A programokat olyan modern processzorokon futtatj´ak, amely sokkal kifinomultabb a RAM-modelln´el. A modell t´ulzott egyszer˝us´ıt´ese ahhoz vezet, hogy az elemz´eseknek sem-mi k¨oze nincs a val´os´aghoz. Az ´uj modell ´uj elv´ar´asokat t´amaszt az algoritmusokkal szemben.

Ezekr˝ol egy kiv´al´o ´attekint´es olvashat´o a [120] tanulm´anyban. A modern processzorok legfon-tosabb saj´atoss´aga a t¨obbszint˝u mem´oria ´es a cs˝ovezet´ekes (pipeline-) feldolgoz´as.

2.9.1. T¨ obbszint˝ u mem´ oria, adatlokalit´ as

A mem´oria nem egyelten nagy blokk, sokkal ink´abb k¨ul¨onb¨oz˝o m´eret˝u, k´esleltet´es˝u mem´ori´akb´ol ´all´o hierarchikus rendszer. Min´el nagyobb a mem´oria m´erete, ann´al t¨obb id˝o kell a hozz´af´er´eshez. A hierarchia elemei, m´eret szerint cs¨okken˝o sorrendben a k¨ovetkez˝ok : regiszterek, p´ar kilob´ajtos els˝oszint˝u gyors´ıt´ot´ar, p´ar megab´ajtos m´asodszint˝u gyors´ıt´ot´ar, esetleges harmadszint˝u gyors´ıt´ot´ar, rendszermem´oria ´es merevlemez. Az adatot a rendszer-mem´ori´ab´ol a m´asodszint˝u gyors´ıt´ot´arba, a m´asodszint˝ub˝ol az els˝oszint˝u gyors´ıt´ot´arba blok-konk´ent m´asolhatjuk. A blokkm´eret egy Pentium 4-es processzor eset´en 128 b´ajt.

A blokkonk´enti feldolgoz´as m´as megvil´ag´ıt´asba helyezi az algoritmusok vizsg´alat´at : egyet-len bit el´er´es´ehez ´es beolvas´as´ahoz egy lass´u mem´ori´ab´ol ugyanannyi id˝o kell, mint a bitet tartalmaz´o teljes blokk el´er´es´ehez ´es beolvas´as´ahoz. M´asik adat el´er´ese ugyanebben a blokkban viszont nem ig´enyli m´ar a hozz´af´er´est a lass´u mem´ori´ahoz. ´Igy rendk´ıv¨ul fontos k¨ovetelm´enny´e v´alik adatlokalit´as, azaz hogy az adatok, amelyeket id˝oben egym´ashoz k¨ozel dolgozunk fel, a mem´ori´aban is k¨ozel legyenek egym´ashoz.

Az adatot feldolgoz´asakor be kell hozni a regiszterekbe. El˝ofordulhat, hogy m´ar eleve ott van, mert az el˝oz˝o m˝uveletekhez sz¨uks´eg volt r´a. A korl´atozott sz´am´u regiszterek miatt azonban sokkal val´osz´ın˝ubb, hogy az egyik gyors´ıt´ot´arban vagy a rendszermem´ori´aban helyezkedik el.

S˝ot, az is lehet, hogy a merevlemezen tal´alhat´o, ha az algoritmus mem´oriaig´enye annyira nagy, hogy lapoz´asra van sz¨uks´eg. Ha a m´asodszint˝u gyors´ıt´ot´arban vagy a rendszermem´ori´aban helyezkedik el a k´ıv´ant adat, akkor az adathozz´af´er´es ´un. cache miss-t okoz. Am´ıg ez az adat beker¨ul a regiszterekbe, a processzor v´egrehajthat m´as m˝uveleteket (ezer alapm˝uvelet, p´eld´aul

¨osszead´as elv´egz´es´ere k´epes ez id˝o alatt), ennek ellen´ere a teljes´ıtm´enye messze elmaradhat ilyenkor a maxim´alist´ol. Teh´at az adatstrukt´ura, algoritmus p´ar tervez´esekor t¨orekedn¨unk kell a min´el jobb adatlokalit´asra a cache miss-ek elker¨ul´ese ´erdek´eben.

2.9.2. Cs˝ ovezet´ ekes feldolgoz´ as, el´ agaz´ as-el˝ orejelz´ es

A programoz´ok ´altal haszn´alt m˝uveleteket a ford´ıt´o mikroutas´ıt´asok sorozat´ara bontja. A m˝uveleteket nem k¨ul¨on-k¨ul¨on, egym´as ut´an hajtjuk v´egre, hanem p´arhuzamosan dolgozzuk fel ˝oket, cs˝ovezet´ek haszn´alat´aval. Sajnos azonban az adatf¨ugg˝os´eg ´es a felt´eteles ugr´asok so-kat rontanak a p´arhuzamos feldolgoz´as hat´ekonys´ag´an. Adatf¨ugg˝os´egr˝ol akkor besz´el¨unk, ha egy utas´ıt´as egy el˝oz˝o utas´ıt´as eredm´eny´et˝ol f¨ugg. El´agaz´as-el˝orejelz´esn´el megj´osoljuk a felt´etel kimenet´et, ´es bet¨oltj¨uk a cs˝ovezet´ekbe az ennek megfelel˝o utas´ıt´asokat. Ha a j´osl´as hamis-nak bizonyul, akkor a cs˝ovezet´eket ki kell ¨ur´ıteni, ´es be kell t¨olteni a helyes utas´ıt´asokat.

Ezt a probl´em´at gyakran kik¨usz¨ob¨olhetj¨uk k¨ul¨onb¨oz˝o technik´ak alkalmaz´as´aval, (mint p´eld´aul k´od´atrendez´essel) amelyet automatikusan elv´egez a ford´ıt´o. Sz´am´ıt´asig´enyes algoritmus ter-vez´esekor azonban nek¨unk kell ¨ugyeln¨unk az adatf¨uggetlens´egre ´es az el´agaz´as-el˝orejelz´esre.

A cs˝ovezet´ekes feldolgoz´as lehet˝ov´e teszi, hogy egy ´orajel alatt t¨obb m˝uveletet is elv´egezz¨unk. A fent eml´ıtett probl´em´ak miatt azonban a processzor ´atlagos teljes´ıtm´enye messze nem ´eri el az optimumot. A felesleges felt´etelek ronthatj´ak a hat´ekonys´agot. Az el´agaz´as-el˝orejelz´es intelligens olyan szempontb´ol, hogy ha egy felt´etel kimenete sohasem v´altozik, akkor

a processzor ezt figyelembe veszi ´es a k´es˝obbiekben ennek megfelel˝oen j´osol. ´Igy a mindig igaz (vagy hamis) felt´etelek nem befoly´asolj´ak a hat´ekonys´agot.

El˝ ofeldolgoz´ as, hasonl´ os´ agi f¨ uggv´ enyek

Ebben a fejezetben a legfontosabb el˝ofeldolgoz´asi m˝uveleteket ismertetj¨uk, majd r´at´er¨unk arra, hogy milyen elterjedt m´ert´ekek vannak elemek k¨oz¨otti hasonl´os´agra. Mindenek el˝ott azt kell tiszt´aznunk, hogy milyen t´ıpus´u attrib´utumok l´eteznek matematikus szemmel.

Jel¨olj¨uk az A attrib´utum k´et ´ert´ek´et a-val ´es a0-vel.

I. Akateg´oria t´ıpus´u(nominal) attrib´utumn´al az attrib´utum ´ert´ekei k¨oz¨ott csak azonoss´agot tudunk vizsg´alni. Teh´at csak azt tudom mondani, hogy a=a0 vagy azt, hogya6=a0. A ka-teg´oria t´ıpus´u attrib´utum egy speci´alis esete abin´aris attrib´utum, ahol az attrib´utum csak k´et ´ert´eket vehet fel. A kateg´oria t´ıpus´u attrib´utumokat az irodalom n´ehafelsorol´as (enu-merated) vagy diszkr´et t´ıpusnak is h´ıvja. M´asodlagos jelent´es¨uk miatt a tanulm´anyban ezeket az elnevez´eseket nem haszn´aljuk. P´eld´aul a felsorol´as t´ıpus eml´ıt´es´en´el a legt¨obb in-formatikusnak a C++, java, C#-beli felsorol´as t´ıpus´u v´altoz´o jut esz´ebe, amelyek mindig egy´ertelm˝u megfeleltet´esben ´allnak egy eg´esz sz´ammal.

II. A sorrend t´ıpus´u (ordinal) attrib´utumokn´al az ´ert´ekeket sorba tudjuk rendezni, azaz az attrib´utum ´ert´eken teljes rendez´est tudunk megadni. Ha teh´at a6=a0, akkor m´eg azt is tudjuk, hogy a > a0 ´es a < a0 k¨oz¨ul melyik igaz.

III. Ha az eddigiek mellett meg tudunk adni egy + f¨uggv´enyt, amivel az elemek csoportot alkotnak, akkor intervallum t´ıpus´u (interval scale) attrib´utumr´ol besz´el¨unk.

IV. Ha egy intervallum t´ıpus´u attrib´utumn´al meg lehet adni z´erus ´ert´eket, vagy pontosabban az attrib´utum elemei gy˝ur˝ut alkotnak, akkor az attrib´utum ar´any sk´al´aj´u (ratio scale).

Az ar´any sk´al´aj´u attrib´utumot gyakran fogjuk val´os attrib´utumnak h´ıvni, hiszen a gya-korlati esetek t¨obbs´eg´eben az ar´any sk´al´aj´u attrib´utumok megad´as´ahoz val´os sz´amokat haszn´alunk. Azonban ne felejts¨uk el az ar´any sk´al´aj´u attrib´utum eredeti defin´ıci´oj´at, illet-ve azt, hogy az ar´any sk´al´aj´u attrib´utumok nem felt´etlen¨ul val´os sz´amokat tartalmaznak.

P´eld´aul egy ¨ugyfeleket le´ır´o adatb´azisban vannak bin´aris (pl. : b¨untetett el˝o´elet˝u-e), kategorikus (pl. : vall´as, csal´adi ´allapot) ´es intervallum (pl. : ´evsz´am) t´ıpus´u attrib´utumok is.

Furcsa m´od nem mindig trivi´alis, hogy egy attrib´utum milyen t´ıpus´u. P´eld´aul az id˝oj´ar´as jellemz´es´ere haszn´alt naps¨ut´eses, bor´us, es}os ´ert´ekekre mondhatjuk, hogy ez egy kateg´oria attrib´utum elemei. Ugyanakkor ´erezz¨uk, hogy abor´us valahol anaps¨ut´eses´es az es}os k¨oz¨ott helyezkedik el, ´ıgy ink´abb sorrend t´ıpus´unak mondan´ank az attrib´utumot.

36

Az intervallum t´ıpus´u attrib´utumok megad´as´ara is sz´amokat haszn´alunk, amelyekn´el

´ertelme van a k¨ul¨onbs´eg sz´am´ıt´as´anak, de a h´anyados k´epz´esnek nincs t´ul sok. Tulajdonk´eppen azt, hogy egy attrib´utum eset´eben mikor besz´el¨unk intervallum ´es mikor ar´any sk´al´aj´u t´ıpusr´ol az d¨onti el, hogy egy´ertelm˝u-e a z´erus pont defini´al´asa. Gondoljuk meg, hogy p´eld´aul az

´evsz´amokn´al h´any fajta null´at ismer¨unk. Hasonl´o a helyzet a h˝om´ers´eklet eset´eben (Fahrenheit kontra Celsius).