Paralelní externí paměť - Parallel external memory

V počítačové vědě, a model paralelní externí paměti (PEM) je vědomi mezipaměti, externí paměť abstraktní stroj.[1] Jedná se o analogii paralelního výpočtu s jednoprocesorem externí paměť (EM) model. Podobným způsobem je to analogie s vědomím mezipaměti paralelní stroj s náhodným přístupem (PRAM). Model PEM se skládá z řady procesorů, jejich příslušných soukromých mezipamětí a sdílené hlavní paměti.
Modelka
Definice
Model PEM[1] je kombinací modelu EM a modelu PRAM. Model PEM je výpočetní model, který se skládá z procesory a dvouúrovňový hierarchie paměti. Tato hierarchie paměti se skládá z velké externí paměť (hlavní paměť) velikosti a malý interní paměti (cache). Procesory sdílejí hlavní paměť. Každá mezipaměť je vyhrazena pro jeden procesor. Procesor nemá přístup do mezipaměti jiného uživatele. Mezipaměti mají velikost který je rozdělen na bloky velikosti . Procesory mohou provádět operace pouze s daty, která jsou v jejich mezipaměti. Data lze přenášet mezi hlavní pamětí a mezipamětí ve velikostních blocích .
Složitost I / O
The míra složitosti modelu PEM je složitost I / O[1], který určuje počet přenosů paralelních bloků mezi hlavní pamětí a mezipamětí. Během přenosu paralelního bloku může každý procesor přenést blok. Takže když procesory načítají paralelně datový blok velikosti tvoří hlavní paměť do jejich mezipaměti, považuje se to za I / O složitost ne . Program v modelu PEM by měl minimalizovat přenos dat mezi hlavní pamětí a mezipamětí a pracovat co nejvíce s daty v mezipaměti.
Konflikty čtení / zápisu
V modelu PEM není síť přímé komunikace mezi P procesory. Procesory musí komunikovat nepřímo přes hlavní paměť. Pokud se více procesorů pokusí o přístup ke stejnému bloku v hlavní paměti současně ke konfliktům čtení / zápisu[1] nastat. Stejně jako v modelu PRAM jsou zvažovány tři různé varianty tohoto problému:
- Souběžné čtení Souběžný zápis (CRCW): Stejný blok v hlavní paměti může číst a zapisovat více procesorů současně.
- Souběžné čtení Exkluzivní zápis (CREW): Stejný blok v hlavní paměti může číst více procesorů současně. Pouze jeden procesor může zapisovat do bloku najednou.
- Exkluzivní čtení Exkluzivní zápis (EREW): Stejný blok v hlavní paměti nelze číst ani zapisovat více procesory současně. Pouze jeden procesor může přistupovat k bloku najednou.
Následující dva algoritmy[1] vyřešit problém POSÁDKY a POSÁDKY, pokud procesory zapisují do stejného bloku současně. Prvním přístupem je serializace operací zápisu. Do bloku zapisuje pouze jeden procesor za druhým. Výsledkem je celkem paralelní blokové převody. Je zapotřebí druhý přístup přenosy paralelních bloků a další blok pro každý procesor. Hlavní myšlenkou je naplánovat operace zápisu v a binární stromová móda a postupně kombinovat data do jednoho bloku. V prvním kole procesory kombinují své bloky do bloky. Pak procesory kombinují bloky do . Tento postup pokračuje, dokud se všechna data nespojí do jednoho bloku.
Srovnání s jinými modely
Modelka | Vícejádrový | Cache-aware |
---|---|---|
Stroj s náhodným přístupem (RAM) | Ne | Ne |
Paralelní stroj s náhodným přístupem (PRAM) | Ano | Ne |
Externí paměť (EM) | Ne | Ano |
Paralelní externí paměť (PEM) | Ano | Ano |
Příklady
Vícecestné dělení
Nechat být vektorem čepů d-1 seřazených ve vzestupném pořadí. Nechat být neuspořádaná sada N prvků. D-way oddíl[1] z je sada , kde a pro . se nazývá i-tý kbelík. Počet prvků v je větší než a menší než . V následujícím algoritmu[1] vstup je rozdělen na souvislé segmenty velikosti N / P v hlavní paměti. Procesor i pracuje primárně na segmentu . Algoritmus vícenásobného dělení (PEM_DIST_SORT
[1]) používá PEM součet prefixů algoritmus[1] vypočítat součet předpon s optimálním Složitost I / O. Tento algoritmus simuluje optimální algoritmus součtu předpon PRAM.
// Výpočet paralelně oddílu d-way na datových segmentech pro každého procesor i paralelně dělat Přečtěte si vektor čepů do mezipaměti. Rozdělit do kbelíků a nechat vektor být počet položek v každém kbelíku.konec proSpusťte součet předpon PEM na sadě vektorů současně .// Použijte vektor součtu předpon k výpočtu posledního oddílupro každého procesor i paralelně dělat Napište prvky do paměťových míst s odpovídajícím posunutím o a .konec proPoužívání prefixových součtů uložených v poslední procesor P vypočítá vektor velikostí kbelíku a vrátí jej.
Pokud vektor otočné čepy M a vstupní sada A jsou umístěny v souvislé paměti, pak lze problém dělení d-way v modelu PEM vyřešit pomocí Složitost I / O. Obsah finálních segmentů musí být umístěn v souvislé paměti.
Výběr
The problém s výběrem je o hledání k-té nejmenší položky v neuspořádaném seznamu velikosti Následující kód[1] využívá PRAMSORT
což je algoritmus pro optimální třídění PRAM, který běží , a VYBRAT
, což je algoritmus výběru jednoho procesoru pro optimalizaci mezipaměti.
-li pak vrátit se skončit, pokud // Najít medián každého z nich pro každého procesor paralelně dělat konec pro // Řadit mediány// Rozdělení kolem mediánu mediánů-li pak vrátit se jiný vrátit se skončit, pokud
Za předpokladu, že vstup je uložen v souvislé paměti, PEMSELECT
má I / O složitost:
Třídění distribuce
Třídění distribuce rozděluje seznam vstupů velikosti do disjunktní lopaty podobné velikosti. Každý segment je poté rekurzivně tříděn a výsledky jsou sloučeny do plně seřazeného seznamu.
Li úkol je delegován na algoritmus třídění jednoho procesoru s optimální úrovní mezipaměti.
Jinak následující algoritmus[1] se používá:
// Vzorek prvky z pro každý procesor paralelně dělat -li pak Zatížení v -sized stránky a třídit stránky jednotlivě jiný Načíst a třídit jako jedna stránka skončit, pokud Vyberte každý První prvek z každé tříděné stránky paměti do souvislého vektoru vzorkůkonec pro paralelně dělat Kombinujte vektory do jednoho souvislého vektoru Udělat kopie : konec udělej// Najít čepy pro na paralelně dělat konec proBalení čepů do souvislého pole // Oddíl kolem čepů do kbelíků // Rekurzivně třídit segmentypro na paralelně dělat rekurzivně volat na kbelíku velikosti použitím procesory odpovědné za prvky v kbelíku konec pro
Složitost I / O PEMDISTSORT
je:
kde
Pokud je zvolen počet procesorů, je to a složitost I / O je pak:
Další PEM algoritmy
Algoritmus PEM | Složitost I / O | Omezení |
---|---|---|
Sloučit třídění[1] | ||
Seznam hodnocení[2] | ||
Prohlídka Euler[2] | ||
Výraz strom hodnocení[2] | ||
Hledání a MST[2] |
Kde je čas potřebný k třídění položky s procesory v modelu PEM.
Viz také
Reference
- ^ A b C d E F G h i j k l Arge, Lars; Goodrich, Michael T .; Nelson, Michael; Sitchinava, Nodari (2008). "Základní paralelní algoritmy pro čipové multiprocesory privátní mezipaměti". Sborník dvacátého výročního symposia o paralelismu v algoritmech a architekturách - SPAA '08. New York, New York, USA: ACM Press: 197. doi:10.1145/1378533.1378573. ISBN 9781595939739.
- ^ A b C d Arge, Lars; Goodrich, Michael T .; Sitchinava, Nodari (2010). Msgstr "Algoritmy grafu paralelní externí paměti". Mezinárodní sympozium IEEE 2010 o paralelním a distribuovaném zpracování (IPDPS). IEEE: 1–11. doi:10.1109 / ipdps.2010.5470440. ISBN 9781424464425.