Non-Uniform Memory Access

Non-Uniform Memory Access (též Non-Uniform Memory Architecture, NUMA) je v informatice specifická počítačová platforma, která dosahuje škálovatelnosti tak, že seskupuje procesory a operační paměť do jednotek (neboli uzlů), které pak mohou samostatně fungovat téměř jako jeden počítač. Každý uzel má vlastní procesory, paměť a sběrnice. Jednotlivé uzly jsou též vzájemně propojeny a v případě potřeby mohou přistupovat k paměti jiného uzlu.

Architektura NUMA vychází z architektury SMP (Symmetric multiprocessing, použití více než jednoho procesoru na jedné základní desce). K jejímu komerčnímu rozvoji došlo v roce 1990 ve spolupráci firem Burroughs (později Unisys), Convex Computer (později Hewlett-Packard), Silicon Graphics, Sequent Computer Systems, Data General a Digital. Techniky, které byly vyvinuty těmito společnostmi, byly využity v unixových operačních systémech a také ve Windows NT.

Základní představa architektury

Moderní procesory pracují podstatně rychleji než hlavní paměť, na kterou jsou připojeny. V počátcích vysokorychlostní výpočetní techniky a superpočítačů, byl běh CPU obecně pomalejší než jejich paměť, ke zlomu však došlo v roce 1970. Od té doby procesory postrádají data, jelikož musejí čekat dokud nebude dokončen přístup do paměti. Mnoho superpočítačů navržených mezi léty 1980 a 1990 bylo zaměřeno na poskytování vysoce-rychlostního přístupu do paměti na úkor rychlosti procesorů, což jim umožňovalo pracovat na velkých datových souborech, do kterých rychlejší systémy nemohly přistupovat.

Omezení počtu přístupů do paměti je klíčovým prvkem výkonu dnešních moderních počítačů. Pro běžné procesory to znamená nárůst velikosti vysokorychlostních vyrovnávacích pamětí (cache) a potřebu používat sofistikovanější algoritmy, aby se maximalizovalo využití cache (a zabránilo „cache misses“ – že data nebyla nalezena v cache). Dramatický nárůst velikosti operačních systémů a aplikací na nich provozovaných v podstatě neutralizovalo výhodu cache. U víceprocesorových systémů je tento problém podstatně horší. Až takový, že se v systému několik procesorů zastaví, protože pouze jeden procesor může přistupovat k paměti.

NUMA se snaží řešit tento problém tím, že má oddělenou paměť pro každý procesor. Tím by se mělo zabránit snížení výkonu, když se několik procesorů snaží zároveň přistupovat do paměti.

Ne všechna data jsou zpracovávána jedním procesem, což znamená, že více než jeden procesor může požadovat stejná data. Pro tyto případy NUMA systémy zahrnují další hardware nebo software k přesunu dat mezi bankami. Tato operace má bohužel za následek zpomalení procesorů, které jsou k daným bankám připojeny. Z toho vyplývá, že celkové navýšení rychlosti díky NUMA je ve velké míře závislé na přesné povaze úkolů běžících na systému v dané chvíli.

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

Koherence cache (tj. aktuálnost vůči změnám provedeným jiným procesorem) je v NUMA systémech velmi zásadní. Proto se dnes používá cache-coherent NUMA (ccNUMA), kdy řadiče cache samy mezi sebou zajišťují koherenci. Ke zpomalení tak dochází v situacích kdy na stejné místo přistupuje více procesorů rychle za sebou.

Cache koherentní NUMA (ccNUMA)

Téměř všechny dnešní počítačové architektury používají malé množství velmi rychlé nesdílené paměti, která je známa jako cache. Při použití NUMA se zajišťuje zachování koherence cache přes distribuované úložiště, což má značné režijní náklady.

Ne-cache-koherentní NUMA systémy jsou jednodušší na vývoj a realizaci, ale se standardním programovacím modelem von Neumanovy architektury velmi obtížně programovatelné. Proto všechny v současnosti používané NUMA systémy mají speciální hardware pro zajištění koherence cache, a jsou proto známy jako cache-koherentní NUMA (ccNUMA).

To je obvykle dosaženo inter-procesorovou komunikací mezi řadičemi cache, což zajišťuje konzistentní obsah paměti v případě, že je stejný obsah paměti uložen ve více než v jedné cache. ccNUMA má špatnou výkonnost, právě když se více procesorů pokouší o rychlý přístup ke stejné paměti. Proto se operační systémy s podporou NUMA pokoušejí minimalizovat četnost těchto žádostí pomocí přidělování procesorů a paměti s přihlédnutím na šetrnost k NUMA. Alternativně se využívají protokoly pro cache coherency jako je MESIF protokol, který se snaží snížit komunikaci potřebnou k udržení koherence cache.

Současné ccNUMA systémy jsou multiprocesorové systémy založené na AMD Opteron (ty mohou být provedeny bez vnější logiky) a Intel Itanium, který vyžaduje speciální chipset s podporu NUMA. Příkladem chipsetů umožňujících ccNUMA jsou SGI Shub, Intel E8870, HP sx2000 (používané v Integrity Superdome a serverech) a další (založené na systému NEC Itanium). Dřívější ccNUMA systémy, například od Silicon Graphics byly založeny na MIPS procesorech a DEC Alpha 21364 (EV7) procesorech.

Související články

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Non-Uniform_Memory_Access
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.