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

Skočit na navigaci Skočit na vyhledávání
Přidáno 3 909 bajtů ,  před 10 lety
Založení článku (přesun části z Paralelní výpočty)
(Stránka Paralelní programování přemístěna na stránku Paralelní výpočty: Název dle IW a části obsahu)
 
(Založení článku (přesun části z Paralelní výpočty))
'''Paralelní programování''' je v [[Informatika|informatice]] označení konceptu, který umožňuje [[Programování|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á platforma|počítačových platformách]]. Implementace paralelního programování může být v podobě [[Knihovna (informatika)|knihoven]] pro tradiční sekvenční [[Programovací jazyk|programovací jazyky]], ve formě rozšíření stávajícího programovacího jazyka nebo úplně nový přístup (programovací jazyk).
#PŘESMĚRUJ [[Paralelní výpočty]]
 
== Rozdíl sekvenčního a paralelního programování ==
Standardní struktura počítačového [[Software|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 [[Strojová instrukce|instrukcí]]. Tyto [[Strojová instrukce|instrukce]] jsou prováděny pomocí [[procesor|CPU]] jednoho počítače. Z toho plyne, že současně může být vykonávána pouze jedna [[Strojová instrukce|instrukce]]. Teprve po vykonání této [[Strojová instrukce|instrukce]] následuje vykonávání další [[Strojová instrukce|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ě [[pseudoparalelismus|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íceprocesorový systém|více procesory]], několik počítačů [[Počítačová síť|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 [[počítač]]ů. V případě volně vázaných počítačů je nutné použít jako [[synchronizační primitivum]] [[fronta (programování)|frontu zpráv]], v případě těsně vázaných počítačů systém často podporuje [[atomicita|atomické]] operace na [[sdílená paměť|sdílené paměti]] a je možné na nich implementovat [[semafor (synchronizace)|semafory]].
 
Špatné použití synchronizačních primitiv může vést k [[deadlock]]ům, což jsou [[programátorská chyba|programátorské chyby]].
 
V paralelním programování často nelze spoléhat na fyzické [[hodiny]] – je nutné použít distribuované počítání času, aby bylo možné seřadit přijaté zprávy.
 
== Software ==
Paralelní [[programovací jazyky]], [[Knihovna (programování)|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 [[Operační paměť|paměti]]: [[sdílená paměť|sdílenou paměť]], [[distribuovaná paměť]] nebo sdílená distribuovaná paměť. [[Program]]y využívající [[sdílená paměť|sdílenou paměť]] komunikují pomocí manipulace s [[proměnná|proměnnými]] ve [[sdílená paměť|sdílené paměti]]. [[Program]]y využívající distribuovanou paměť používají [[metoda|metodu]] [[předávání zpráv]] ([[Vlákno (program)|POSIX vlákna]], [[OpenMP]]).
 
== Související články ==
#PŘESMĚRUJ* [[Paralelní výpočty]]
* [[Meziprocesová komunikace]] – hraje v paralelním programování velkou roli
* [[Symmetric multiprocessing]] (SMP)
* [[Non-Uniform Memory Access]] (NUMA)
* [[Paralelismus]]
 
[[de:Parallele Programmierung]]
[[en:Parallel programming model]]
[[lt:Lygiagretusis programavimas]]
[[no:Parallellprogrammering]]
[[pt:Modelo de programação paralela]]
[[ru:Распараллеливание программ]]

Navigační menu