Škálovatelná lokalita - Scalable locality
Počítač software údajně vystavuje škálovatelná lokalita[1] pokud může nadále využívat procesory že překonávají jejich Paměť systémy, řešit stále větší problémy. Tento termín je vysoce výkonným jednoprocesorovým analogem použití škálovatelný paralelismus odkazovat se na software pro které lze pro větší problémy použít rostoucí počet procesorů.
Přehled
Zvažte vzory využití paměti následujícího hnízda smyčky (iterativní dvourozměrný výpočet šablony ):
pro t := 0 na T dělat pro i := 1 na N-1 dělat pro j := 1 na N-1 dělat Nový(i,j) := (A(i-1,j) + A(i,j-1) + A(i,j) + A(i,j+1) + A(i+1,j)) * .2 konec konec pro i := 1 na N-1 dělat pro j := 1 na N-1 dělat A(i,j) := Nový(i,j) konec koneckonec
Celé hnízdo smyčky se dotýká přibližně 2 * N ** 2 prvků pole a provádí přibližně 5 * T * N ** 2 operací s plovoucí desetinnou čárkou. vypočítat zůstatek (poměr výpočtů s plovoucí desetinnou čárkou k použitým paměťovým buňkám s plovoucí desetinnou čárkou) celého tohoto hnízda smyčky je asi 5T / 2. Když je výpočetní rovnováha funkcí velikosti problému, jak je zde, říká se, že kód má škálovatelná výpočetní rovnováhaTady bychom mohli dosáhnout libovolné výpočetní rovnováhy, po které toužíme, pouhým výběrem dostatečně velkého T.
Kdy však N je velký, tento kód stále nebude vykazovat dobré opětovné použití mezipaměti kvůli špatnému referenční lokalita: v době, kdy je ve druhém přiřazení potřeba nový (1,1), nebo provedení prvního přiřazení ve druhém časovém kroku, bude řádek mezipaměti obsahující nový (1,1) přepsán nějakou jinou částí jednoho z pole.
Obklady prvního hnízda smyčky i / j může zlepšit výkon mezipaměti, ale pouze omezeným faktorem, protože toto hnízdo má výpočetní rovnováhu asi 5/2. Produkovat velmi vysoký stupeň lokality, například 500 (efektivně spustit tento kód s polem, které se nevejde do RAM a je odsunuto do virtuální paměti), musíme znovu použít hodnoty napříč časovými kroky.
Optimalizace napříč časovými kroky byla prozkoumána řadou výzkumných překladačů; viz práce Wonnacott,[1][2] podle Song a Li,[3] nebo Sadayappan et al.[4] pro podrobnosti o některých přístupech k obklady času. Willcott[1] demonstrovali, že časové obklady lze použít k optimalizaci pro soubory dat mimo jádro; v zásadě kterýkoli z těchto přístupů[2][3][4] by měl být schopen dosáhnout libovolně vysoké lokality paměti, aniž by vyžadoval, aby se celé pole vešlo do mezipaměti (požadavek mezipaměti však roste s požadovanou lokalitou). výše uvedené techniky s více procesory[2][4] by měl v zásadě současně vytvářet škálovatelné místo a škálovatelný paralelismus.
Reference
- ^ A b C David Wonnacott. Dosažení škálovatelné lokality pomocí Time Skewing. International Journal of Parallel Programming 30.3 (2002)
- ^ A b C David Wonnacott. Použití Time Skewing k eliminaci doby nečinnosti kvůli šířce pásma paměti a omezením sítě. International Parallel and Distributed Processing Symposium 2000
- ^ A b Yonghong Song a Zhiyuan Li. Nové techniky obkládání ke zlepšení dočasné lokality mezipaměti. PLDI '99
- ^ A b C Sriram Krishnamoorthy a Muthu Baskaran a Uday Bondhugula a J. Ramanujam a Atanas Rountev a P. Sadayappan. Efektivní automatická paralelizace výpočtů vzorníku. PLDI '07