15 Tétel Szál és folyamat szinten párhuzamos architektúrák Flashcards
Szálszinten párhuzamos architektúrák célja, eszközei
Cél: sebesség növelés > több tranzisztor Eszközök: • Pipeline, • Több VE, • Nagyobb cache, • Out of Order (sorrenden kívüli végrehajtás) • Branch prediction
Több tranzisztor következménye:
- Magasabb fogyasztás.
- Nagyobb lapkaméret.
Párhuzamosság formái
• implicit: a párhuzamosság felderítése, kihasználása a programozó tudta nélkül.
o futószalag o VE-ek többszörözése o szál szintű
párhuzamosság. (Szálak, folyamatok szintjén)
• explicit: programozó szándékosan párhuzamos futtatására alkalmas programot ír o vezérlő
tokenek segítségével (FORK, JOIN)
Szál definíciója
a szál a program legkisebb önállóan végrehajtató része!
Alacsony szintű párhuzamosság fogalma
párhuzamos architektúrák segítségével valósítható meg, illetve fordító
programok segítségével
Magasabb szintű párhuzamosság fogalma
többszálas operációs rendszerek alatti konkurens, vagy párhuzamos végrehajtással hasznosítható
HT (Hyper Threading)
XP megjelenése előtt kezdték fejleszteni
Koncepció: vegyünk több szálat
Párhuzamos szálak származtatása
Különböző alkalmazásokból
(Multi programozás)
VAGY
Ugyanabból az alkalmazásból. Folyamat
illetve szálszinten párhuzamos feldolgozás
(Multi threading/Multi testing)
Többszálúság fajtái
Szoftveres:
Többszálú app-ok vagy OS-ek futtatása
egyszálú CPU-n párhuzamosan
Hardveres:
többszálú app-ok vagy OS-ek futtatása
többszálú CPU-n egy időben párhuzamosan.
SMP (Simmetric Multiprocessing) vagy SMT (Simultaneous Multi threading)
Task fogalma
A folyamatokat task-nak is nevezzük. A folyamatok közti váltás sok időt vesz igénybe. Taskok
állapotát laptáblák tartalmazzák TLB (lapkezelő segéd puffer).
Szál szinten párhuzamos architektúrák osztályozása
• Finoman szemcsézett: két vagy több szálat futtat párhuzamosan, és minden óraciklusban válta
következőre.
• Durván szemcsézett: SOEMT (Switch On Event MT) – valamilyen esemény váltja ki a váltást
SMT (Simultan Multi Threading): egyszerre futtatja mind a kettőt Feltétele:
o Párhuzamos műveletek hardveres
támogatás (pld. több VE) o
Magonként 6 VE
Többszálú végrehajtást támogató CPU-k
Pld.: szükség van annyi PC-re (Program Counter) és regiszter tárolóra ahány szálat futtatunk > váltás
taskok között nem vesz időt igénybe, hiszen mindegyiknek meg van a saját cache, regiszter tárolója
PC-je, nem kell a töltéssel betöltéssel bajlódni. (SMT, illetve finoman szemcsézett esetén)
SMT előnyei
mindössze 5-10% hardver komplexitás növelést
igényel. Elérhető teljesítménynövekedés 0-20%.
SMT jellemzői
• Támogatja a soron kívüli végrehajtást
• (HT technológia az SMT technológia egyik megvalósítási formája, 2 logikai CPU) A CPU
2 architektúrális állapotot tárol. 3 üzemmód:
o ST0
o ST1
o MT: mind a két szál egyszerre
fut
Attól függ, hogy melyik logikai CPU aktív.
• Az üzemmódok közötti váltás a HALT utasítással történik, ez megszakítja a CPU futását és
energiatakarékos állapotba teszi azt.
HT megvalósítási célok
1 Kis magméret növekedés.
2 Egyik szál várakozása esetén a másik szál gond nélkül folytathassa a végrehajtást.
3 Egy szál futtatása esetén a sebesség ne csökkenjen.
Ezek eléréséhez a fő futószalag fokozatokat átmeneti pufferek választják el egymástól.
HT működési modell
- 2db logikai processzor (LP)
- Minden utasítás valamelyik LP-hez kerül hozzárendelésre.
- Az utasításokat a CPU címkékkel látja el.
- Excecution Trace Cache: közös erőforrás (osztottan használják).
- Program Counter (utasítás számláló) többszörözve van (kettő van belőle)
Szálszinten párhuzamos architektúrák Hyper Threading logikai modellje
kép49
ITLB: -Előoldali utasítás címfordító puffer
IP –instruction pointer
Folyamat szinten párhuzamos architektúrák (MIMD architektúra)
kép50
Folyamat szinten párhuzamos architektúrák fejlesztési motivációi
- Branch prediction soha nem 100%, mindig előfordulhat hiba (utasítás szintű párhuzamosság
egyik korlátja) - A tipikus programokban lévő párhuzamosság már ahhoz sem elegendő, hogy rendelkezésre
álló VE-eket maximálisan kihasználja (általában 4-8 VE egy processzorban) - Energia hatékonyság pld: órajel frekvencia 10-15%-os növelése kb. 50%-os energia
teljesítménynövekedést eredményez. Ezért hatékonyabb lehet N db CPU-t használni egységnyi
órajellel, mint 1 db N-szeres teljesítményű CPU-t. - Költséghatékonyság jól párhuzamosítható feladatok esetén olcsóbb sok olcsó CPU-ból
összerakni egy rendszert (és hatékonyabb), mint egy darab gyors, de drága CPU-ból. - Egyszerű bővíthetőség.
- Hibatűrés.
Folyamat szinten párhuzamos architektúrák korlátai
Szoftver esetén: vezérlés áramlásos rendszerben a párhuzamosság felderítését szoftveresen kell
megoldani!
1. Fejlesztünk olyan compilert amely automatikusan felderíti a folyamatokban található
párhuzamos részeket és ennek megfelelő kódokat generál (FORK, JOIN)
2. A programozóra bízzuk, hogy ő helyezze el az elágazásokat.
Amdahl törvénye
Mekkora teljesítménynövekedést tudunk elérni egy N processzoros
rendszerben, az 1 CPU-shoz képest.
Egy folyamat része (P) párhuzamosítható (1-P)-ed része szekvenciálisan végrehajtható.
Legyen a futási idő egy CPU-n egy egység.
N CPU esetén a futási idő (1-P) + (P/N) => ebből kiszámíthatjuk a teljesítménynövekedést:
kép51
Példa: van 100 CPU a rendszerünkben és szeretnénk a programunkat 50-szer gyorsabban futtatni, mint
1 CPU-n. N = 100, Sp(N) = 50 => p= ?
kép52
Azaz kb. 99%-át tudnunk kell párhuzamosan végrehajtani!
=>(1-P) = kb. 1,01% => kb. csak a 1% ami szekvenciálisan futtatandó
Más számértékkel: Sp (N) = 10 => (1-P) = kb. 9,1%-a lehet csak szekvenciális a programnak
Tegyük fel, hogy a program 5%-a szekvenciális
N= 100 esetén a gyorsulás kb. 16,8-szeres, N -> ∞ max. gyorsulás 20-szoros!
Más számértékekkel:
1-P = 10% => Sp (N)max = 10 (tízszeres növekedés)
1-P = 50% => Sp(n)max = 2 (csak kétszeres növekedés)
Osztályozás memória műveletek alapján
- Ha a memória műveletek ideje azonos, akkor UMA (Uniform Memory Access)
multiprocesszoros rendszer. Itt nincs jelentősége, hogy az adat hova kerül a memóriában!
Ugyanannyi ideig tart az írás és az olvasás minden folyamat számára. - Ha nem azonos a memória műveletek ideje, akkor NUMA multiprocesszoros rendszer. Fontos,
hogy a memóriába írt adat, mind az őt író, illetve olvasó „közel” legyen a CPU-hoz
Közös memória használatú rendszer
kép53
Általában max 8-16 CPU
Elosztott memória csomópont
kép54
Közös címtér, ami tartományokra van osztva és ezek az egyes csomópontokhoz vannak rendelve.
NUMA rendszer két altípusa
- cc-NUMA: cache coherent NUMA
- nc- NUMA: non- cache coherent NUMA
A két rendszer a távoli memóriák adatainak kezelésében tér el egymástól.
A ccNUMA mindig nyilvántartja, hogy hol található egy bizonyos adat legfrissebb példánya A lényeg a
másolatok szinkronban tartása. Ez viszont komoly adminisztrációval jár! -> ez korlátozza a
skálázhatóságot. cc-NUMA az UMA rendszerek skálázható kiterjesztése
NUMA korlátai
UMA + CPU terheli a teljes buszrendszert.
Valós skálázhatóságot a NUMA rendszerek biztosítanak.
NUMA
• előny: tervezése és építése sokkal
könnyebb
• hátrány: programozása sokkal nehezebb
NUMA támogatás:
1. szoftveres operációs rendszerekben (szerver szoftverek)
2. hardveres
• CPU beépített (pld.: AMD opteron)
• Chipsettel megvalósítható (Intel Itanium CPU)