Softvér pre PPS SIMD

Paralelný počítačový systém typu SIMD (PPS SIMD predstavoval paralelný asociatívny počítačový systém, ktorý bol navrhnutý a zrealizovaný v osemdesiatych rokoch minulého storočia v rámci úlohy: III-8-3 “Paralelné a špecializované problémovo orientované počítačové systémy” a čiastkovej úlohy: III-8-3/05 “Paralelný počítačový systém novej generácie pre spracovanie obrazov, riadenie databáz a báz znalostí”. Pôvodne bol určený pre spracovanie obrazov a signálov a pre úlohy, v ktorých bolo potrebné súčasne spracovávať veľké množstvo údajov. Neskôr sa ukázalo, že počítače tohoto typu sú vhodné aj pre riešenie vedecko-technických problémov, v ktorých prevláda spracovávanie vzoriek údajov regulárneho charakteru. Takéto úlohy sa vyskytujú v oblasti meteorológie, jadrovej fyziky, geofyziky, chémie, a v rôznych simuláciách. Konkrétne v numerickej matematike je to riešenie systémov lineárnych rovníc, systémov obyčajných a diferenciálnych rovníc, maticové operácie a rôzne rýchle transformácie (Fourier, Walsh, Hadamard, atď). V oblasti nenumerickej matematiky je to spracovanie obrazov, rozpoznávanie scén s mobilnými objektami, rýchle spracovanie signálov z rôznych zdrojov, ako radar, sonar, atď., a paralelné spracovanie údajov a informácií v znalostných systémoch.

Architektúra a technické prostriedky PPS SIMD

PPS SIMD je modulárne organizovaný paralelný asociatívny počítačový systém architektúry SIMD (Single Instruction Multiple Data), v ktorom sa jeden inštrukčný tok vykonáva nad mnohonásobným dátovým tokom. Systém pozostával z dvoch základných častí: zo sekvenčnej a paralelnej jednotky a z voliteľnej vstupno/výstupnej jednotky. Táto štruktúra umožňovala paralelné vykonávanie skalárnych a vektorových procesov, ktoré mohli navzájom komunikovať a synchronizovať svoje činnosti.

Sekvenčná jednotka predstavovala nejaký komerčný procesor (PDP 11, SM50/50, alebo IBM PC). Jeho úlohou bolo riadenie činnosti systému, vybavovanie požiadaviek na vstupno-výstupné operácie, vykonávanie diagnostických funkcií a vykonávanie skalárnych výpočtov.

Paralelná jednotka pozostávala z riadiacej jednotky, z 1 až 32 asociatívnych modulov a z viacerých prepojovacích a medzistykových blokov.

Jadro systému tvoril asociatívny modul. Predstavoval aritmeticko-logickú jednotku, ktorá vykonávala operácie podľa inštrukcií riadiacej jednotky. Operácie sa vykonávali štandardne nad všetkými aktívnymi asociatívnymi modulmi súčasne. Asociatívny modul zahrňoval:

  • stránkovo organizovanú asociatívnu pamäť s multi-dimenzionálnym prístupom k údajom (MDA), pričom jedna stránka predstavovala maticu 256 slov x 256 bitov. V každom pamäťovom cykle bol vždy sprístupnený jeden 256 bitový vektor – bitový rez, slovný rez, alebo zmiešaný spôsob.

  • 256 procesorových elementov, ktoré umožňovali paralelné vykonávanie aritmetických, logických a prehľadávacích operácií.

  • permutačnú sieť, ktorá vykonávala usporiadanie/pre-usporiadanie údajov v spojitosti s ich prenosom z/do pamäti MDA a taktiež umožňovala realizáciu funkcií manipulovania s údajmi.

  • rozhodovací blok, ktorý umožňoval získať všetky položky vyhovujúce zadanému kritériu prehľadávania údajov v pamäti MDA – asociatívny výber údajov.

Programové prostriedky PPS SIMD

Programové vybavenie paralelného počítačového systému PPS SIMD pozostávalo z nasledujúcich programových modulov:

  • operačný systém riadiaceho sekvenčného počítača (DOS RV, UNIX) a jeho štandardné systémové a používateľské programy

  • asemblerový jazyk ASPL (Associative Programming Language)

  • makroasembler (makroprocesor-asembler)

  • spojovací program (linker)

  • ukladací program (loader)

  • ladiaci program (debugger)

  • riadiaci program (monitor)

  • diagnostické programy

  • knižnica podprogramov

Toto základné programové vybavenie umožňovalo vytváranie zdrojových programov, ich konvertovanie do odpovedajúceho strojového kódu a ich vykonávanie. Používateľský program mohol pozostávať z dvoch častí: z programu, ktorý sa vykonával na sekvenčnom počítači a z programu, ktorý sa vykonával na paralelnom počítači, pričom obe časti mohli bežať súčasne a navzájom medzi sebou komunikovať.

Na tvorbu programov pre paralelnú časť systému bol vyvinutý špecializovaný, strojovo orientovaný jazyk symbolických adries “ASPL” (Associative Programming Language). Okrem inštrukcií a pseudoinštrukcií jazyk obsahoval aj makroinštrukcie, z ktorých boli vytvorené štandardné knižnice.

Bolo vytvorené rozšírenie jazykov Fortran a C o možnosti volania paralelných podprogramov čo poskytlo transparentnosť paralelného prostredia pre používateľa.

Komentáre sú uzavreté.