14. Párhuzamosság (folyamatszinten) Flashcards
A folyamat/task
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)
Osztályozás műveletek alapján
- 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 - 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)
UMA
kép33
Első többmagos rendszerek (max. 8 – 16 db. CPU), a memóriabusz nagyon terhelt!
NUMA: (támogatás például ezekben: FSB, QPI…)
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)
Altípusok
- 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! - 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)
Jellemzők
- A CC-NUMA az UMA rendszerek skálázható kiterjesztése (ebben rejlik valós skálázhatóság)
- Előnye: tervezése és építése sokkal könnyebb
- Hátránya: programozása sokkal nehezebb
- Szoftveres támogatás (operációs rendszerekben [például szerverek])
- Hardveres támogatás (CPU-ba beépítetten, vagy chipsettel megvalósítva)
Fejlesztési motivációk
- 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 - 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! - Költséghatékonyság (olcsóbb és hatékonyabb sok olcsó CPU-ból összerakni egy rendszert)
- Egyszerű bővíthetőség
- Hibatűrés
Korlátok
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])
Amdahl törvénye
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.