Asymetrický multiprocesing

Asymetrický multiprocesing je metoda používaná u počítačových systémů, kde výpočetní prvky (jádra procesoru) mají různé vlastnosti. Jádra mohou mít odlišný hodinový takt (frekvence) na kterém běží nebo dokonce zcela odlišné architektury (64bitové jádro s 32bitovým jádrem ve stejném procesoru).[1]

SMP vs AMP

Ne se všemi propojenými procesorovými jádry se zachází stejně. Termín asymetrie odkazuje na oddělení hardwarových prostředků. V tomto případě na oddělení jádro od jádra, tak aby každé jádro mělo přístup a mohlo vykonávat jiné úlohy.[2]

Procesory mezi sebou mají vztah typu master – slave. Hlavní definující vlastností asymetrického multiprocesingu je, že má jeden primární procesor (CPU) a k němu je jako periferní zařízení připojen jeden nebo více podřízených procesorů. To znamená, že hlavní procesor řídí datovou strukturu, plánuje a přerozděluje procesy, zpracovává vstupy/výstupy a provádí všechny úkoly operačního systému. Podřízené procesory můžou řídit pouze uživatelské aplikace. Pokud by došlo k selhání hlavního procesoru, jeden z podřízených procesorů by se stal hlavním procesorem. Při selhání podřízeného procesoru jeho úlohu převezme jiný podřízený procesor.[3]

Na rozdíl od symetrického multiprocesingu, který obvykle zpracovává jeden proces nebo úlohu na více jádrech souběžně, asymetrický multiprocesing přiřadí každému jádru jeden proces nebo úlohu.[4]

Historie a současnostEditovat

HistorieEditovat

Asymetrický multiprocesing sahá až do roku 1970, kdy společnosti MIT (Massachusetts Institute of Technology) a DEC (Digital Equipment Corporation) společně vyvinuli procesor PDP-6 / KA10.[5]

V roce 1972 společnost DEC vyvinula ze dřívějšího softwaru „Monitor“, který byl určený pro počítače PDP-6 a PDP-10, operační systém TOPS-10. Ten umožňoval počítačům PDP-10 využívat asymetrický multiprocesing.[5]

Společnost DEC pokračovala ve výzkumu asymetrického multiprocesingu a v roce 1981 začala vyrábět víceprocesorové asymetrické modely VAX 11, konkrétně model VAX 11/782 se dvěma procesory a VAX 11/784 se čtyřmi procesory.[5]

Po roce 1981 se výzkum asymetrického multiprocesingu zpomaloval a později úplně skončil. Postupně ho nahradil symetrický multiprocesing, který byl využíván velkými společnostmi jako Intel. Z velké části to bylo způsobeno proto, že asymetrický multiprocesing byl spletitý ve svém designu a byl optimalizován pro velmi specifické

aplikace.[4]

SoučasnostEditovat

V současné době neexistují žádné počítače ke komerčnímu použití, které používají asymetrický multiprocesing. Ovšem současné počítače jsou schopné asymetricky rozdělit úlohy. To znamená, že symetrický procesor může být použit k provádění asymetrických výpočtů. Přesto, že všechna jádra jsou stejná a mohou provádět veškeré úlohy, programátor se může rozhodnout použít jeden procesor jako hlavní (master) a ostatním přiřadit pouze určité úlohy a tím z nich udělat pomocné (slave) procesory.[4]

ImplementaceEditovat

Implementace z pohledu hardwaru:Editovat
  • Všechna jádra jsou stejná, ale některá běží na nižší frekvenci. Tato metoda je vhodná pro systémy, které potřebují jádro s vysokým výpočetním výkonem, ale také potřebují vykonávat méně náročné funkce na které je dostačující jádro s nižší frekvencí.
  • Jádra mají odlišnou architekturu (64bitová nebo 32bitová jádra). Tato metoda je vhodná ke snížení spotřeby energie a splnění požadavků v reálném čase.[1]
Implementace z pohledu softwaru:Editovat
  • Všechna jádra jsou stejná, ale některá používají jiný operační systém. Jedna skupina jader vykonává úlohy, které nemají požadavky v reálném čase a další skupina jader je určena k vykonávání úloh, které mají požadavky v reálném čase.[1]
Související s instrukční sadou:Editovat
  • Různá jádra mají stejnou instrukční sadu, takže stejný software může být spuštěn na jakémkoliv jádru. V tomto případě může stejný software běžet podle potřeby buď na jádru s vysokým výpočetním výkonem nebo na jádru se sníženou spotřebou energie.
  • Jádra mají odlišné instrukční sady, proto každé jádro používá jemu určený software (software musí být vytvořený pro instrukční sadu konkrétního jádra). Tato metoda je vhodná, pokud je pro konkrétní aplikaci potřebný specifický hardware (např. GPU pro zpracování videa).[1]

CharakteristikaEditovat

Asymetrický multiprocesing lze charakterizovat v několika bodech[3]:

  • Hlavní procesor přiřazuje procesy podřízeným procesorům
  • Úkoly operačního systému vykonává pouze hlavní procesor
  • Procesory si nejsou rovnocenné
  • Mezi podřízenými procesory neprobíhá žádná komunikace, protože jsou řízený hlavním procesorem
  • Snadnější vytváření asymetrických systémů, protože k datové struktuře má přístup pouze hlavní procesor

Výhody a nevýhodyEditovat

VýhodyEditovat
  • Přesunutí starších aplikací ze systémů s jedním procesorem na systémy s asymetrickým multiprocesingem je poměrně jednoduché, protože je jasně dané, jak se v asymetrickém multiprocesingu používají jádra.
  • Systémy s asymetrickým multiprocesingem mají podobné prostředí jako jednoprocesorové systémy, které jsou známé většině vývojářům, kteří tím pádem mohou pracovat s jednoduššími nástroji a technikami.[6]
NevýhodyEditovat
  • Asymetrický multiprocesing je obtížné využívat u více než dvoujádrových procesorů, to je zásadní problém, protože dnešní procesory mají 8, 16, nebo dokonce i více jader.
  • Přidělování procesoru a fyzické paměti je statické. To znamená, že operační systém bude proces vždycky spouštět na stejném jádru, i když jsou ostatní jádra nevyužitá, takže se může stát, že jedno jádro bude přetěžováno.
  • Neposkytuje žádný mechanismu ke sladění celého systému, procesy v jádru musí být laděny izolovaně přesto, že na nich mohou záviset jiné procesy, které zpracovávají ostatní jádra.[6]

ReferenceEditovat

  1. a b c d MARTOS, Pedro Ignacio. Architectural patterns for asymmetric multiprocessing devices on embedded systems. In: Proceedings of the 11th Latin-American Conference on Pattern Languages of Programming. Buenos Aires, Argentina: The Hillside Group, 2016-11-16. Dostupné online. DOI:10.5555/3124362.3124377. S. 1–13.
  2. SCHNARZ, P.; FISCHER, C.; WIETZKE, J. Secure Separation of Shared Caches in AMP-Based Mixed Criticality Systems. SAIEE Africa Research Journal. 2015-06, roč. 106, čís. 2, s. 93–104. Dostupné online [cit. 2021-01-02]. ISSN 1991-1696. DOI:10.23919/SAIEE.2015.8531890. 
  3. a b SINGH, Shubham. GeeksforGeeks:Difference between Asymmetric and Symmetric Multiprocessing [online]. 2019-09-04, rev. 2020-11-25 [cit. 2021-01-02]. Dostupné online. 
  4. a b c Asymmetric multiprocessing. Academic Dictionaries and Encyclopedias [online]. [cit. 2021-01-03]. Dostupné online. (anglicky) 
  5. a b c WILSON, Gregory V. The History of the Development of Parallel Computing. ei.cs.vt.edu [online]. [cit. 2021-01-03]. Dostupné online. 
  6. a b NAGARAJAN, Shiv; VULPE, Nicola. Processor Affinity or Bound Multiprocessing?. QNX Software Systems [online]. 2009. Dostupné online.