Víceprocesorový

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 29. dubna 2016; kontroly vyžadují 16 úprav .

Multiprocesor (z anglického  multiprocessor, multiprocessing [1] ) je podtřída víceprocesorových počítačových systémů, kde existuje několik procesorů a jeden adresní prostor , viditelný pro všechny procesory. V Flynnově taxonomii patří multiprocesory do třídy strojů SM-MIMD . Na multiprocesoru běží jedna kopie operačního systému s jednou sadou tabulek, včetně těch, které sledují, které stránky paměti jsou volné.

Klasifikace

Podle rolí, které procesory hrají ve víceprocesorovém systému, rozlišují: symetrické multiprocesory (SMP) - všechny procesory hrají stejnou roli a mají stejný přístup k paměti a periferiím a asymetrické multiprocesory (AMP) - procesory hrají různé role popř . přistupovat k periferiím odlišně.zařízení. Technologie AMP byla pouze přechodná v 60. letech, dokud nebyla vyvinuta technologie SMP.

Existuje několik typů multiprocesorů podle způsobu adresování paměti, včetně: UMA (Uniform Memory Access), NUMA (Non Uniform Memory Access) a COMA (Cache Only Memory Access).

Kromě toho mohou být multiprocesory homogenního typu, kdy jsou všechny procesory v systému stejné, nebo heterogenního typu, kdy jsou procesory v systému různých typů.

Programování

Při programování multiprocesorů lze použít dva programovací modely : multithreading , kdy je na každém procesoru spuštěno vlákno provádění a vyměňují si data mezi sebou prostřednictvím sdílených proměnných ve sdílené paměti, nebo (složitější) předávání zpráv , kdy je na každém procesoru je spuštěn proces a komunikují spolu výměnou zpráv. Multithreading se používá buď explicitně (v kompilovaných programovacích jazycích prostřednictvím systémových API (např. v C / C++ přes POSIX Threads a prostřednictvím boost::thread nebo std::thread v C++ od standardu C++11), v interpretovaných jazycích ​​( Java a C# ) pomocí jazykových konstrukcí, a to buď implicitně ( deklarativně pomocí direktiv kompilátoru ( OpenMP ) nebo automaticky samotným kompilátorem ( High Performance Fortran )).

Historie

Víceprocesorové stroje (SMP/UMA) byly uvedeny na trh počátkem osmdesátých a devadesátých let, zpočátku jako mini-superpočítače ( například produkty od Alliant , Convex , Sequent , Encore a Synapse ) . ) , poté jako zpracování dat. servery a rychle získal popularitu na trhu serverového hardwaru . První multiprocesory s architekturou x86 založenou na procesorech Intel 80386 a Intel 486 byly servery Compaq SystemPro, které vstoupily na trh koncem roku 1989 - začátkem roku 1990. Růst nabídek na trhu x86 multiprocesorových serverů vedl Intel k vytvoření specifikace MultiProcessor Specification [2] , která se na mnoho let stala de facto standardem pro x86 SMP stroje .

Příklady systémů SMP/UMA v roce 1998 [3]
Systém procesor Maximum procesorů
SGI Power Challenge MIPS R10000 36
DEC AlphaServer 8400 Alfa 21164 čtrnáct
Sun E6000 UltraSPARC II třicet
Slunce E10000 UltraSPARC II 64
HP/konvexní příklad PA-8000 16
Cray-T90 Cray vektor 32

Prvními multiprocesory typu ccNUMA byly v polovině 80. let počítač KSR1 společnosti Kendall Square Research a Denelcor HEP společnosti Denelcor .

Příklady systémů ccNUMA v roce 1998 [4]
Systém procesor Procesory na uzel Maximum procesorů
Data General AV-20000 Pentium čtyři 32
Následný NUMA-Q 2000 Pentium čtyři 32
SGI Origin 2000 MIPS R10000 2 128
HP Exemplar X-Class PA-8000 16 256
HP 9000 V-Class

Byly také vytvořeny multiprocesory bez koherence mezipaměti (nccNUMA):

Příklady systémů nccNUMA v roce 1998 [5]
Systém procesor Procesory na uzel Maximum procesorů
Cray-T3E Alfa 21164 2 2048
BBN TC-2000 Motorola MC88100 jeden 256
BBN TC-2000 Motorola 604 2 512

Rozvoj miniaturizace ve výpočetní elektronice umožnil umístit několik procesorů do jednoho pouzdra nebo na jeden čip (anglicky chip-level multiprocessing, CMP), čímž vznikly vícejádrové procesory . To umožnilo zvýšit výkon procesorů prostým zvýšením počtu výpočetních jader jednoduché konstrukce, namísto tradičních pokusů zvýšit takt nebo komplikovat výpočetní pipeline jednojádrového procesoru. Vícejádrové procesory přitom využívají paměť efektivněji, pracují s vícevláknovými aplikacemi, spotřebovávají málo energie a nerozptylují mnoho energie, což je ideální pro škálování datových center.

Přibližně od roku 2005 jsou všechny procesory pro trh spotřebitelských počítačů vydávány ve vícejádrové verzi , to znamená, že jde v podstatě o miniaturní multiprocesory (přesněji o SMP stroje s přístupem do paměti UMA, s určitými výhradami). Další vývoj tohoto směru vedl ke vzniku vícejádrových multiprocesorů - systémů, kde je několik procesorů a tyto procesory zase obsahují několik jader. Nejrozšířenější verzí serverů v datových centrech pro rok 2016 je server se dvěma 8jádrovými procesory třídy Intel Xeon , Oracle SPARC nebo IBM POWER , které navíc podporují současné spouštění více vláken v hardwaru .

Viz také

Literatura

Poznámky

  1. "1930–35; multi- + proces + -ing 1 " - Dictionary.com Unabridged: " multiprocessor Archived 26. prosince 2015 na Wayback Machine "
  2. Specifikace více procesorů . Získáno 17. října 2013. Archivováno z originálu 9. ledna 2017.
  3. Severance_Dowd, 1998 , str. 260.
  4. Severance_Dowd, 1998 , str. 263.
  5. Severance_Dowd, 1998 , str. 264.

Odkazy