Szimmetrikus többfeldolgozás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. április 23-án felülvizsgált verziótól ; az ellenőrzések 7 szerkesztést igényelnek .

Szimmetrikus multiprocessing ( eng.  symmetric multiprocessing , rövidítve SMP ) - többprocesszoros számítógépek architektúrája , amelyben két vagy több azonos teljesítményű, azonos processzor egységesen csatlakozik a megosztott memóriához (és perifériás eszközökhöz), és ugyanazokat a funkciókat látja el (miért, valójában a rendszert szimmetrikusnak nevezzük ) [1] . Magyarul az SMP rendszereket szorosan csatolt multiprocesszoroknak is nevezik [2] , mivel ebben a rendszerosztályban a processzorok szorosan kapcsolódnak egymáshoz egy közös buszon keresztül, és egyenlő hozzáféréssel rendelkeznek az összes számítási rendszer erőforrásához (memória és I/O eszközök). és mindegyiket az operációs rendszer egyetlen példánya vezérli .

Flynn taxonómiájában az SMP gépek az SM-MIMD gépek osztályába tartoznak . A legtöbb többprocesszoros rendszer manapság az SMP architektúrát használja.

Leírás

Az SMP rendszerek lehetővé teszik bármely processzor számára, hogy bármilyen feladaton dolgozzon, függetlenül attól, hogy a memóriában hol tárolják az adott feladathoz tartozó adatokat – az operációs rendszer megfelelő támogatásával az SMP rendszerek könnyen mozgathatják a feladatokat a processzorok között, hatékonyan elosztva a terhelést.

A különböző SMP rendszerek különböző módon kapcsolják a processzorokat a megosztott memóriához. A legegyszerűbb és legolcsóbb megközelítés a rendszerbusz-kapcsolat [ 3 ] [4] . Ebben az esetben egy adott pillanatban csak egy processzor férhet hozzá a memóriához, ami jelentősen korlátozza az ilyen rendszerekben támogatott processzorok számát. Minél több processzor, minél nagyobb a megosztott busz terhelése, annál tovább kell minden processzornak várnia, amíg a busz szabadon hozzáfér a memóriához. Egy ilyen rendszer általános teljesítményének csökkenése a processzorok számának növekedésével nagyon gyorsan megtörténik, így általában az ilyen rendszerekben a processzorok száma nem haladja meg a 2-4-et. A processzorok ilyen módon történő csatlakoztatásával rendelkező SMP gépekre példa bármely belépő szintű többprocesszoros szerver.

A processzorok csatlakoztatásának második módja a kapcsolt kapcsolat (keresztléc kapcsoló) [3] [5] . Egy ilyen kapcsolatnál az összes megosztott memória memóriabankra van felosztva, mindegyik memóriabanknak saját busza van, és a processzorok az összes buszhoz csatlakoznak, és rajtuk keresztül hozzáférnek bármelyik memóriabankhoz. Egy ilyen kapcsolat bonyolultabb áramkörben, de lehetővé teszi a processzorok számára, hogy egyidejűleg hozzáférjenek a megosztott memóriához. Ez lehetővé teszi a processzorok számának növelését a rendszerben 8-16-ra anélkül, hogy az általános teljesítmény észrevehető csökkenése lenne. Ilyen SMP gépek például az RS/6000 többprocesszoros munkaállomások.

Előnyök és hátrányok

Az SMP a legegyszerűbb és legköltséghatékonyabb módja a számítási rendszer méretezésének : a processzorok számának növelésével. A programozás is egyszerű: szálak és kapcsolódó mechanizmusok használata a köztük lévő adatcserére a memóriában lévő megosztott változókon keresztül.

Az SMP-t gyakran használják a tudományban, az iparban és az üzleti életben, ahol a szoftvereket kifejezetten többszálas végrehajtásra tervezték. Ugyanakkor a legtöbb fogyasztói termék – például a szövegszerkesztők és a számítógépes játékok – úgy van megírva, hogy nem tudják kihasználni az SMP-rendszerek erősségeit. A játékok esetében ez gyakran annak a ténynek köszönhető, hogy a program SMP-rendszerekre való optimalizálása teljesítménycsökkenéshez vezet az egyprocesszoros rendszereken végzett munka során, amelyek egészen a közelmúltig a PC -piac nagy részét elfoglalták . (A modern többmagos processzorok az SMP újabb hardveres megvalósítása.) A különböző programozási módszerek természetéből adódóan a maximális teljesítmény érdekében külön tervezésre lesz szükség az egyetlen egymagos processzor és az SMP rendszerek támogatására. Az SMP rendszereken futó programok azonban csekély teljesítménynövekedést érnek el, még akkor is, ha egyprocesszoros rendszerekre írták őket. Ennek az az oka, hogy a hardveres megszakítások , amelyek általában szüneteltetik a kernel által feldolgozandó program végrehajtását, szabad processzoron (processzormagon) feldolgozhatók. A legtöbb alkalmazásban a hatás nem annyira a teljesítménynövekedés, hanem az az érzés, hogy a program gördülékenyebben fut. Egyes alkalmazási programokban (különösen: szoftverfordítókban és néhány elosztott számítástechnikai projektben ) a teljesítménynövekedés szinte egyenesen arányos lesz a további processzorok számával.

Az egyik processzor meghibásodása a teljes rendszer hibás működését okozza, és a teljes rendszer újraindítása szükséges a meghibásodott processzor letiltásához. Egy processzormag meghibásodása gyakran a teljes többmagos processzor meghibásodását eredményezi, ha a többmagos processzor nincs felszerelve olyan beépített védelemmel, amely letiltja a meghibásodott processzormagot, és ezen keresztül lehetővé teszi az egészséges processzormagok normál működését. .

Processzorkorlát

A processzorok számának növekedésével a memóriabusz sávszélességére vonatkozó igény észrevehetően megnő. Ez korlátozza a processzorok számát az SMP architektúrában. A modern SMP rendszerek hatékony működést tesznek lehetővé 16 processzorral.

Gyorsítótár koherencia probléma

Minden modern processzor többszintű gyorsítótárral van felszerelve az adatok és a gépi utasítások gyorsabb lekéréséhez a fő memóriából, amely lassabb, mint a processzor. Többprocesszoros rendszerekben a gyorsítótár-memória jelenléte a processzorokban csökkenti a közös busz vagy a betárcsázós kapcsolat terhelését, ami nagyon kedvező hatással van a rendszer általános teljesítményére. De mivel minden processzor saját egyedi gyorsítótárral van felszerelve, fennáll annak a veszélye, hogy az egyik processzor cache memóriája olyan változó értéket kap, amely eltér a fő memóriában és egy másik processzor gyorsítótárában tárolttól. Képzeljük el, hogy a processzor megváltoztatja egy változó értékét a gyorsítótárában, és egy másik processzor kéri ezt a változót a fő memóriából, és ez (a második processzor) érvénytelen értéket kap a változóhoz. Vagy például az I / O alrendszer egy változó új értékét írja a fő memóriába, és az elavult még mindig a processzor gyorsítótárában van. A probléma megoldását a gyorsítótár-koherencia protokollra bízták, amely úgy van kialakítva, hogy biztosítsa az összes processzor és a fő memória gyorsítótárának koherenciáját („koherenciáját”) az általános teljesítmény elvesztése nélkül [6] .

Operációs rendszer támogatás

Az SMP támogatást be kell építeni az operációs rendszerbe, ellenkező esetben a további processzorok tétlenek lesznek, és a rendszer egyetlen processzorként fog működni. (Valójában ez a probléma a többmagos processzorral rendelkező egyprocesszoros rendszerek esetében is aktuális.) A legtöbb modern operációs rendszer támogatja a szimmetrikus többfeldolgozást, de eltérő mértékben.

A Linux OS többfeldolgozási támogatása a 2.0-s kernelverzióban [7] lett hozzáadva, a 2.6-os verzió pedig továbbfejlesztett. A Windows NT operációs rendszerek sorozatát eredetileg többprocesszoros támogatással hozták létre. ( A Windows 9x SMP nem támogatott.)

Alternatívák

Az SMP csak egy lehetőség a többprocesszoros gép felépítésére. Egy másik koncepció a NUMA , amely a processzorokat külön memóriabankokkal látja el. Ez lehetővé teszi a processzorok számára, hogy párhuzamosan dolgozzanak a memóriával, és nagymértékben megnövelheti a memória sávszélességét, ha az adatok folyamat- (és így processzor-kötöttek) vannak. Másrészt a NUMA növeli az adatok processzorok közötti mozgatásának költségeit, ami azt jelenti, hogy a terheléselosztás drágább. A NUMA előnyei a feladatok egy meghatározott körére korlátozódnak, főleg a szerverekre, ahol az adatok gyakran meghatározott feladatokhoz vagy felhasználókhoz vannak kódolva.

Egy másik fogalom az aszimmetrikus többfeldolgozás ( ASMP ), amelyben egyedi speciális processzorokat használnak meghatározott feladatokhoz, és a cluster multiprocessing ( Beowulf ), amelyben nem áll rendelkezésre minden memória minden processzor számára. Az ilyen megközelítéseket nem gyakran alkalmazzák (bár a modern videokártyák nagy teljesítményű 3D lapkakészletei az aszimmetrikus többfeldolgozás egyik formájának tekinthetők ), míg a fürtrendszereket széles körben használják nagyon nagy szuperszámítógépek építésében .

Lásd még

Jegyzetek

  1. Stallings, 2011 , p. 33.
  2. Chevance, 2004 , p. 265.
  3. 1 2 Severance_Dowd, 1998 , p. 195.
  4. Chevance, 2004 , p. 266.
  5. Chevance, 2004 , p. 267.
  6. Severance_Dowd, 1998 , p. 198.
  7. Dhamdhere, 2008 , p. 355.

Irodalom

Linkek