14. Párhuzamosság (folyamatszinten) Flashcards

1
Q

A folyamat/task

A

A programkód éppen végrehajtás alatt álló, futó változata. Többfolyamatos feldolgozásnál beszélhetünk folyamatok közötti váltásról. Ez a váltás sok időt vesz igénybe, akár 2-3000 órajelciklusnyit. Ez az egyszálas CPU-k nagy hátránya. A Taskok állapotát laptáblák tartalamzzák (TLB: lapkezelő segédpuffer)

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

Osztályozás műveletek alapján

A
  1. Közös memóriahasználatú: minden CPU számára használható közös memória (shared memory). A memória műveletek ideje azonos, nincs jelentősége, hogy hova kerül az adat a memóriában.
    UMA: Uniform Memory Access
  2. Elosztott memóriahasználatú: a közös memória hiányában, a folyamatok üzenetek segítségével kommunikálnak. Ezek az üzenetküldésen alapuló multiprocesszoros rendszerek. Nem azonos a memória műveletek ideje. Fontos, hogy a memóriába írt adat „közel” legyen a CPU-hoz.
    NUMA: NON Uniform Memory Access
    a) CC-NUMA (Cache Coherent)
    b) NC/NCC-NUMA (Non Cache Coherent)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

UMA

A

kép33

 Első többmagos rendszerek (max. 8 – 16 db. CPU), a memóriabusz nagyon terhelt!

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

NUMA: (támogatás például ezekben: FSB, QPI…)

A

kép34

 Közös, tartományokra osztott címtér, melyek az egyes csomópontokhoz vannak rendelve. Jól skálázható! (16 – 32 db. CPU)

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

Altípusok

A
  1. CC-NUMA: mindig nyilvántartja, hogy hol található egy bizonyos adat legfrissebb példánya. A
    lényeg a másolatok szinkronban tartása. Ez komoly adminisztrációt igényel, ami rontja a
    skálázhatóságot!
  2. NC-NUMA: (multicomputer valójában) a rendszer nem törődik a CPU-nak átadott, ott
    módosított, de még vissza nem írt adatokkal.
    (2.7–szeres késleltetés az UMA rendszerekbeli memóriaműveletekhez képest)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jellemzők

A
  1. A CC-NUMA az UMA rendszerek skálázható kiterjesztése (ebben rejlik valós skálázhatóság)
  2. Előnye: tervezése és építése sokkal könnyebb
  3. Hátránya: programozása sokkal nehezebb
  4. Szoftveres támogatás (operációs rendszerekben [például szerverek])
  5. Hardveres támogatás (CPU-ba beépítetten, vagy chipsettel megvalósítva)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Fejlesztési motivációk

A
  1. Utasítás szintű párhuzamosság korlátai
    o branch prediction soha nem 100%, mindig előfordulhat hiba
    o max. 4-8 db. VE. hatékony kiszolgálása
  2. Energiahatékonyság, például:
    o az ó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!
  3. Költséghatékonyság (olcsóbb és hatékonyabb sok olcsó CPU-ból összerakni egy rendszert)
  4. Egyszerű bővíthetőség
  5. Hibatűrés
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Korlátok

A

A vezérlésáramlásos rendszerben a párhuzamosság felderítését szoftveresen kell megoldani! (Fordítóval, vagy programozóval [gyakoribb, csak sok a hibalehetőség])

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

Amdahl törvénye

A

Megadja, hogy mekkora teljesítménynövekedést - „Sp(N)” - tudunk elérni egy „N” processzorszámú rendszerben, az 1 CPU-s rendszerhez képest.
„P” a program párhuzamosan, „1 - P” a program szekvenciálisan végrehajtható részeinek aránya:
P + (1 - P) = 1 .
Sp(N)=1/(1-P)+(P/N)

Példa: a program 5%-a szekvenciálisan hajtható végre, a többi párhuzamosan. A CPU-ink száma 100. Adatok: N = 100, P = 0,95
Sp(100)=1/(1-0.95)+(0.95/100)=16.8
Tehát 16,8-szor gyorsabban tudjuk az adott kódot végrehajtani 100 CPU-n.

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