2009. január 28., szerda

Amikor a több mag kevesebb termést hoz

A 16-magos processzorok alig rendelkeznek nagyobb teljesítménnyel, mint egy kétmagos komplex alkalmazások esetén. A szuperszámítógépek sebességének növelése érdekében a processzormagok számának egyszerű növelésével történő, világszerte folytatott kísérletek meglepő módon azt mutatják, hogy romlik a teljesítmény több komplex alkalmazás esetén, legalábbis ezt tárják fel a Sandia-szimulációk. A Sandia-csapat azokat a legfontosabb algoritmusokat szimulálta, amelyek nagy adatállományokból vonnak ki ismereteket. A szimulációk azt mutatják, hogy jelentős mértékben növekszik a teljesítmény, ha két magról négyre térnek át, azonban alig van növekedés, ha négy helyett nyolcat használnak. Nyolc mag fölött pedig csökken a teljesítmény. A 16 magos processzornak alig jobb a teljesítménye, mint a kétmagosnak, ha pedig még több magot tesznek hozzá meredek csökkenés tapasztalható. A probléma egyrészt az egyidejűleg hozzáférhető memóriaelemek alacsony száma, valamint a processzormagok versengése a rendelkezésükre álló memóriabuszért. (A memóriabusz egy vezetékköteg, amely memóriacímeket és adatokat szállít a rendszer központi, véletlen elérésű memóriája (RAM) és a processzorok között.) A szupermarket analógiáját használva: ha egy helyett ketten dolgoznak a pultnál a vásárolni kívánt élelmiszer előkészítésén, akkor a kiszolgálásnak gyorsabbnak kell lennie. Vagy akár négy, nyolc, tizenhat stb. is dolgozhat egyszerre. A probléma az, ha a kiszolgáló nem fér hozzá az élelmiszerpulthoz, mivel akkor nem feltétlenül segíti a folyamatot. Még rosszabb, ha a kiszolgálók egymást zavarják. Hasonló módon nem működik az a logika, hogy egy mag gyors, kettő gyorsabb, négy még mindig gyorsabb, stb.

IT3-komment: Egyre több jel utal arra, hogy, sajnos, nem lehet a többmagos processzorok teljesítményét egyszerűen azzal növelni, hogy növelik a magok számát. Amint tudjuk, a processzorokban a tranzisztorsűrűség és az órafrekvencia növelésének fizikai határai vannak. Az új hardverirány, a moduláris felépítésű, többmagos processzorok készítése azonban a problémát részben áttolja az alkalmazási szoftver területére. Párhuzamos algoritmusokra, párhuzamos architektúrákra tervezett szoftverekre van szükség ahhoz, hogy a potenciálisan növekedő processzorteljesítmény valóban kihasználható legyen.

Nincsenek megjegyzések: