Distribuovaná paměť - Distributed memory

Ilustrace systému distribuované paměti tří počítačů.

Ve vědě o počítačích se distribuovaná paměť týká víceprocesorového počítačového systému, ve kterém má každý procesor svou vlastní soukromou paměť . Výpočtové úlohy mohou fungovat pouze s místními daty, a pokud jsou požadována vzdálená data, musí výpočetní úloha komunikovat s jedním nebo více vzdálenými procesory. Naproti tomu multiprocesor sdílené paměti nabízí jeden paměťový prostor využívaný všemi procesory. Procesory nemusí vědět, kde se data nacházejí, kromě toho, že mohou být pokutovány výkony a je třeba se vyhnout podmínkám závodu.

V systému distribuované paměti je obvykle procesor, paměť a nějaká forma propojení, která umožňuje vzájemnou interakci programů na každém procesoru. Propojení může být organizováno bodovými odkazy nebo samostatný hardware může poskytnout přepínací síť. Topologie sítě je klíčovým faktorem při určování toho, jak se s více procesory stroj váhy . Spojení mezi uzly lze implementovat pomocí některého standardního síťového protokolu (například Ethernet ), pomocí zakázkových síťových spojení (používaných například v transportéru ) nebo pomocí dvouportových pamětí .

Programování strojů s distribuovanou pamětí

Klíčovým problémem při programování systémů distribuované paměti je, jak distribuovat data přes paměti. V závislosti na vyřešeném problému lze data distribuovat staticky nebo je lze přesouvat přes uzly. Data lze přesouvat na vyžádání nebo lze data předávat do nových uzlů předem.

Jako příklad lze problém popsat jako kanál, kde se data x zpracovávají následně pomocí funkcí f , g , h atd. (Výsledkem je h ( g ( f ( x )))), pak to lze vyjádřit jako problém s distribuovanou pamětí, kde jsou data přenášena nejprve do uzlu, který provádí f, který předává výsledek do druhého uzlu, který počítá g , a nakonec do třetího uzlu, který počítá h . Toto se také nazývá systolický výpočet .

Data se mohou staticky uchovávat v uzlech, pokud se většina výpočtů odehrává lokálně, a ostatním uzlům se musí hlásit pouze změny na okrajích. Příkladem toho je simulace, kde jsou data modelována pomocí mřížky a každý uzel simuluje malou část větší mřížky. Při každé iteraci uzly informují všechny sousední uzly o nových datech hrany.

Distribuovaná sdílená paměť

Podobně v distribuované sdílené paměti má každý uzel klastru kromě omezené nesdílené soukromé paměti každého uzlu přístup k velké sdílené paměti.

Sdílená paměť vs. distribuovaná paměť vs. distribuovaná sdílená paměť

  • Výhodou (distribuované) sdílené paměti je, že nabízí jednotný adresní prostor, ve kterém lze najít všechna data.
  • Výhodou distribuované paměti je, že vylučuje rasové podmínky a že nutí programátora přemýšlet o distribuci dat.
  • Výhodou distribuované (sdílené) paměti je, že je snazší navrhnout stroj, který se přizpůsobuje algoritmu

Distribuovaná sdílená paměť skrývá mechanismus komunikace, neskrývá latenci komunikace.

Viz také