Paralelní programování: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
m +kat
Řádek 18: Řádek 18:
* [[Non-Uniform Memory Access]] (NUMA)
* [[Non-Uniform Memory Access]] (NUMA)
* [[Paralelismus]]
* [[Paralelismus]]

[[Kategorie:Paradigmata programování]]
[[Kategorie:Paralelní programování]]


[[de:Parallele Programmierung]]
[[de:Parallele Programmierung]]

Verze z 26. 4. 2011, 17:32

Paralelní programování je v informatice označení konceptu, který umožňuje naprogramovat úlohy, které jsou schopny paralelního (současného) běhu. Paralelní programování je hodnoceno podle toho, jak dobře dokáže různé problémy popsat a jakého výkonu je možné dosáhnout na různých počítačových platformách. Implementace paralelního programování může být v podobě knihoven pro tradiční sekvenční programovací jazyky, ve formě rozšíření stávajícího programovacího jazyka nebo úplně nový přístup (programovací jazyk).

Rozdíl sekvenčního a paralelního programování

Standardní struktura počítačového softwaru je založena na sekvenčním výpočtu. Při řešení problému, je algoritmus určený k řešení tohoto problému realizován jako série za sebou následujících instrukcí. Tyto instrukce jsou prováděny pomocí CPU jednoho počítače. Z toho plyne, že současně může být vykonávána pouze jedna instrukce. Teprve po vykonání této instrukce následuje vykonávání další instrukce.

Paralelně programovaný software využívá možnost rozdělení jednoho velkého výpočetního problému na několik menších problémů, které jsou řešeny „současně“ (resp. na základě pseudoparalelismu). Prvky sloužící k paralelnímu zpracování výpočtu mohou být různé. Jedná se například o jeden počítač s více procesory, několik počítačů v síti, specializovaný hardware nebo kombinaci těchto prvků.

Problémy paralelního programování

V prostředí paralelního programování je zvláště důležitá synchronizace jednotlivých výpočtů. V případě volně vázaných počítačů je nutné použít jako synchronizační primitivum zasílání zpráv. V případě těsně vázaných počítačů systém často podporuje atomické operace na sdílené paměti a je možné na nich implementovat semafory. Špatné použití synchronizačních primitiv může vést k deadlockům, což jsou programátorské chyby.

Software

Paralelní programovací jazyky, knihovny a API byly vytvořeny pro programování paralelních počítačů. Tyto počítače mohou být rozděleny do několika kategorií, na základě toho jaký používají typ paměti: sdílenou paměť, distribuovaná paměť nebo sdílená distribuovaná paměť. Programy využívající sdílenou paměť komunikují pomocí manipulace s proměnnými ve sdílené paměti. Programy využívající distribuovanou paměť používají metodu zasílání zpráv (POSIX vlákna, OpenMP).

Související články