6. Další cesty k výkonnému počítání


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řenosubandwidth ) 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
 přenosu
MB/sec

Rychlost
výpočtu
Mflop/sec

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)