15 Tétel Szál és folyamat szinten párhuzamos architektúrák Flashcards

1
Q

Szálszinten párhuzamos architektúrák célja, eszközei

A
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Párhuzamosság formái

A

• 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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Szál definíciója

A

a szál a program legkisebb önállóan végrehajtató része!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Alacsony szintű párhuzamosság fogalma

A

párhuzamos architektúrák segítségével valósítható meg, illetve fordító
programok segítségével

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Magasabb szintű párhuzamosság fogalma

A

többszálas operációs rendszerek alatti konkurens, vagy párhuzamos végrehajtással hasznosítható

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

HT (Hyper Threading)

A

XP megjelenése előtt kezdték fejleszteni

Koncepció: vegyünk több szálat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Párhuzamos szálak származtatása

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Többszálúság fajtái

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Task fogalma

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Szál szinten párhuzamos architektúrák osztályozása

A

• 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Többszálú végrehajtást támogató CPU-k

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SMT előnyei

A

mindössze 5-10% hardver komplexitás növelést

igényel. Elérhető teljesítménynövekedés 0-20%.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

SMT jellemzői

A

• 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

HT megvalósítási célok

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

HT működési modell

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Szálszinten párhuzamos architektúrák Hyper Threading logikai modellje

A

kép49
ITLB: -Előoldali utasítás címfordító puffer
IP –instruction pointer

17
Q

Folyamat szinten párhuzamos architektúrák (MIMD architektúra)

A

kép50

18
Q

Folyamat szinten párhuzamos architektúrák fejlesztési motivációi

A
  1. Branch prediction soha nem 100%, mindig előfordulhat hiba (utasítás szintű párhuzamosság
    egyik korlátja)
  2. 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)
  3. 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.
  4. 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.
  5. Egyszerű bővíthetőség.
  6. Hibatűrés.
19
Q

Folyamat szinten párhuzamos architektúrák korlátai

A

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.

20
Q

Amdahl törvénye

A

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)

21
Q

Osztályozás memória műveletek alapján

A
  1. 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.
  2. 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
22
Q

Közös memória használatú rendszer

A

kép53

Általában max 8-16 CPU

23
Q

Elosztott memória csomópont

A

kép54

Közös címtér, ami tartományokra van osztva és ezek az egyes csomópontokhoz vannak rendelve.

24
Q

NUMA rendszer két altípusa

A
  1. cc-NUMA: cache coherent NUMA
  2. 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
25
Q

NUMA korlátai

A

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)