Fyzikální zákony jsou neúprosné a platí i pro konstruktéry počítačů: elektrony se nemohou přemisťovat rychlostí vyšší než je rychlost světla a tak jsou jen dvě možnosti, jak pochody v počítačích urychlit: buďto zkrátit vzdálenosti mezi prvky nebo činnost rozdělit na úseky, které mohou probíhat současně.
Zkracování vzdáleností znamená miniaturizaci počítačů, ta má však také své meze, protože je náročná na technologii výroby. Naopak paralelizace nabízí na prvý pohled neomezené možnosti. Ale jen zdánlivě, protože rozsekání výpočetních nebo jakýchkoli jiných procesů probíhajících v počítačích je jak pro lidský mozek tak pro automatizovaný algoritmus zabudovaný do počítače tvrdý oříšek. Obecně se obě cesty podílejí na zvyšování výkonu počítačů asi stejně významně. (Připomeňme si empirický poznatek, že se rychlost počítačů v posledních letech zdvojnásobí přibližně každých 18 měsíců.) Pro superpočítače je však paralelizace hlavním zdrojem jejich vysokého výkonu, ale také omezením jejich univerzálnosti: pokud se pro výpočet, který se na superpočítači má provádět, nepodaří zabezpečit využití paralelních struktur v superpočítači, bude probíhat pomalu - a někdy i pomaleji než na standardním počítači. Z tohoto hlediska byly superpočítače vždy speciálními výpočetními prostředky, které byly vhodné jen pro adekvátní úlohy.
Když se hovoří o superpočítači nebo obecněji o výkonném či rychlém počítači, myslí se většinou na rychlý procesor a tedy na paralelizaci vlastních výpočetních úkonů. Ve skutečnosti vůbec nestačí do počítače dát rychlý procesor, jestliže jsou ostatní části pomalé - nejvýznamnější z nich je paměť: její vybavovací doba a rychlost přenosu mezi hlavní pamětí a procesorem. Seymour Cray kladl na rychlou paměť ještě větší důraz než na rychlý procesor: říkal, že superpočítač znamená rychlou paměť a “nějaký” procesor; však také navrhoval počítače, které byly obvykle vybaveny tou nejrychlejší možnou pamětí, nicméně také výkonným procesorem. Zrychlení přenosu mezi pamětí a procesorem je ovšem založeno také na principu paralelity.
U procesorů se může princip paralelity realizovat v zásadě dvěma způsoby:
Klasickým superpočítačem je vektorový počítač, jehož procesor může zpracovávat současně všechny složky vektoru a to až do určité délky (např. vektoru o 64 nebo 128 složkách). V mnohých technických a vědeckých výpočtech je zpracování vektorů velice časté; odhaduje se, že asi 70 % všech algoritmů má buďto přímo vektorový charakter nebo se na něj před numerickou realizací převede. Uvědomme si, že lineární jevy se popisují soustavou lineárních algebraických rovnic nebo soustavou lineárních diferenciálních rovnic, které se pro numerické řešení převádějí na algebraické rovnice. Nebo že velká většina technických výpočtů je založena na metodě konečných prvků, která také vede k řešení lineárních algebraických rovnic. Není proto divu, že vektorové počítače nacházely a dodnes nacházejí uplatnění v obrovské spoustě praktických výpočtů.
Rozklad numerického algoritmu na paralelní části s využitím vektorů se nazývá vektorizací - je to speciální a relativně snadný typ paralelizace. Během čtvrtstoletí existence vektorových superpočítačů byla vektorizace maximálně zautomatizována a každý vektorový počítač je vybaven alespoň jedním vektorizujícím kompilátorem (většinou z některé verze fortranu ), který dokáže rozpoznat skoro všechny vektorizovatelné konstrukce a pokud vektorizaci z nějakého důvodu nemůže sám udělat, upozorní na ni, aby programátor mohl odstranit překážky.
© J. Nadrchal (28.4.2000) | ![]() ![]() |