Distribuovaná sdílená paměť - Distributed shared memory

V počítačové vědě je distribuovaná sdílená paměť ( DSM ) forma architektury paměti, kde fyzicky oddělené paměti lze adresovat jako jeden logicky sdílený adresní prostor. Zde výraz „sdílený“ neznamená, že existuje jediná centralizovaná paměť, ale že adresní prostor je „sdílený“ (stejná fyzická adresa na dvou procesorech odkazuje na stejné umístění v paměti). Distribuovaný globální adresový prostor ( DGAS ) je podobný termín pro širokou třídu softwarových a hardwarových implementací, ve kterých má každý uzel klastru kromě sdílené soukromé paměti každého uzlu také přístup ke sdílené paměti .

Systém s distribuovanou pamětí, často nazývaný vícepočítač , se skládá z několika nezávislých uzlů zpracování s místními paměťovými moduly, které jsou propojeny obecnou propojovací sítí. Softwarové systémy DSM lze implementovat v operačním systému nebo jako programovací knihovnu a lze je považovat za rozšíření základní architektury virtuální paměti . Když jsou tyto systémy implementovány v operačním systému, jsou pro vývojáře transparentní; což znamená, že základní distribuovaná paměť je před uživateli zcela skryta. Naproti tomu softwarové systémy DSM implementované na úrovni knihovny nebo jazyka nejsou transparentní a vývojáři je obvykle musí programovat jinak. Tyto systémy však nabízejí přenositelnější přístup k implementacím systému DSM. Distribuovaný systém implementuje Sdílená paměť sdílenou pamětí modelu na fyzicky distribuované paměti systému.

Metody dosažení DSM

Distribuované sdílené paměti obvykle existují dva způsoby:

  • hardware, jako jsou koherenční obvody mezipaměti a síťová rozhraní
  • software

Softwarová implementace DSM

Existují tři způsoby implementace softwarově distribuované sdílené paměti:

  • přístup založený na stránce pomocí virtuální paměti systému;
  • přístup sdílené proměnné pomocí některých rutin pro přístup ke sdíleným proměnným;
  • objektově založený přístup ideálně přístup ke sdíleným datům prostřednictvím objektově orientované disciplíny.

Předávání zpráv vs. DSM

Předávání zpráv Distribuovaná sdílená paměť
Proměnné je třeba seřadit Proměnné jsou sdíleny přímo
Náklady na komunikaci jsou zřejmé Náklady na komunikaci jsou neviditelné
Procesy jsou chráněny soukromým adresním prostorem Změny dat mohou způsobit chyby
Procesy by se měly spouštět současně Ke spuštění procesů může dojít s nepřekrývajícími se životem

Softwarové systémy DSM mají také flexibilitu organizovat oblast sdílené paměti různými způsoby. Přístup založený na stránce organizuje sdílenou paměť na stránky pevné velikosti. Oproti tomu přístup založený na objektech organizuje oblast sdílené paměti jako abstraktní prostor pro ukládání sdílených objektů různých velikostí. Další běžně viděná implementace používá prostor řazené kolekce členů , ve kterém je jednotkou sdílení n -tice .

Architektura sdílené paměti může zahrnovat oddělení paměti na sdílené části distribuované mezi uzly a hlavní pamětí; nebo distribuovat veškerou paměť mezi uzly. Protokolu koherence , volí v souladu s modelem konzistence , udržuje soudržnost paměti .

Abstraktní pohled

OBRÁZEK ​​DSM

Výhody

  • Dobře se škáluje s velkým počtem uzlů
  • Předávání zpráv je skryté
  • Dokáže zpracovat složité a velké databáze bez replikace nebo odesílání dat do procesů
  • Obecně levnější než použití víceprocesorového systému
  • Poskytuje velký prostor virtuální paměti
  • Programy jsou přenosnější díky běžným programovacím rozhraním
  • Ochraňte programátory před vysíláním nebo přijímáním primitivů

Nevýhody

  • Přístup je obecně pomalejší než nedistribuovaná sdílená paměť
  • Musí poskytovat dodatečnou ochranu proti současnému přístupu ke sdíleným datům
  • Může mu být uložen trest výkonu
  • Malý programátor má kontrolu nad generováním aktuálních zpráv
  • Programátoři musí rozumět modelům konzistence, psát správné programy
  • Implementace DSM používají asynchronní předávání zpráv, a proto nemohou být efektivnější než implementace předávání zpráv

Soudržnost paměti adresáře

Soudržnost paměti je nezbytná k tomu, aby systém, který organizuje DSM, byl schopen sledovat a udržovat stav datových bloků v uzlech napříč pamětí, které systém obsahují. Adresář je jedním z takových mechanismů, které udržují stav bloků mezipaměti pohybujících se po systému.

Státy

Základní DSM bude sledovat alespoň tři stavy mezi uzly pro daný blok v adresáři. Bude existovat určitý stav, který bude diktovat blok jako bez mezipaměti (U), stav, který bude diktovat blok jako výhradní vlastnictví nebo upravené vlastnictví (EM), a stav, který bude diktovat blok jako sdílený (S). Jak bloky přicházejí do organizace adresářů, budou přecházet z U do EM (stav vlastnictví) v počátečním uzlu. Stav může přejít na S, když ostatní uzly začnou číst blok.

Existují dva primární způsoby, jak systému umožnit sledovat, kde jsou bloky ukládány do mezipaměti a za jakých podmínek v každém uzlu. Home-centric request-response používá domov k obsluze požadavků a stavů jednotek, zatímco žadatel-centric umožňuje každému uzlu řídit a spravovat své vlastní požadavky přes domov.

Stavový diagram bloku paměti v DSM. Blok je „vlastněný“, pokud jeden z uzlů má blok ve stavu EM.

Domácí žádost a odpověď

V systému zaměřeném na domovskou stránku se DSM vyhne nutnosti zpracovávat závody mezi odezvou mezi požadavky a uzly tím, že umožní pouze jednu transakci, která se má uskutečnit současně, dokud domovský uzel nerozhodne, že je transakce dokončena-obvykle když domov obdrží všechny odpovědi reakce procesoru na požadavek. Příkladem toho je režim domácího zdroje Intel QPI .

Výhody

  • Datové závody jsou nemožné
  • Jednoduchá implementace

Nevýhody

  • Pomalá, vyrovnávací paměť strategie odezvy na požadavek, omezená domovským uzlem

Požadavek a odpověď zaměřená na žadatele

V systému zaměřeném na žadatele umožní DSM uzlům vzájemně si libovolně hovořit přes domov. To znamená, že se o zahájení transakce může pokusit více uzlů, ale k zajištění soudržnosti to vyžaduje další úvahy. Například: když jeden uzel zpracovává blok, pokud obdrží požadavek na tento blok od jiného uzlu, pošle NAck (negativní potvrzení), aby iniciátorovi oznámil, že uzel zpracování nemůže tento požadavek splnit hned. Příkladem toho je režim snoop-source Intel QPI.

Výhody

  • Rychle

Nevýhody

  • Přirozeně nebrání závodním podmínkám
  • Generuje více autobusové dopravy

Konzistenční modely

DSM musí dodržovat určitá pravidla, aby byla zachována konzistence v tom, jak je pořadí čtení a zápisu zobrazováno mezi uzly, nazývané model konzistence systému .

Předpokládejme, že pro každý proces i máme n procesů a Mi paměťových operací a že všechny operace jsou prováděny postupně. Můžeme usoudit, že ( M1 + M2 + ... + Mn )!/( M1 ! M2 ! ... Mn !) Jsou možná prokládání operací. Problémem tohoto závěru je určení správnosti prokládaných operací. Koherence paměti pro DSM definuje, která prokládání jsou povolena.

Sekvenční vyvolání a odpovědi v DSM

Replikace

Existují dva typy replikačních algoritmů. Čtení replikace a zápis replikace. V replikaci čtení může číst více uzlů současně, ale pouze jeden uzel může zapisovat. V části Replikace zápisu může číst a zapisovat více uzlů současně. Požadavky na zápis zpracovává sekvencer. Replikace sdílených dat obecně má tendenci:

  • Snižte síťový provoz
  • Podporujte zvýšenou paralelnost
  • Výsledkem je menší počet chyb na stránce

Zachování soudržnosti a konzistence však může být náročnější.

Konzistence uvolnění a vstupu

  • Konzistence vydání: když proces opouští kritickou sekci , nové hodnoty proměnných se šíří na všechny weby.
  • Konzistence vstupu: když proces vstoupí do kritické sekce, automaticky aktualizuje hodnoty sdílených proměnných.
    • Konzistence založená na zobrazení: je to varianta Konzistence vstupu, kromě toho, že systém automaticky detekuje sdílené proměnné kritické sekce. Implementací konzistence založené na zobrazení je VODCA, která má srovnatelný výkon jako MPI na klastrových počítačích.

Příklady

Viz také

Reference

externí odkazy