65 HIERARHIČNI VEČPROCESORSKI SISTEM INFORMATICA 1/91 Peter Kolbezen, Keywords: Parallel processor system, Token data flow, Institut Jožef Stefan, Ljubljana Transputer, Topology, Communication message, Static Peter Zaveršek, Gorenje Servis, scheduling, Processor allocation, Speedup. Velenje POVZETEK. V članku je predstavljen večnivojski rekonfigurabilni večtransputerski sistem. Izdelan je koncept izmenjave sporočil med transputerji na nivoju procesiranja uporabniških programov. Nivo procesiranja elementarnih uporabniških programov je mogoče s pomočjo spremenljive topologije povezav med transputerji povezati v hierarhično vgnezdene zanke. Razvrščanje procesov je prilagojeno tej topologiji in je zasnovano na matematičnem zapisu hierarhičnega acikličnega grafa pretoka podatkov. Predhodna analiza uporabniškega programa na sistemskem nivoju računalnika omogoča odkriti sočasne procese, določiti aciklične dele programa in jih transformirati v ekvivalentne dele programa, ki so predstavljivi s hierarhičnimi grafi pretoka podatkov. Komunikacija med transputerji, ki so povezani v zankah, in avtomatično dodeljevanje procesov potekata asinhrono s podajanjem žetonov. Predlagana topologija omogoča časovno optimirano razvrščanje, kije pogojeno z usklajenostjo topologije in hierahičnimi acikličnimi grafi pretoka podatkov. A HIERARCHICAL MULTIMICROPROCESSOR SYSTEM. The architecture of a multiprocessor transputer system and a communications shell for a multiple ring topology network of transputers for efficient execution of parallel programs are proposed in the paper. The system consists of three layers dedicated to elementary user program process execution, global control in programs and system functions. The elementary user program process execution layer network ring topology is hierarchically arranged. The process allocation is dinamically adjusted to the topology of intreprocess communications. It is based on the analysis of user program and on the description of the program with the hierarchical acyclic data flow graph (H ADFG). The prime requirement is that any processor in the network must be capable of passing a message to its successor, with the communications shell automatically. The communications shell passes each message packet through the ring network asynchronously. Proposed topology enables time-optimized scheduling by harmony of the network topology. 1. UVOD Procesiranje v realnem času na področjih, kot so vodenje zahtevnih procesov, robotizacija, znanstveno - raziskovalno delo, obdelava slik in signalov ter podobno, zahteva vse večje računalniške zmogljivosti, ki jih s klasičnimi računalniki ni več mogoče doseči. Znano je, da je edina pot, ki vodi k večjim zmogljivostim, možna preko bistveno drugačnih računalniških organizacij, kot so se uporabljale v preteklosti. Med uspešnejše organizacije sodijo predvsem takšne, ki izkoriščajo paralelizem. Zato zasluži paralelno računanje danes še posebno pozornost. Že sorazmeroma cenena in hitra tehnologija zelo visoke integracije (VLSI) omogoča učinkovitejše računalniško podprto načrtovanje in uporabo paralelnih VLSI računalnikov. Zato so dosežki v mikro-elektronski tehnologiji, in bodo še bolj vbodoče, pobudniki številnih inovacij v paralelnih računalniških arhitekturah in v uporabi t.im. polj procesorjev. V svetuje ta trend deležen velike pozornosti v vladnih, industrijskih in univerzitetnih okoljih, saj je v zadnjem desetletju zaslediti viden vzpon raziskav in vlaganj v razvoj tovrstne računalniške tehnologije. 2. PARALELNO PROCESIRANJE Med najbolj preprostimi in najbolj obetavnimi tipi paralelnih računalnikovje dobro poznana večprocesorska arhitektura. Od vseh tehnik, ki večajo moč procesiranja, je paralelno procesiranje v pogledu načrtovanja aparaturne opreme ena od najpreprostejših tehnik, hkrati pa tudi najbolj izzivalna v pogledu načrtovanja programske opreme. Paralelizem je lahko drobno ali grobo zrnat. Prvi se pojavlja pri vektorskih procesorjih, drugi pa v računalniških mrežah. Obstaja pa tudi srednje zrnat paralelizem, kakršnega srečujemo v transputerskih sistemih. Večprocesorskimi sistemi imajo običajno centralni mikroprocesor, obdan s procesorji, pomnilniki in 66 komunikacijskimi potmi. Ti viri se centralno dodeljujejo in preko njih potekajo komunikacije med procesi. V sklop sistema mora biti vključena tudi posebna aparaturna oprema, ki odloča o večkratnih sočasnih zahtevah za dostop do dodeljenih virov, in programska oprema, ki mora pri dodeljevanju virov zagotavljati vzajemno izključevanje izvajanj kritičnih področij programa, v katerih se viri uporabljajo. Tako se v zvezi z uporabo večprocesorskih sistemov pojavlja vrsta problemov, ki so težje narave. Znano je, da sta ob večjem številu procesorjev večja tudi cena upravljanja in zmogljivost sistema. Ta odvisnost je pri manjšem številu procesorjev skoraj linearna in spočetka dopušča tudi dovolj veliko prepustnost sistema. Z nadaljnim večanjem števila procesov pa prične prepustnost sistema kljub večanju števila procesorjev vse hitreje upadati. Zato je zmogljivost takega sistema omejena. V večprocesorskih sistemih, ki so osnovani na transputerski tehnologiji, se dodeljevanje virov bistveno poenostavi. Problemi spornih točk in vzajemnega izključevanja skoraj v celoti odpadejo. Komunikacije med procesorji in procesi zamenjajo medprocesorske zanke. Zlasti pa je pomembno, da v primerjavi s klasičnimi sistemi prepustnost transputerskih sistemov neomejeno narašča skoraj sorazmerno s številom transputerjev. Komunikacija med procesorji poteka zaporedno preko dveh enosmernih linij na asinhroni način. Vsaka zanka predstavlja enosmerni kanal, preko katerega dva procesa med seboj komunicirata. S takšno komunikacijo je omogočena tudi sinhronizacija med posameznimi procesi. Transputerski večprocesorski sistem predstavlja torej skupek procesorskih vozlišč s ponori in izvori, ki si v naključnostnih intervalih izmenjujejo sporočila med seboj. Dasi razvoj in gradnja večprocesorskih sistemov napredujeta z dramatično naglico, to ne velja za razvoj dovolj učinkovitih postopkov programiranja. Tudi programiranje na nivoju srednje zrnatosti je še vedno povezano s prekomernim naporom in često zahteva povsem nove postopke. Prenašanje sporočil v transputerskem sistemu ne predstavlja tolikšnih režijskih stroškov kot sistem, ki zahteva dekompozicijo programa v drobno zrnat program. Po drugi strani pa program ne sme biti preveč grobo zrnat, saj kot tak preprečuje, da se njegovo izvajanje porazdeli na pametno število procesorjev. 3. PROGRAMIRANJE VEČPROCESORSKIH SISTEMOV Programer se pri programiranju večprocesorskih sistemov sooča s tremi glavnimi problemi: 1. Kako v danem programu ugotoviti dele programa, ki se lahko izvajajo sočasno, in kako originalni program modificirati tako, da se zmanjša ali čas računanja ali število potrebnih virov? 2. Kako dodeljevati zgoraj omenjene različne dele kode v večprocesorskem sistemu? 3. Kako za dano arhitekturo določiti optimalno število procesorjev, ki so potrebni za kar se da učinkovito izvajanje programa? Pričujoče delo je posvečeno predvsem vprašanju dodeljevanja procesov neregularnih algoritmov na večnivojskem transputerskem sistemu. Za reševanje problemov iz tč.l je potrebno orodje, ki omogoča skrbno analizo in dekompozicijo programa za paralelno procesiranje na večtransputerskem sistemu. Sistem naj bi programerju dopuščal uporabo dovolj splošnih metod za reševanje zgoraj omenjenih problemov. Program, ki naj bi se kolikor je mogoče optimalno izvajal na večprocesorski arhitekturi tako, da bi izkoriščal ves možni paralelizem, mora biti predhodno skrbno analiziran in razstavljen na množico procesov. Seveda je eden prvih pogojev za paralelno procesiranje, da program vsebuje dovolj paralelnih poti, ki so programerju pogosto tudi prikrite. Pristop k reševanju problema določanja sočasnosti pa lahko poteka po dveh poteh. Po prvi poti je določanje sočasnosti neposredno prepuščeno programerju. Znano je namreč, kako določi programer sočasnost pri pisanju programov v jezikih, ki podpirajo paralelno programiranje. Po drugi poti pa je določanje sočasnosti implicitno, neodvisno od programerja na osnovi analize izvornega programa. Pri tem je odločilnega pomena podatkovna odvisnost med procesi. Ker so sekvenčni programi razbiti na različne nivoje, je osnovni korak k paralelnemu procesiranju razpoznavanje procesov znotraj posameznih nivojev, predvsem takšnih, ki se lahko že po svoji naravi izvajajo paralelno, pa tudi takšnih, katerih paralelnost je več ali manj prikrita programerju. Vsekakor je druga pot zanimiva tudi v primeru, da programer v prvi fazi programira v paralelnem programskem jeziku, v drugi fazi pa izdelani program še dodatno časovno analizira in ga na osnovi te analize optimira in testira. 4. TRANSPUTERSKI VEČPROCESORSKI SISTEM Sistem je zasnovan na podobnem konceptu, kakršnega sta predlagala M.Szturmowicz in M.Tudruj v delu /17. Vsebuje tri nivoje transputerskega vezja: krmilni, sistemski in delovni nivo. Karakteristike načrtovanega sistema so: • hierarhična struktura, ki je zgrajena iz več procesorskih nivojev, od katerih je vsak namenjen izvajanju posebne vrste opravil • namenska komunikacijska struktura na vsakem nivoju procesorjev • rekonfigurabilne procesorske povezave delovnega nivoja, ki omogočajo dinamično preslikavo tekočega programa na polje procesorjev z ustreznimi komunikacijskimi povezavami • procesiranje podatkov, globalno krmiljenje v programih in izvajanje sistemskih funkcij poteka paralelno 67 • transputerji imajo možnost medsebojnega povezavanja s pomočjo posebne materialne opreme (C004) • med seboj neodvisni procesi istega nivoja se izvajajo sočasno • sistem je učinkovit za srednje zrnato paralelno procesiranje • omogoča tudi dovolj učinkovito drobno zrnato procesiranje Procesorsko polje na delovnem nivoju je razdeljeno vgrupe (t.im. grozde) transputerjev. Transputerje v vsaki grupi je mogoče povezati v mrežo poljubne topologije. Sistem med izvajanjem nekega posla, kije sestavljen tako iz regularnih kot neregularnih postopkov, ustrezno prilagaja polje procesorjev vsakokratnim potrebam izvajanja z rekon-figuracijo posameznih grup procesorjev delovnega nivoja. Tako je lahko v nekem trenutku izvajanja ena grupa procesorjev povezana v hiper-kocko, na kateri se izvaja nek acikličen paralelni postopek, druga grupa pa v valov-nofrontno polje (wavefront array), na katerem se izvaja nek matrični račun /8/. 5. TOPOLOGIJA SISTEMA IN PRESLIKAVA ALGORITMA V izdelanem konceptu rekonfigurabilnega večprocesorskega sistema topologija procesorskega polja kar najbolje ustreza zapisu algoritmov, ki določajo izvajanje opravila. Koncept kaže na dobro usklajenost topologije procesorskega polja s preslikavo algoritma. Pri snovanju sistema je bilo upoštevano dejstvo, da je mogoče poljuben neregularen algoritem, ki ne vsebuje ciklov, imenovan "blok" program/, predstaviti z acikličnim grafom pretoka podatkov (ADFG). Primer takšnega grafa kaže slika la. Vozlišče grafa predstavlja proces, povezave med vozlišči pa tokove podatkov. V spološnem je mogoče poljubni ADFG transformirati v hierearhični DFG (HDFG), ki predstavlja drevo (Slika 2b). ADFG je lahko preprost ali ne. Definicijo preprostega ADFG najdemo v naslednjem razdelku 5.1 in v delu Hwanga /2/. Transformacija ADFG v HADFG lahko poteka na dva načina. Prvi način transformacije ohranja podatkovno vodeno računanje in vodi v računanje, ki smo ga imenovali "mehko sinhronizirano podatkovno vodeno računanje". V postopku transformacije se nepreprosti grafi postopoma transformirajo v preproste le z dodajanjem novih (namišljenih) podatkovnih odvisnosti. Takšen primer je prikazan na grafu (Slika lb), ki ga dobimo iz grafa na sliki la s povezavo med vozliščema 4 in 8. Drugi način transformacije sicer ohranja princip podatkovno vodenega računanja, vendar odstopa od vodenja, ki je določeno z izvirnim ADFG. Računanje, določeno s takšno transformacijo, smo imenovali "trdo sinhrozirano podatkovno vodeno računanje". V postopku te transformacije se f L Slika 1. ADFG in drevo grafa a) Aciklični grof pretoka podatkov (ADFG) b) Preprost ADFG c) Možni sočasni procesi v ADFG 68 na osnovi skrbne analize programa, ki sloni na časovnih karakteristikah izvajanj posameznih procesov, v izvirnem ADFG odvzamejo nekatere povezave med vozlišči grafa. Primer takšne preslikave predstavlja preslikava grafa na sliki lb v graf na sliki la. Pri uporabi takšnega načina transformacije morajo biti brezpogojno na voljo natančni podatki o dolžini ali možnih časovnih intrevalih trajanja vsakega procesa posebej. Implementacija v tem prispevku zasnovanega transputerskega sistema in razvrščanja procesov je omejena na mehko sinhronizirano podatkovno vodeno računanje. Omejitev je pogojena z organizacijo komuniciranja in razvrščanjem procesov pri izbrani večzančni arhitekturi sistema. Zaradi mehko sinhroniziranega podatkovnega vodenja na večzančni arhitekturi procesorskega polja, v katerem so vsi procesni elementi med seboj enakopravni, je omogočeno: • dinamično dodeljevanje procesov • sočasno izvajanje med seboj neodvisnih algoritmov • medsebojno prepletanje različnih HDFG na polju procesorjev Procesi na isti stopnji paralelnosti med seboj ne komunicirajo. Programerju ni treba skrbeti, na katerem procesorju se bo proces izvajal. Procesi se dodelujejo dinamično. Da ni del procesorskega polja preobremenjen, drugi del pa neizkoriščen, je topologija simetrična za več možnih osnovnih vstopnih mest. To pomeni, da se lahko različni algoritmi (ADFG) začnejo izvajati na različnih delih sistema. Ti deli sistema so, gledani posamično, topološko identični. Ker sistem omogoča medsebojno prepletanje različnih HDFG v procesorskem polju, je lahko bolje izkoriščen. 5.1. ADFG in HADFG Graf pretoka podatkov opisuje izvajanje nekega programa (algoritma), ki je sestavljen iz medsebojno povezanih procesov. V nadaljevanju bomo predpostavili, da program nima povratnih zank. Graf, ki ustreza takšnemu programu, je acikličen in je prikazan na sliki la. Utež ob vozlišču grafa pomeni čas izvajanja procesa, ki ga vozlišče predstavlja. Ta čas je celoštevilčen večkratnik neke poljubne realne časovne enote. Proces (vozlišče grafa) je zaključena celota. Začetek procesa je pogojen z določitvijo nabora vseh vhodnih podatkov, ki so potrebni za izvajanje procesa. Rezultat, kot izhodni podatek procesa, je navadno vhodni podatek za naslednji proces. Proces se lahko začne izvajati šele, ko ima na voljo vse potrebne podatke. Procesi, ki so med seboj neodvisni, se lahko izvajajo sočasno tako, kot kaže slika lc. Izvajanje algoritma, ki je določen z grafom na tej sliki, je mogoče nazorno pokazati tudi z drevesno strukturiranim grafom na sliki 2a. Poudarjene razvejitve označujejo zaporedje, manj poudarjene pa sočasnost procesov. a) ^f^ (2) (3) (4) (5) (7) (8) (6 Slika 2. Drevo grafa a) Drevo grafa iz slike lc b) HADFG grafa iz slike lb c) Optimirano drevo grafa iz slike lb,c Aciklični usmerjeni graf, ki je DFG postopka, je mogoče predstaviti tudi z matematičnim zapisom. Ta predstavlja vsoto vseh možnih nizov vozlišč, po katerih je mogoče priti iz posameznih začetnih vozlišč do končnega vozlišč^. Matematični zapis grafa na sliki lb je potem: XiX2X0 11 I 1 12 ^13 ^14 -^O 1 ai ^22 ^23 O O O O ^31 ^32 ^33 P34 O o P43 P44 141 14a .svi/ca 70. Preslikava algoritma B na procesorsko polje. ki delajo v realnem času in so namenjeni vodenju obsežnih in zahtevnih procesov z visoko stopnjo zanesljivosti /6,7/. Iz pričujočega dela, je mogoče strniti naslednje ugotovitve: • Načrtovani sistem je rekonfigurabilen. • Polje transputerjev, ki je vgrajeno v delovni (uporabniški) nivo sistema HMPS, je razširljivo. Mehanizem razvrščanja je namreč neodvisen od števila transputerjev. Z dodajanjem novih transputerjev v posamezne zanke, ni potrebno spreminjati podporne programske in materialne opreme. Zato je možno število procesorjev v zanki neomejeno večati. Smiselno pa je, da to število ni preveliko. V nasprotnem primeru daljše komunikacijske poti upočasnijo delovanje sistema. • Pri optimiranju programa je pomembna primerna izbira sinhronizacije podatkovnega vodenja. Vodenje je lahko: a) asinhrono b) mehko sinhronizirano c) trdo sinhronizirano • Postopek preslikave na koraku 1 in 2 (glej poglavje 5.5.2) je mogoče v celoti avtomatizirati in s tem bistveno olajšati delo programerja. • Mehanizem dodeljevanja procesov je enak za vse procesorje polja, kar bistveno prispeva k prilagodljivosti sistema. • Več vstopnih transputerjev lahko omogoča večjo izkoriščenost polja in bolj učinkovito proritetno izvajanje. v zvezi s hierarhičnim večprocesorskim sistemom je odprtih več vprašanj, ki se nanašajo predvsem na verifikacijo predlaganega sistema. Simulacija sistema naj bi pomagala dati odgovor na številna vprašanja, med njimi: • Kakšna je možnost zasičenosti poti za prenos podatkov? Procesor Procesi Pil 1,3,5,6,7,9,10,20,30,31,32,33, 37 P22 17,18,19,28,29 P13 2,11,12,13,14,34,35,36 P14 15,16 P21 4,8 P22 21,22,23,24,27 P23 25,26 Slika 11. Tabela razvričenosti procesov • Kakšna je porazdelitev zasičenosti v procesorskem polju? • Kakšna je učinkovitost sistema v odvisnosti od različnih parametrov, kot so granulacija, velikost procesorskega polja in drug? Nadaljne raziskave naj bi bile osredotočene v izboljšave karakteristik sistema. V ta namen naj bi obravnavale: • dvosmerne komunikacije med procesorji z op-timiranjem prenosnih poti • komunikacije med sočasnimi procesi v primerih trde sinhronizacije podatkovnega vodenja • " prioritetno vodenje • problematiko razvoja učinkovitih orodij za avtomatizirano načrtovanje programske opreme • topologijo povezav med procesorji, ki omogoča preprosto modularno večanje procesorskega polja 9. LITE RATURA /1/ M.Szturmowicz and M.Tudruj, A multi-layer transputer network for efficient parallel execution of occam programs, Microprocessing and Microprogramming 28 (1989) pp.133-138. /2/ K.Hwang and F.A.Briggs, Computer architecture and parallel processing, McGraw-Hill Book Company, 1984. /3/ T.Pisanski and J.Ëerovnik, Computing Diameter in Multiple-loop Networks, Preprint Series Dept. Math. University E.K. Ljubljana, 27(1989) No.286. /4/ INMOS Spectrum, "Product Information, The Transputer Family", March 1988. 76 /5/ L.C.Waring, A general purpose communications shell for a network of transputers, Microprocessing and Microprogramming 29 (1990) pp.107-119. /6/ Peter Kolbezen and Peter ZaverSek, Transputers for Embedded Real-Time Systems, Informática, A Journal of Computing and Informatics, Vol.14, No 3, July 1990, pp.3543. plications, Informática, A Journal of Computing and Informatics, Vol.14, No 4, October 1990, pp.58-63. /8/ Peter Kolbezen, Borut Robič in Branko Mihovilovič, Podatkovno vodeno računanje na polju transputerjev, MIPRO - Savjetovanje o novim generacijama računara -NG, str. 5-52 do 56, Rijeka-Opatija, maj 1989. /7/ Barbara KorouSitf, Jim E.Cooling and Peter Kolbezen, Real-Time Executives for Embedded Microprocessor Ap-