Paralelní počítání

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é 5. října 2014; kontroly vyžadují 12 úprav .

Paralelní výpočetní technika  je způsob organizace výpočetní techniky , ve kterém jsou programy vyvíjeny jako soubor vzájemně se ovlivňujících výpočetních procesů, které pracují paralelně (současně). Termín zahrnuje všechny otázky paralelismu v programování , stejně jako vytváření efektivních hardwarových implementací . Teorie paralelních počítání je částí aplikované teorie algoritmů [1] .

Existují různé způsoby, jak implementovat paralelní výpočty. Každý výpočetní proces může být například implementován jako proces operačního systému nebo výpočetní procesy mohou být sadou prováděcích vláken v rámci jednoho procesu operačního systému. Paralelní programy mohou být fyzicky prováděny buď sekvenčně na jediném procesoru  – střídání kroků provádění každého výpočetního procesu, nebo paralelně – přidělováním jednoho nebo více procesorů (umístěných poblíž nebo distribuovaných v počítačové síti ) každému výpočetnímu procesu.

Hlavním problémem při navrhování paralelních programů je zajistit správnou sekvenci interakcí mezi různými výpočetními procesy a také koordinaci zdrojů sdílených mezi procesy.

Způsoby synchronizace paralelní komunikace

V některých souběžných programovacích systémech je předávání dat mezi komponentami před programátorem skryto (například pomocí mechanismu slibu ), zatímco v jiných musí být výslovně specifikováno. Explicitní interakce lze rozdělit do dvou typů:

Paralelní systémy založené na zasílání zpráv jsou často srozumitelnější než systémy se sdílenou pamětí a jsou obecně považovány za vynikající metodu paralelního programování. Existuje široká škála matematických teorií pro studium a analýzu systémů předávání zpráv, včetně modelu aktéra a různých druhů procesního počtu . Zasílání zpráv lze efektivně implementovat na symetrických multiprocesorech jak se sdílenou koherentní pamětí, tak bez ní.

Paralelismus distribuované paměti a paralelismus předávání zpráv mají různé výkonnostní charakteristiky. Obvykle (ale ne vždy) je režie paměti procesu a doba přepínání úloh nižší u systémů s předáváním zpráv, ale samotné předávání zprávy je více režie než volání procedur. Tyto rozdíly jsou často potlačeny jinými faktory, které ovlivňují výkon.

V takovém systému je samozřejmě také možné použít výhradně metodu předávání zpráv, tedy spustit samostatný proces na každém procesoru každého uzlu. V tomto případě se počet procesů (a vláken) bude rovnat počtu procesorů na všech uzlech. Tato metoda je jednodušší (v paralelním programu stačí zvýšit počet procesů), ale je méně efektivní, protože procesory stejného uzlu si budou vyměňovat zprávy, jako by byly na různých strojích [5] .

Typické úlohy, které umožňují paralelní výpočty

Concurrency Software Tools

Viz také

Poznámky

  1. Michalevič, 1989 , s. jeden.
  2. RedBook, 1999 , str. jeden.
  3. RedBook, 1999 , str. 2.
  4. RedBook, 1999 , str. 5.
  5. RedBook, 1999 , str. čtyři.

Literatura

Odkazy