Multiprocesorové a paralelní počítačové systémy

HW architektura a principy SMP architektury

(prezentace z předmětu SCS)




Obecné rozdělení počítačových systémů:

rozdeleni



SMP - Shared Memory Multiprocessing

V SMP systémech procesory sdílí některé ostatní části systému. Tyto části tvoří v zásadě dva bloky, a to paměť (hlavní paměť a cache - nikoli interní procesorová) a I/O (vstupně výstupní zařízení). Jednotlivé architektury se dělí podle toho jak a které bloky společně sdílí. Procesor a sdílený blok, pokud je nějaký, pak tvoří procesorovou jednotku nebo uzel. Existuje několik kritérií a problémů, které určují použitelnost SMP architektur pro různé aplikace.

Principiálně lze multiprocesorové systémy a tedy i SMP dělit na tyto typy:


MP bez sdílení (MPP - massive parallel processing)

Každý procesor je téměř samostatným počítačem, má svoji cache, paměť a I/O kanál (včetně místa na disku). Jednotlivé procesorové jednotky (uzly) jsou propojeny speciální sběrnicí, pro komunikaci - zasílání zpráv. Toto zasílání zpráv je obvykle řešeno softwarově. (Poznámka: neplést se SW klastry, ty jsou propojeny až přes I/O, resp. síťové karty)
Každá procesorová jednotka má vlastní instanci OS.

Výhody: velká škálovatelnost a dostupnost.
Nevýhody: není možné, aby si procesory vyměňovaly velké množství informací - rychle by docházelo k přetěžování komunikačních kanálů a tak i k vysoké latenci. Systém je heterogenní a má velké nároky na administraci a optimalizaci programů (distribuce úloh atd.).
Poměrně nákladné. Pro některé aplikace nejsou vhodné.


no sharing
MPP - massive parallel processing


Zpět

MP se sdílením disků - I/O (cluster)

Jeden uzel tvoří procesor, cache a paměť. Pro několik uzlů je vytvořena společná disková kapacita. Uzly mohou být spojeny sběrnicí nebo např. obyčejnou LAN.
Každý uzel provozuje vlastní instanci OS.

Výhody: vysoká dostupnost a navíc společná data na I/O dovolují, aby práci okamžitě převzal jiný uzel.
Nevýhody: paměť je opět dedikována jednotlivým uzlům - nutnost speciálního SW pro distribuci úloh mezi uzly.


io
MP se sdílením disků - I/O (cluster)


Zpět

MP se sdílenou pamětí - základní provedení SMP (Symetric MultiProcessing)

Obecně lze tyto systémy označit jako "se sdílenou sběrnicí". Procesory sdílí téměř vše přes jedinou sběrnici a mají rovnocenný přístup k ostatním blokům. Proto se někdy také nazývají UMA (Uniform Memory Access).
Jedná se o nejčastěji používanou MP architekturu.
Na takovém systému běží jen jedna instance OS. Z programátorského hlediska se k paměti přistupuje jako k jedinému objektu - SSI (Single System Image).

Výhody: jedna instance OS a paměť jako jeden objekt, tedy jednoduchý programátorský pohled. Doba přístupu k paměti (latence) je obvykle malá a konstantní.
Nevýhody: ke sdílené sběrnici může přistupovat pouze jeden procesor a ostatní jsou odstaveny. Zároveň tím mezi nimi roste objem komunikace a tedy roste režie. Škálovatelnost je v základních verzích velmi omezená.


mem
MP sdílenou pamětí - základní provedení SMP (Symetric MultiProcessing)


Zpět

SMP (UMA) - praktická provedení

Problém omezené škálovatelnosti a malé propustností sdílené sběrnice se řeší modifikací základní architektury. Jednou z možností řešení malé propustnosti je použití křížového přepínače (crossbar) mezí procesory a paměť. Vytvoří se tak více nezávislých komunikačních kanálů, což propustnost zvýší.

Výhody: vyšší propustnost sběrnice, malá a konstantní latence.
Nevýhody: podstatně složitější a dražší než základní SMP při stejné škálovatelnosti, malá škálovatelnost.


uma
klasická SMP architektura - naznačení sériového přístupu k paměti (červená šipka)


smp-crossbar

SMP s křížovým přepínačem (Compaq)
Tato architektura byla využita ve starším systému a byla osazena osmi procesory Pentium III Xeon. Cache Accelerator je pomocný blok, který zrychluje aktualizaci cache procesorů a celkově přístup do paměti. Sdílené sběrnice jsou 64-bitové s teoretickou propustností 800MB/s.


Zpět

NUMA

Problém omezené škálovatelnosti byl hlavní důvod vzniku architektury NUMA (Non Uniform Memory Access). Obecně její struktura vypadá takto:


numa
architektura NUMA - naznačení paralelního přístupu k pamětem (červené šipky)

Jednotlivé uzly (označeny CPU) s vlastními paměťovými bloky (MEM) jsou propojeny vysokorychlostní sběrnicí. Jeden uzel tvoří tzv. integrální modul a skládá se obvykle ze čtyř procesorů, které mají vlastní cache a společný lokální blok paměti. Jednotlivé uzly (moduly) mají také přístup k pamětem jiných uzlů (přes zmiňovanou vysokorychlostní sběrnicí). Při těchto vzdálených přístupech ale vzniká problém s koherencí cache u procesorů.

NUMA architektura se v zásadě vyskytuje ve dvou variantách. Jednou z nich je cc-NUMA propagovaná společností SGI a druhou je NUMA-Q původem od společnosti Sequent.
Rozdíl mezi těmito dvěma architekturami je ten, že v NUMA-Q systému jsou všechny integrální moduly (quady) spojeny společnou kruhovou sběrnicí, kdežto v systému cc-NUMA se k propojování používají speciální křížové přepínače.

Výhody: vysoká propustnost sběrnice, velká škálovatelnost.
Nevýhody: složitější a dražší než základní SMP, velká latence ze vzdálených uzlů, vyšší režie.


Zpět

cc-NUMA


numa

architektura cc-NUMA (IBM)

Integrální moduly (quady) jsou propojené přes NUMA kontrolér k vysokorychlostní sběrnici, jeden quad je osazen čtyřmi procesory v symetrickém MP s lokální pamětí, vlastními I/O a pamětí cache třetí úrovně (TLC).


numa

architektura cc-NUMA, systém SGI Altix 3000

C-brick tvoří jeden quad a obsahuje dva dvou-procesorové uzly. Každý procesorový uzel obsahuje jeden blok Super Bedrock. Super Bedrock je křížovým propojením mezi cpu uzlem, pamětí, I/O a sítí (R-brick). Dva takové bloky Super Bedrock, v jednom C-brick, jsou propojeny sběrnicí NUMAlink a plní tedy funkci NUMA kontroléru. R-brick provádí funkci křížového přepínače do sítě (sběrnice) spojující C-brick quady.
Systém SGI Altix 3000 je osazen procesory Itanium 2 a propustnost bloku Super Bedrock, kterým jsou propojeny, je až 6.4GB/s.


Zpět na NUMA

NUMA-Q


numa

architektura NUMA-Q (IBM)


numa

architektura cc-NUMA (IBM) - příklad jednoho ze systémů


Zpět na NUMA

Zpět

Koherence v systémech s NUMA

Problém koherence cache vzniká u všech architektur s nerovnoměrným (neuniformním) přístupem k paměti a to proto, že k ní nepřistupují jen lokálně, ale také ji sdílí. K problému dochází při čtení jednoho procesoru z jeho lokální paměti. Toto čtení se pochopitelně děje přes cache, přičemž procesor pak načtená data nějakou dobu používá a považuje jejich kopii v cache za platnou. Pokud ale jiný procesor, a to není vyloučeno, změní obsah této lokální paměti na stejné adrese (adresách), tak je nutné, aby se o této změně dozvěděl první procesor a aby se změna provedla i v obsahu jeho cache.
Byla vyvinuta řada protokolů zajišťujících tuto koherenci cache. Je zřejmé, že komunikace po sběrnici pro udržení koherence zvyšuje režii systému a snižuje celkovou škálovatelnost.
Obvykle se problém koherence řeší pomocí mechanizmu zvaného snooping. Jedná se o interní funkci procesoru, ta v případě, že procesor pracuje s nějakým paměťovým registrem, vyšle ostatním procesorům signál a zjišťuje, zda se daný registr nevyskytuje v některé cizí cache. Pokud ano, tak adresu s daným registrem zablokuje - označí za neplatnou. Když se pak dotyčný druhý procesor pokusí z této cache číst, zjistí, že data nejsou platná a musí je znovu načíst ze své lokální nebo vzdálené paměti.
Je vidět, že se koherence cache musí udržovat jak ve vztahu lokální paměť --> cache ostatních, tak ve vztahu vzdálená paměť --> cache ostatních.

Zpět na NUMA


Zpět
Last modified: Mon May 12 16:42:16 CEST 2003

Valid HTML 4.01!