Symetrický multiprocesing: Porovnání verzí

Smazaný obsah Přidaný obsah
Bez shrnutí editace
Řádek 5:
== Základní charakteristika ==
 
Zásadní rozdíl proti non-SMP počítači je v tom, že na datovou sběrnici je připojeno více [[CPU]]. Vše ostatní je neduplikované. Je tam jedna paměť, jedna datová a jedna I/O sběrnice. V SMP na rozdíl od [[MPP]] (Massive Parallel Processing) běží jen jedna instance [[OS]]
 
== Architektury SMP ==
[[Image:SchemaSMP.png|right|150px|thumb| Obrázek 1: Blokové schéma architektury SMP. ]]
 
Symetrický multiprocessing – SMP (Symmetric Multiprocessing) je možné použít při použití malého množství procesorů, to může být 2 až 8 procesorů. V takovém to systému existuje pouze jedna [[operační paměť]]. Procesory k této paměti přistupují přes vhodnou propojovací strukturu, která obsahuje i arbitr. Na bázi SMP byly vystavěny i první víceprocesorové osobní počítače a jednodušší servery. Vždy se však jednalo o propojení dvojic, čtveřic procesorů a v maximální konfiguraci osmi procesorů (to je však již velmi neefektivní řešení). Blokové schéma architektury SMP je naznačeno na prvním obrázku.
 
 
Každý procesor je propojen s vlastní vyrovnávací pamětí (která může být rozdělena na vyrovnávací paměť určenou pro data a vyrovnávací paměť pro instrukce). Tato vyrovnávací paměť je napojena na interní sběrnici popř. přepínací síť zajišťující řízení přenosu dat mezi těmito paměťmi a pamětí operační. Na přepínací síť bývají taktéž zapojeny některá rychlá [[I/O zařízení]] (například grafický akcelerátor) či řadiče sběrnic ([[PCI]]).
 
 
[[Image:Amdahlův zákon.jpg|right|150px|thumb| Obrázek 2: Amdahlův zákon (graf). ]]
 
Architektura SMP není nijak složitá, proto je také snadná a samozřejmě i levná její implementace. Potíže ale vznikají při připojení většího množství procesorů. Například už při čtyřech současně běžících procesorech se propojovací struktura stává úzkým hrdlem této architektury, protože i přes mnohdy velikou kapacitu vyrovnávacích pamětí ([[cache]]) nastávají kolize při přístupu do hlavní paměti, kdy na sebe jednotlivé procesory musí čekat (viz Amdahlův zákon (Obrázek 2), tento zákon mimo jiné ukazuje, do jaké míry může i malá sekvenčně prováděná část programu zneefektivnit použití většího množství procesorů).
 
 
Amdahlův zákon vyjádřený graficky na obrázku 2. Jak je z obrázku patrné rostoucím počtem procesorů (popř. procesorových jader) neroste výpočetní výkon celého počítače lineárně, protože určitou část úlohy není možné provádět paralelně (například se jedná o vstup či výstup dat, přístup ke sdílenému prostředku atd.). Při použití architektury SMP však může snaha o souběžný přístup k [operační paměti] způsobit průběh naznačený červenou křivkou – pro velké množství procesorů je nejvíce procesorového času „promrháno“ arbitráží společné sběrnice.
 
== Alternativy ==
Řádek 27:
Kromě SMP existují další technologie pracující na podobném principu nebo s obdobným výsledkem. Mezi ně patří [[Non-Uniform Memory Access|NUMA]], systémy s nesymetrickým multiprocesingem [[ASMP]] a také počítačové clustery.
 
Vážné nevýhody symetrického multiprocesingu odstraňuje architektura [[NUMA]], v níž se zavádí namísto jednoduché lineární propojovací struktury složitější topologie, jako je (mřížka, krychle, hyperkrychle, torus nebo hypertorus). V uzlech této topologické sítě se nacházejí jednotlivé procesory (popř. procesorová jádra nebo jejich dvojice – viz další kapitoly), operační paměť a další zařízení, mimo jiné i grafický akcelerátor či dokonce větší množství spolupracujících grafických akcelerátorů. Ty jsou z tohoto hlediska zcela rovnocenné procesorům, na rozdíl od architektury PC. Nejdůležitější odlišností architektury [[NUMA]] je však již zmíněné rozdělení operační paměti mezi jednotlivé uzly. Jedná se vlastně o zobecněné schéma [[DSM]] (Distributed Shared Memory neboli distribuovaná sdílená paměť), které s sebou přináší nutnost rozdělení informací mezi jednotlivé části operační paměti umístěné v jednotlivých uzlech.
 
Příklad. máme-li moderní víceprocesorovou stanici ve které se sice nachází trojice [[CPU]] (či výpočetních jader) s vyrovnávacími paměťmi první úrovně, ovšem jak operační paměť, tak i vyrovnávací paměti druhé úrovně jsou již pro všechny CPU společné,. Tento fakt cožvedl tvůrce této architektury vedlo k nutnosti vytvoření velmi rychlých komunikačních kanálů mezi [[CPU]], [[North Bridgem]] a operační pamětí. Škálovatelnost tohoto řešení je poměrně malá, řádově se jedná o jednotky CPU. Oproti SMP je vyrovnávací paměť první úrovně pro každé výpočetní jádro samostatná (a rozdělená na datovou a instrukční [[cache]]). [[Vyrovnávací paměť]] druhé úrovně je již společná pro všechna tři jádra, stejně jako blok operační paměti.
 
Důležité je, že určitý blok paměti se může v počítači s architekturou [[NUMA]] vyskytovat současně ve více kopiích (uložených v jednotlivých uzlech), přičemž je pomocí komunikačního protokolu zajišťována konzistence informací v jednotlivých blocích. Pokud některý z procesorů zapíše do tohoto bloku data, je zajištěno, aby v případě potřeby existovala kopie tohoto bloku i v dalších uzlech, ale pouze v případě, že tento uzel data skutečně potřebuje číst (kopie se tedy provádí až v době, kdy je to nezbytně nutné). Podobným způsobem je zajištěn i souběžný zápis dat do jednoho bloku více procesory současně, což je jedna z mála operací, při níž na sebe procesory musí čekat (souběžné čtení jednoho bloku více procesory nepřináší žádné problémy, což mj. zahrnuje i čtení jednotlivých instrukcí z kódových segmentů). Efektivita architektury [[NUMA]] je tedy do značné míry závislá na algoritmu, který je použit pro distribuci a vzájemné synchronizaci obsahů jednotlivých paměťových bloků.
 
== Výhody a nevýhody ==
 
SMP má mnoho použití ve vědě, průmyslu a podnikání, které často používají vlastní-naprogramovaný software pro vícevláknové ([[multitasking]]) zpracování. Nicméně, většina spotřebního zbožísoftware, jako jsou textové procesory ([[MS Word]], [[MS Excel]]) a počítačové hry nejsou psané takovým způsobem, aby byly schopné využívat výhody multiprocesorových systémů. U her je to většinou proto, že psaní programu pro zvýšení výkonnosti na SMP systémech by mohlo produkovat ztrátu výkonu na jednoprocesorových systémech. Nicméně, multi-jádrové čipy jsou stále častěji v nových počítačích, a rovnováha mezi instalovanými uni-a multi-core počítači může změnit v přístup v nadcházejících letech.
 
Jednoprocesorové a SMP systémy vyžadují různé programovací metody k dosažení maximálního výkonu. Je tedy potřeba dvě různé verze téhož programu, pro každý typ jedna příslušná verze. U programů běžících na SMP systémech může dojít k zvýšení výkonu, i když byly napsány pro jednoprocesorové systémy. Důvodem jsou, hardwarová přerušení, která obvykle pozastavují provádění programu, zatímco u více jádrových se zapojí druhé, či další jádro. Účinek ve většině aplikací (her) není ani tak nárůst výkonu, ale spíše vzhled (program běží mnohem více hladce).
Řádek 95:
* [http://www.edm2.com/index.php/OS/2's_Symmetrical_Multiprocessing_Demystified ''OS/2's Symmetrical Multiprocessing Demystified'' na webu ''edm2.com''].
=== Související články ===
* [[Asymmetric multiprocessing|Asymmetric Multi-Processing]]
* [[Non-Uniform Memory Access]]
* [[Simultaneous multithreading]]