Amdahlův zákon - Amdahls law - Wikipedia
Tento článek obsahuje seznam obecných Reference, ale zůstává z velké části neověřený, protože postrádá dostatečné odpovídající vložené citace.Dubna 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v počítačová architektura, Amdahlův zákon (nebo Amdahlova argumentace[1]) je vzorec, který dává teoretický zrychlit v latence provádění úkolu na pevné pracovní zátěž to lze očekávat od systému, jehož zdroje jsou vylepšeny. Je pojmenována po počítačovém vědci Gene Amdahl, a byl představen na AFIPS Společná jarní počítačová konference v roce 1967.
Amdahlův zákon je často používán v paralelní výpočty předpovědět teoretické zrychlení při použití více procesorů. Například pokud program potřebuje 20 hodin k dokončení pomocí jednoho vlákna, ale hodinovou část programu nelze paralelizovat, proto zbývá pouze zbývajících 19 hodin (p = 0.95) času spuštění lze paralelizovat, pak bez ohledu na to, kolik vláken je věnováno paralelnímu spuštění tohoto programu, nesmí být minimální doba spuštění kratší než jedna hodina. Proto je teoretické zrychlení omezeno na maximálně 20násobek výkonu jednoho vlákna, .
Definice
Amdahlův zákon lze formulovat následujícím způsobem:
kde
- Slatence je teoretické zrychlení provedení celého úkolu;
- s je počet vláken, přes která je rozdělena paralelní část;
- p je podíl doby realizace, kterou část využívající vylepšené zdroje původně obsadila.
Dále
ukazuje, že teoretické zrychlení provádění celého úkolu se zvyšuje se zlepšením zdrojů systému a že bez ohledu na rozsah zlepšení je teoretické zrychlení vždy omezeno částí úkolu, která ze zlepšení nemůže těžit .
Amdahlův zákon se vztahuje pouze na případy, kdy je velikost problému opravena. V praxi, jakmile bude k dispozici více výpočetních zdrojů, mají tendenci si zvykat na větší problémy (větší datové sady) a čas strávený v paralelizovatelné části často roste mnohem rychleji než neodmyslitelně sériová práce. V tomto případě, Gustafsonův zákon poskytuje méně pesimistické a realističtější hodnocení paralelního výkonu.[2]
Derivace
Úkol provedený systémem, jehož zdroje jsou vylepšeny ve srovnání s původním podobným systémem, lze rozdělit na dvě části:
- část, která neprospívá zlepšení zdrojů systému;
- část, která těží ze zlepšení zdrojů systému.
Příkladem je počítačový program, který zpracovává soubory z disku. Část tohoto programu může prohledat adresář disku a vytvořit seznam souborů interně v paměti. Poté další část programu předá každý soubor zvlášť vlákno pro zpracování. Část, která prohledá adresář a vytvoří seznam souborů, nelze na paralelním počítači zrychlit, ale část, která soubory zpracovává, může.
Čas provedení celého úkolu před zlepšením zdrojů systému je označen jako . Zahrnuje čas provedení části, která by neměla prospěch ze zlepšení zdrojů, a dobu provedení té, která by z toho měla prospěch. Zlomek doby provedení úkolu, kterému by prospělo zlepšení zdrojů, je označen . Část týkající se části, která by z toho neměla prospěch, tedy je . Pak:
Jedná se o provedení součásti, která těží ze zlepšení zdrojů, které je faktorem urychleno po vylepšení zdrojů. V důsledku toho zůstává doba provedení části, která z ní nemá prospěch, stejná, zatímco část, která z ní těží, se stává:
Teoretická doba provedení celého úkolu po vylepšení zdrojů je pak:
Amdahlův zákon dává teorii zrychlit v latence provedení celého úkolu při pevné pracovní zátěži , který přináší
Paralelní programy
Pokud může být 30% doby provedení předmětem zrychlení, p bude 0,3; pokud vylepšení způsobí, že je postižená část dvakrát rychlejší, s bude 2. Amdahlův zákon stanoví, že celkové urychlení uplatnění zlepšení bude:
Předpokládejme například, že dostáváme sériovou úlohu, která je rozdělena na čtyři po sobě jdoucí části, jejichž procenta doby provedení jsou p1 = 0.11, p2 = 0.18, p3 = 0.23, a p4 = 0.48 resp. Pak nám bylo řečeno, že první část není zrychlena, takže s1 = 1, zatímco druhá část je zrychlena 5krát, takže s2 = 5, třetí část je zrychlena 20krát, takže s3 = 20a 4. část je zrychlena 1,6krát, takže s4 = 1.6. Použitím Amdahlova zákona je celkové zrychlení
Všimněte si, že pětinásobné a dvacetinásobné zrychlení ve 2. a 3. části nemají velký vliv na celkové zrychlení, když je čtvrtý díl (48% doby provedení) zrychlen pouze o 1,6krát.
Sériové programy
Například se sériovým programem ve dvou částech A a B pro který TA = 3 s a TB = 1 s,
- pokud je součástí B je spuštěn 5krát rychleji, to znamená s = 5 a p = TB/(TA + TB) = 0.25, pak
- pokud je součástí A je spuštěn dvakrát rychleji, to znamená s = 2 a p = TA/(TA + TB) = 0.75, pak
Proto je součástí A běžet dvakrát rychleji je lepší než být součástí B běžet 5krát rychleji. Procentní zlepšení rychlosti lze vypočítat jako
- Vylepšování části A o faktor 2 zvýší celkovou rychlost programu o faktor 1,60, což je o 37,5% rychleji než původní výpočet.
- Vylepšující část B faktorem 5, který pravděpodobně vyžaduje více úsilí, dosáhne celkového faktoru zrychlení pouze 1,25, což zrychlí o 20%.
Optimalizace sekvenční části paralelních programů
Pokud je neparalelizovatelná část optimalizována faktorem , pak
Z Amdahlova zákona vyplývá, že zrychlení způsobené paralelismem je dáno vztahem
Když , my máme , což znamená, že zrychlení je měřeno s ohledem na čas provedení po optimalizaci neparalelizovatelné části.
Když ,
Li , a , pak:
Transformace sekvenčních částí paralelních programů na paralelizovatelné
Dále uvažujeme případ, kdy je neparalelizovatelná část snížena o faktor a paralelizovatelná část je odpovídajícím způsobem zvětšena. Pak
Z Amdahlova zákona vyplývá, že zrychlení způsobené paralelismem je dáno vztahem
Výše uvedená derivace je v souladu s analýzou Jakoba Jenkova ohledně doby provedení vs. kompromisu zrychlení.[3]
Vztah k zákonu snižování výnosů
Amdahlův zákon je často sjednocen s Zákon o snižování výnosů, zatímco pouze zvláštní případ použití Amdahlova zákona prokazuje zákon o snižování výnosů. Pokud si člověk vybere optimálně (z hlediska dosaženého zrychlení), co má vylepšit, uvidí při zlepšování monotónně klesající vylepšení. Pokud však jeden vybere neoptimálně, po vylepšení suboptimální komponenty a přechodu na vylepšení optimálnější komponenty lze vidět zvýšení návratnosti. Všimněte si, že je často racionální vylepšit systém v pořadí, které je v tomto smyslu „neoptimální“, vzhledem k tomu, že některá vylepšení jsou obtížnější nebo vyžadují delší čas na vývoj než ostatní.
Amdahlův zákon představuje zákon snižování návratnosti, pokud vezmeme v úvahu, jaký druh návratnosti se získá přidáním více procesorů do stroje, pokud je spuštěn výpočet pevné velikosti, který využije všechny dostupné procesory. Každý nový procesor přidaný do systému přidá méně využitelného výkonu než předchozí. Pokaždé, když jeden zdvojnásobí počet procesorů, poměr zrychlení se sníží, protože celková propustnost směřuje k hranici 1 / (1 -p).
Tato analýza zanedbává další potenciální úzká místa, jako je šířka pásma paměti a I / O šířku pásma. Pokud se tyto prostředky nezmění s počtem procesorů, pak pouze přidání procesorů poskytuje ještě nižší výnosy.
Důsledkem Amdahlova zákona je, že k urychlení skutečných aplikací, které mají sériovou i paralelní část, heterogenní výpočty jsou vyžadovány techniky.[4] Například heterogenní procesor CPU-GPU může poskytovat vyšší výkon a energetickou účinnost než procesor pouze s CPU nebo pouze s GPU.[5]
Viz také
Reference
- ^ Rodgers, David P. (červen 1985). Msgstr "Vylepšení designu víceprocesorových systémů". Zprávy počítačové architektury ACM SIGARCH. New York, NY, USA: ACM. 13 (3): 225–231 [str. 226]. doi:10.1145/327070.327215. ISBN 0-8186-0634-7. ISSN 0163-5964.CS1 maint: ref = harv (odkaz)
- ^ McCool, Michael; Reinders, James; Robison, Arch (2013). Strukturované paralelní programování: vzory pro efektivní výpočet. Elsevier. str. 61. ISBN 978-0-12-415993-8.
- ^ http://tutorials.jenkov.com/java-concurrency/amdahls-law.html
- ^ Hill, Mark D .; Marty, Michael R. (2008). „Amdahlův zákon ve vícejádrové éře“. Počítač. 41 (7): 33–38. doi:10.1109 / MC.2008.209.
- ^ Mittal, Sparsh; Vetter, Jeffrey S. (2015). „Průzkum heterogenních výpočetních technik CPU-GPU“. ACM Computing Surveys. 47 (4). 69. doi:10.1145/2788396.
Další čtení
- Amdahl, Gene M. (1967). „Platnost přístupu jednoho procesoru k dosažení velkých výpočetních schopností“ (PDF). Sborník konferencí AFIPS (30): 483–485. doi:10.1145/1465482.1465560.CS1 maint: ref = harv (odkaz)
externí odkazy
- „Paralelní programování: Když je Amdahlův zákon nepoužitelný?“. 25. 06. 2011. Archivovány od originál dne 14.4.2013. Citováno 2011-06-26.
- Gene M. Amdahl (1989), Rozhovor o ústní historii s Genem M. Amdahlem, Charles Babbage Institute University of Minnesota, hdl:11299/104341. Amdahl pojednává o své postgraduální práci na University of Wisconsin a jeho designu WISC. Diskutuje o jeho roli při navrhování několika počítačů pro IBM, včetně PROTÁHNOUT SE, IBM 701, a IBM 704. Diskutuje o své práci Nathaniel Rochester a řízení procesu návrhu společností IBM. Zmínky pracují s Ramo-Wooldridge, Aeronutronic, a Computer Sciences Corporation
- Amdahlův zákon: Ne všechna vylepšení výkonu jsou vytvořena stejně (2007)
- „Amdahlův zákon“ Joel F. Klein, Demonstrační projekt Wolfram (2007)
- Amdahlův zákon ve vícejádrové éře (Červenec 2008)
- Co $ # @! je paralelismus? (Charles Leiserson, květen 2008)
- Vyhodnocení funkce Intel Core i7 Turbo Boost (James Charles, Preet Jassi, Ananth Narayan S, Abbas Sadat a Alexandra Fedorova (2009)
- Výpočet zrychlení paralelních programů jako funkce počtu vláken, George Popov, Valeri Mladenov a Nikos Mastorakis (leden 2010)
- Danny Hillis - Prokazování Amdahlova zákona špatné, video nahráno v říjnu 2016