Symetrické vícenásobné zpracování - Symmetric multiprocessing

Schéma symetrického víceprocesního systému

Symetrické multiprocesing nebo multiprocesing sdílené paměti ( SMP ) zahrnuje víceprocesorovou počítačovou hardwarovou a softwarovou architekturu, kde jsou dva nebo více identických procesorů připojeno k jedné sdílené hlavní paměti , mají plný přístup ke všem vstupním a výstupním zařízením a jsou ovládány jediným instance operačního systému, která zachází se všemi procesory stejně, žádný si nevyhradí pro speciální účely. Většina systémů s více procesory dnes používá architekturu SMP. V případě vícejádrových procesorů se architektura SMP vztahuje na jádra a považuje je za samostatné procesory.

Profesor John D. Kubiatowicz se domnívá, že systémy SMP tradičně obsahují procesory bez mezipaměti. Culler a Pal-Singh ve své knize z roku 1998 „Parallel Computer Architecture: A Hardware/Software Approach“ zmiňují: „Termín SMP je široce používán, ale způsobuje trochu zmatku. [...] Přesnější popis toho, co je zamýšleno SMP je multiprocesor sdílené paměti, kde jsou náklady na přístup k umístění paměti pro všechny procesory stejné; to znamená, že má jednotné náklady na přístup, když je přístup skutečně do paměti. Pokud je umístění uloženo v mezipaměti, přístup bude rychlejší, ale časy přístupu do mezipaměti a časy přístupu do paměti jsou u všech procesorů stejné. "

SMP systémy jsou úzce propojené víceprocesorové systémy se sdružením homogenních procesorů běžících nezávisle na sobě. Každý procesor, vykonávající různé programy a pracující na různých sadách dat, má schopnost sdílet společné prostředky (paměť, I/O zařízení, přerušovací systém atd.), Které jsou připojeny pomocí systémové sběrnice nebo příčníku .

Design

Systémy SMP mají centralizovanou sdílenou paměť nazývanou hlavní paměť (MM) pracující pod jedním operačním systémem se dvěma nebo více homogenními procesory. Obvykle má každý procesor přidruženou soukromou vysokorychlostní paměť známou jako mezipaměť (nebo mezipaměť), aby se zrychlil přístup k datům do hlavní paměti a omezil provoz systémové sběrnice.

Procesory mohou být propojeny pomocí sběrnic, příčných přepínačů nebo sítí typu chip-mesh. Úzkým místem škálovatelnosti SMP pomocí sběrnic nebo přepínačů příčníků je šířka pásma a spotřeba energie propojení mezi různými procesory, pamětí a diskovými poli. Síťové architektury se těmto problémům vyhýbají a poskytují téměř lineární škálovatelnost mnohem vyššímu počtu procesorů při obětování programovatelnosti:

U tohoto druhu architektury přetrvávají závažné problémy s programováním, protože vyžadují dva odlišné režimy programování; jeden pro samotné CPU a druhý pro propojení mezi CPU. Jeden programovací jazyk by musel být schopen nejen rozdělit pracovní zátěž, ale také pochopit paměťovou lokalitu, což je v architektuře založené na sítích závažné.

Systémy SMP umožňují jakémukoli procesoru pracovat na jakémkoli úkolu bez ohledu na to, kde jsou data pro tento úkol umístěna v paměti, za předpokladu, že každý úkol v systému není prováděn na dvou nebo více procesorech současně. Díky správné podpoře operačního systému mohou systémy SMP snadno přesouvat úkoly mezi procesory a efektivně vyvážit pracovní zátěž.

Dějiny

Nejdříve produkční systém s více identickými procesory byl Burroughs B5000 , který byl funkční kolem roku 1961. V době běhu to však bylo asymetrické , přičemž jeden procesor byl omezen na aplikační programy, zatímco druhý procesor zpracovával hlavně přerušení operačního systému a hardwaru. Burroughs D825 poprvé implementoval SMP v roce 1962.

Společnost IBM nabízela dvouprocesorové počítačové systémy založené na modelu System/360, model 65 a v úzce souvisejících modelech 67 a 67–2. Na těchto strojích běžely operační systémy OS/360 M65MP a TSS/360 . Jiný software vyvinutý na univerzitách, zejména Michigan Terminal System (MTS), používal oba procesory. Oba procesory mohly přistupovat k datovým kanálům a iniciovat I/O. V OS/360 M65MP bylo možné periferie obecně připojit k jakémukoli procesoru, protože jádro operačního systému běželo na obou procesorech (i když s „velkým zámkem“ kolem obsluhy I/O). MTS supervisor (UMMPS) má schopnost běžet na obou CPU systému IBM System/360 model 67–2. Supervizorské zámky byly malé a sloužily k ochraně jednotlivých běžných datových struktur, ke kterým bylo možné přistupovat současně z obou CPU.

Mezi další mainframy, které podporovaly SMP, patřil UNIVAC 1108 II , vydaný v roce 1965, který podporoval až tři CPU, a GE-635 a GE-645 , ačkoli GECOS na multiprocesorových systémech GE-635 běžel asymetrickým způsobem master-slave, na rozdíl od Multics na víceprocesorových systémech GE-645, které běžely symetricky.

Počínaje verzí 7.0 (1972) implementoval operační systém TOPS-10 společnosti Digital Equipment Corporation funkci SMP, nejčasnějším systémem se systémem SMP byl procesorový systém DECSystem 1077 dual KI10. Později mohl systém KL10 agregovat až 8 CPU způsobem SMP. Naproti tomu první víceprocesorový systém VAX DEC , VAX-11/782, byl asymetrický, ale později byly víceprocesorové systémy VAX SMP.

Rané komerční implementace Unix SMP zahrnovaly Sequent Computer Systems Balance 8000 (vydáno v roce 1984) a Balance 21000 (vydáno v roce 1986). Oba modely byly založeny na 10 MHz procesorech National Semiconductor NS32032 , každý s malou mezipamětí pro zápis propojenou se společnou pamětí pro vytvoření systému sdílené paměti . Další ranou komerční implementací Unix SMP byla společnost Honeywell Information Systems Italy XPS-100 založená na NUMA, kterou navrhl Dan Gielan z VAST Corporation v roce 1985. Jeho design podporoval až 14 procesorů, ale kvůli elektrickým omezením byla největší prodávanou verzí systém se dvěma procesory. . Operační systém byl odvozen a přenesen společností VAST Corporation z kódu AT&T 3B20 Unix SysVr3 používaného interně v rámci AT&T.

Dříve existovaly nekomerční multiprocesní porty UNIX, včetně portu s názvem MUNIX vytvořeného na Naval Postgraduate School do roku 1975.

Využití

Systémy sdílení času a serverové systémy mohou často používat SMP beze změn aplikací, protože mohou mít spuštěny více procesů souběžně a systém s více než jedním spuštěným procesem může spouštět různé procesy na různých procesorech.

Na osobních počítačích je SMP méně užitečný pro aplikace, které nebyly upraveny. Pokud systém zřídka spouští více než jeden proces najednou, SMP je užitečné pouze pro aplikace, které byly upraveny pro zpracování s více vlákny (více úloh). Software naprogramovaný na míru lze napsat nebo upravit tak, aby používal více vláken, takže může využívat více procesorů.

Vícevláknové programy lze také použít v systémech pro sdílení času a serverů, které podporují vícevláknové zpracování, což jim umožňuje více využívat více procesorů.

Výhody nevýhody

V současných systémech SMP jsou všechny procesory pevně spojeny uvnitř stejné skříně se sběrnicí nebo přepínačem; na dřívějších systémech SMP jeden CPU zabral celou skříň. Některé ze sdílených součástí jsou globální paměť, disky a I/O zařízení. Na všech procesorech běží pouze jedna kopie operačního systému a OS musí být navržen tak, aby využíval výhod této architektury. Některé ze základních výhod zahrnují nákladově efektivní způsoby, jak zvýšit propustnost. Aby SMP vyřešil různé problémy a úkoly, aplikuje na jeden problém více procesorů, známých jako paralelní programování .

Existuje však několik omezení škálovatelnosti SMP kvůli soudržnosti mezipaměti a sdíleným objektům.

Programování

Systémy Uniprocessor a SMP vyžadují k dosažení maximálního výkonu různé metody programování. Programy běžící na systémech SMP mohou zaznamenat zvýšení výkonu, i když byly napsány pro systémy s jedním procesorem. Důvodem je, že přerušení hardwaru obvykle pozastaví provádění programu, zatímco jádro, které je zpracovává, může místo toho spustit na nečinném procesoru. Efektem ve většině aplikací (např. Her) není ani tak zvýšení výkonu, jako spíše zdání, že program běží mnohem plynuleji. Některé aplikace, zejména stavební software a některé projekty distribuovaných počítačů , běží rychleji díky faktoru (téměř) počtu dalších procesorů. (Kompilátory samy o sobě jsou jednovláknové, ale při vytváření softwarového projektu s více kompilačními jednotkami, pokud je každá kompilační jednotka zpracovávána samostatně, to vytváří trapně paralelní situaci v celém projektu multi-kompilační jednotky, což umožňuje téměř lineární škálování kompilace distribuované výpočetní projekty jsou ze své podstaty paralelní.)

Programátoři systémů musí zabudovat podporu pro SMP do operačního systému , jinak zůstanou další procesory nečinné a systém funguje jako uniprocesorový systém.

Systémy SMP mohou také vést ke složitosti instrukčních sad. Homogenní procesorový systém obvykle vyžaduje zvláštní registry pro „speciální instrukce“, jako je SIMD (MMX, SSE atd.), Zatímco heterogenní systém může implementovat různé typy hardwaru pro různé instrukce/použití.

Výkon

Když se spustí více než jeden program současně, systém SMP má podstatně lepší výkon než uniprocesor, protože různé programy mohou běžet na různých CPU současně. Naopak asymetrický multiprocesing (AMP) obvykle umožňuje spuštění programu nebo úkolu současně pouze jednomu procesoru. AMP lze například použít k přiřazování konkrétních úkolů CPU podle priority a důležitosti dokončení úkolu. AMP byl vytvořen mnohem dříve než SMP, pokud jde o zpracování více CPU, což vysvětluje nedostatek výkonu na základě uvedeného příkladu.

V případech, kdy prostředí SMP zpracovává mnoho úloh, dochází u správců často ke ztrátě účinnosti hardwaru. Softwarové programy byly vyvinuty pro plánování úloh a dalších funkcí počítače tak, aby využití procesoru dosáhlo svého maximálního potenciálu. Dobré softwarové balíčky mohou dosáhnout tohoto maximálního potenciálu naplánováním každého CPU samostatně a také schopností integrovat více strojů a klastrů SMP.

Přístup k RAM je serializován; toto a problémy s koherencí mezipaměti způsobují, že výkon mírně zaostává za počtem dalších procesorů v systému.

Alternativy

Schéma typického systému SMP. Tři procesory jsou připojeny ke stejnému paměťovému modulu pomocí systémové sběrnice nebo příčného přepínače

SMP používá jedinou sdílenou systémovou sběrnici, která představuje jeden z prvních stylů architektur víceprocesorových strojů, typicky používaných pro stavbu menších počítačů s až 8 procesory.

Větší počítačové systémy mohou používat novější architektury, jako je NUMA (Non-Uniform Memory Access), která věnuje různé paměťové banky různým procesorům. V architektuře NUMA mohou procesory přistupovat k místní paměti rychleji a ke vzdálené paměti pomaleji. To může dramaticky zlepšit propustnost paměti, pokud jsou data lokalizována do konkrétních procesů (a tedy procesorů). Nevýhodou je, že NUMA prodražuje náklady na přesun dat z jednoho procesoru do druhého, jako při vyrovnávání pracovní zátěže. Výhody NUMA jsou omezeny na konkrétní pracovní zátěž, zejména na serverech, kde jsou data často silně spojena s určitými úkoly nebo uživateli.

Nakonec existuje počítačově seskupený multiprocesing (například Beowulf ), ve kterém není všechna paměť dostupná pro všechny procesory. Shlukovací techniky se poměrně často používají k výrobě velmi velkých superpočítačů.

Variabilní SMP

Variabilní symetrické vícenásobné zpracování (vSMP) je specifická technologie pro mobilní použití iniciovaná společností NVIDIA. Tato technologie obsahuje další páté jádro ve čtyřjádrovém zařízení, nazývaném Companion core, postavené speciálně pro provádění úkolů na nižší frekvenci během mobilního aktivního pohotovostního režimu, přehrávání videa a přehrávání hudby.

Projekt Kal-El ( Tegra 3 ), patentovaný společností NVIDIA, byl prvním SoC (System on Chip), který implementoval tuto novou technologii vSMP. Tato technologie nejen snižuje spotřebu energie mobilního telefonu v aktivním pohotovostním stavu, ale také maximalizuje výkon čtyř jádra během aktivního používání pro intenzivní mobilní aplikace. Celkově tato technologie řeší potřebu prodloužení životnosti baterie během aktivního a pohotovostního používání snížením spotřeby energie v mobilních procesorech.

Na rozdíl od současných architektur SMP je jádro vSMP Companion transparentní pro operační systém, což znamená, že operační systém a spuštěné aplikace toto extra jádro vůbec neznají, ale stále jej mohou využívat. Některé z výhod architektury vSMP zahrnují soudržnost mezipaměti, účinnost operačního systému a optimalizaci napájení. Výhody pro tuto architekturu jsou vysvětleny níže:

  • Soudržnost mezipaměti: Synchronizace mezipaměti mezi jádry běžícími na různých frekvencích nemá žádné důsledky, protože vSMP neumožňuje současné spuštění jádra Companion a hlavních jader.
  • Efektivita OS: Je neefektivní, když je spuštěno více jader CPU na různých asynchronních frekvencích, protože by to mohlo vést k možným problémům s plánováním. S vSMP poběží aktivní jádra CPU na podobných frekvencích, aby se optimalizovalo plánování operačního systému.
  • Optimalizace výkonu: V architektuře založené na asynchronním taktování je každé jádro na jiné výkonové rovině, aby zvládlo úpravy napětí pro různé pracovní frekvence. Výsledek by mohl ovlivnit výkon. Technologie vSMP je schopna dynamicky aktivovat a deaktivovat některá jádra pro aktivní a pohotovostní použití, čímž se snižuje celková spotřeba energie.

Tyto výhody vedou k tomu, že architektura vSMP má značný prospěch oproti jiným architekturám využívajícím asynchronní taktovací technologie.

Viz také

Reference

externí odkazy