Značná naděje se již po léta vkládá do masivně-paralelních počítačů, což jsou počítače o velkém počtu běžných standardních procesorů s distribuovanou pamětí, i když tato architektura s sebou přináší závažné problémy. Kapacita (šířka) přenosu ( bandwidth ) mezi procesorem a pamětí v této architektuře roste lineárně s počtem procesorů, zatímco v paralelních počítačích se sdílenou pamětí je při zvýšení počtu procesorů tato kapacita pevná, a tedy klesá rychlost přenosu vztažená k jednomu procesoru (má-li být zachován výkon, je třeba instalovat novou paměť s rychlejším přenosem). Tato přednost paralelních počítačů s distribuovanou pamětí se v angličtině nazývá scalability .
Distribuovaná paměť se na druhé straně ve srovnání se sdílenou pamětí vyznačuje pomalejší komunikací mezi jednotlivými procesory. Pomalý je také přístup k datům, která jsou v paměti jiného procesoru.
Uvědomme si, že tyto úvahy mají smysl jen tehdy, když se pro řešení jedné úlohy používá celý paralelní počítač nebo alespoň několik procesorů; jestliže na každém jednotlivém procesoru běží jiná úloha, nejde ve skutečnosti o paralelní aplikace (a v takovém případě je vhodnější použít samostatné počítače nebo paralelní počítač s distribuovanou pamětí, protože je levnější než paměť sdílená).
Zásadním – a dosud jednoznačně nevyřešeným – problémem paralelních počítačů s distribuovanou pamětí je vazba mezi jednotlivými procesory. Realizuje se pomocí různých – a různě drahých – struktur. O významu rychlosti přenosu dat mezi procesory pro efektivní výkon počítačů s touto architekturou svědčí tabulka 4, kde jsou vedle sebe uvedeny přenosová rychlost mezi procesory a rychlost použitých procesorů. Každá operace v pohyblivé čárce zpracovává 20-40 bytů, takže zpracování dat z nelokální paměti významně sníží výkon počítače.
Systém |
Rychlost |
Rychlost |
IBM SP2 |
40.0 |
267 |
Intel iPSC860 |
2.8 |
60 |
Intel Paragon |
200.0 |
75 |
KSR-1 |
17.1 |
40 |
Meiko CS-2 |
100.0 |
200 |
Parsytec GC |
20.0 |
25 |
TMC CM-5 |
20.0 |
128 |
Cray T3D |
150.0 |
300 |
Tabulka 4
Nevyváženost paralelních počítačů
Efektivní výkon paralelních počítačů je také velmi závislý na tom, jak je zatížení jednotlivých procesorů vyvážené. To je možno ovlivnit jen na úrovni programu. A právě programování masivně paralelních počítačů je značně složitější než v případě počítačů s jedním procesorem nebo počítačů vektorových, protože kompilátory pomohou s paralelizací jen minimálně a proto programátor musí provést nejprve detailní analýzu algoritmu a pak jeho rozdělení mezi procesory “vynutit” pomocí speciálních direktiv (programovací systémy PVM nebo MPI aj.). Jestliže se programování pro tyto počítače nevěnuje taková veliká péče, je efektivnost zpracování obvykle asi 10krát nižší než instalovaný výkon. Byly však již vymyšleny i obecné metody, pomocí nichž lze programovat rovnoměrné zatížení (např. rozklad oblasti, který se využívá v programech pro konečné diference a konečné prvky).
© J. Nadrchal (28.4.2000) | ![]() ![]() |