8. Folyamat szinten párhuzamos architektúrák Flashcards

1
Q

Csoportosítása

A
  • Memória használat szerint:
    • Közös memória használatú: van olyan, minden CPU számára látható közös memória, melyen keresztül a folyamatok kommunikálni tudnak egymással.
    • Elosztott memória használatú: a folyamatok üzenetek segítségével kommunikálnak egymással. Ezek az üzenet küldésen alapuló multiprocesszoros rendszerek.
  • Memória elérés ideje szerint:
    • UMA (Uniform Memory Access): a memória elérési ideje azonos minden CPU számára.
      Nincs jelentősége annak, hogy egy adatot hova írunk a memóriában.
    • NUMA (Non-Uniform Memory Access): a memória műveletek ideje nem azonos. Ezeknél fontos, hogy egy adat az őt író és olvasó CPU-hoz közel legyen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Folyamat szinten párhuzamos rendszerek kifejlesztésének motivációja

A
  • Utasítás szintű párhuzamosság korlátozott lehetőségei:
    • Branch prediction soha nem 100%-os
    • Általános célú alkalmazásoknál a programokban lévő utasítás szintű párhuzamosság sokszor ahhoz sem elegendő, hogy 4-6 független végrehajtó egységet elláson utasításokkal
  • Energiahatékonyság: egyes CPU-knál 10-15% teljesítmény növekedéshez akár 50% fogyasztás emelkedés is szükséges lehet. Hatékonyabb lehet n darab CPU egységnyi órajelen, mint 1 darab CPU n-szere órajelen
  • Költséghatékonyság: jól párhuzamosítható feladatok esetén n darab olcsóbb és lassabb CPU összekapcsolása hatékonyabb lehet, mint egy darab gyors és drága processzor.
  • Egyszerű bővíthetőség: egy multiprocesszoros rendszer bővítése könnyebb lehet, ha megfelelően
    van felkészítve
  • Hibatűrés: ha egy processzor meghibásodik, a többi átveszi a feladatait
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Korlátok

A

Vezérlés áramlásos rendszerekben (ahol a processzorok össze vannak kapcsolva és vezérléssel kommunikálnak egymással) a párhuzamosságok felderítését és kihasználását szoftveresen kell megoldani.
Két megoldása van:
* Olyan compiler írása, ami képes felfedezni a szoftverben a párhuzamosítható részeket és ennek megfelelő kódot generálni
*A párhuzamosítást a programozóra bízzuk

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

Amdahl törvénye

A

Segítségével kiszámítható, hogy n darab CPU-ból álló rendszer mekkora teljesítmény növekedést tud nyújtani.
Egy program tartalmaz szekvenciális és párhuzamosan futtatható részeket is, így feltételezhetjük, hogy egy program P-ed része párhuzamosítható, 1-P rész pedig szekvenciálisan futtatható. Legyen a futási idő 1 darab CPU-n egy egység. Ekkor N darab CPU esetén a futási idő ideális körülmények között:
(1 − 𝑃) + 𝑃/n
Ebből a teljesítmény növekedés:
1 / (1-P + P/N)

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

UMA rendszerek

A

Az UMA rendszereknél a processzorok egy közös buszon keresztül érik el a memóriát. Probléma, hogy a közös buszon keresztül továbbítódik minden adat, így az szűk keresztmetszetet képez. Ezért körülbelül 8-16 CPU köthető össze a buszrendszer túlterhelése nélkül.
(KÉP JEGYZETBEN)

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

NUMA rendszerek

A

Közös, de tartományokra bontott memória címtérrel rendelkeznek. Így buszrendszerre kisebb terhelés esik, ezért a megoldás jól skálázható.
(KÉP JEGYZETBEN)
A NUMA rendszereket két csoportra oszthatjuk:
- CC NUMA: cache coherent
- NCC NUMA: non cache coherent

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

Cache coherent NUMA

A

Az adatok legfrissebb példányát tartják nyilván és frissítik a gyorsítótárakban. Így ha két CPU ugyanazzal az adattal dolgozna és mindkettő betölti a gyorsítótárába, majd az egyik módosítja, a másik CPU gyorsítótárában lévő adatot invalidálja egy figyelő rendszer és az adat frissítésére kerül. Hátránya, hogy ez komoly adminisztrációt igényel, ami a buszrendszert terheli. Körülbelül 32 CPU-ig skálázható, viszont az UMA-hoz képest a memória műveletek késleltetése 2-7-szeresére növekszik.

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

Non cache coherent NUMA

A

Az NCC rendszerek nem garantálják, hogy a processzor mindig az adat legfrissebb verziójával dolgozik, az ebből adódó problémás helyzeteket szoftveresen kell detektálni és kezelni. Ez a legjobban skálázható megoldás, tervezése és építése könnyű, viszont a programozása nehezebb. Általában sok gépes (több összekapcsolt szerver) rendszerekben használják. Pl Intel Xeon és AMD Opteron.

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