Sažetak | A recent development of heterogeneous platforms (i.e. those containing different types of computing units such as multicore CPUs, GPUs, and FPGAs) has enabled significant improvements in performance of real-time data processing. However, due to increased development efforts for such platforms, they are not fully exploited. To use the full potential of such platforms, we need new frameworks and methods for capturing the optimal configuration of the software. Different configurations, i.e. allocations of software components to different computing unit types can be essential for getting the maximal utilization of the platform. For more complex systems it is difficult to find ad hoc, good enough or the best configuration.This research suggests the application of component based software engineering(CBSE) principles, by which it is possible to achieve the same functionality of software components across various computing units of different types, however with different extrafunctional properties (EFP). The objective of this research is to construct a framework which optimizes the allocation of software components on a heterogeneous computing platform with respect to specified extra-functional requirements.The I-IV allocation framework, proposed by this research, consist of formalisms necessary for modeling of a heterogeneous computing platform and exploring the designspace, which results with an optimal design decision. The I-IV allocation frameworkwas verified in two steps, focusing on two EFPs; the average power consumption andthe average execution time. The experimental platform was a tracked robot, developed for the purpose of this research. It contains a CPU, a GPU and an FPGA, along with 32software components deployable onto these units. Both steps resulted in a positive result confirming the claim that the I-IV framework, along with its Component allocation model M correctly represents the heterogeneous system performance, with consideration to multiple criteria. |
Sažetak (hrvatski) | Usprkos tome da je u posljednjih nekoliko godina povećanje radnog takta središnje procesne jedinice (CPU) usporeno, ako ne i zaustavljeno, performanse suvremenih računala i dalje rastu, ali ne zbog radnog takta. To znaci da se i performanse racunalnih programa više na ovaj nacin ne mogu unaprijediti, čak što više, daljnje povečavanje radnogčtakta CPU-a pokazalo se neučinkovitim. Zbog toga, došlo je do suštinske promjene u građi procesora, odnosno to repliciranja procesnih jezgri te ugradbom dodatnih namjenskih procesnih jedinica koje su specijalizirane za određeni tip zadataka. Najcešce su to graficka procesna jedinica (GPU), programirljiva polja logickih blokova (FPGA), integrirani krugovi specificne namjene (ASIC), itd. Istovremeno, zajednica prepoznala je veliki istraživacki potencijal heterogenih racunalnih sustava, odnosno sustava sa mnoštvom procesnih jedinica razlicitog tipa, obzirom da omogućuju izuzetna poboljšanja performansi softvera.Mnogi se istraživaci već dulje vrijeme bave heterogenim racunalstvom, što znaci da to nije nova ideja, no u posljednjih nekoliko godina, zbog fizickih ogranicenja vezanih uz arhitekturu procesnih jedinica, heterogeno racunalstvo postaje sve popularnija istraživacka tema. Uz izuzetno povećanje procesne moći, heterogeno racunalstvo donosii mnogo izazova, prvenstveno za softverske inženjere. Naime, razvoj softvera za takve sustave vrlo je zahtjevan zbog primjerice, potrebe za rukovanjem sa više razlicitih tipova podataka ili programskih jezika unutar istog racunalnog programa, kompatibilnosti pojedinih procesnih jedinica i konverzije tipova podataka, potrebe za specijaliziranim bibliotekama koda, korištenja razlicitih struktura podataka kroz više arhitekturalni slojeva racunala i racunalnog programa, itd. Osim toga, obzirom na to da se heterogeni sustavi prvenstveno koriste kao elementi ugradbenih racunala u industriji, softverski inženjeri uz funkcionalne zahtjeve, dodatnu pozornost moraju dati nefunkcionalnim zahtjevima (EFP).Kako bi se upravljalo funkcionalnim i nefunkcionalnim zahtjevima softvera, u složenim heterogenim racunalnim sustavima,cesto se primjenjuju nacela komponentno orijentiranog softverskog inženjerstva (CBSE), koja su u softverskoj zajednici dobro poznata i dokazana. CBSE obuhvaća modele, metode i smjernice za softverske inženjere koji razvijaju sustave temeljene na komponentama, odnosno građevnim jedinicama koje komuniciraju putem ugovorno definiranih sucelja, koje se mogu samostalnougra divati i jednostavno zamjenjivati. Time, CBSE daje snažne temelje za prethodno spomenute vezane uz razvoj softvera namijenjenog za heterogene racunalne sustave.U tom kontekstu, CBSE omogućuje postizanje jednake funkcionalnosti komponenata softvera alociranih na (razlicite) procesne jedinice (razlicitog tipa), no sa drugacijimne-funkcionalnim svojstvima. To znaci da pojedine alokacije komponenata softveramogu biti više ili manje ucinkovite obzirom na scenarije njihove primjene, odnosnonjihove ulazne parametre, što za sobom povlaci i pitanje ukupnih performansi sustava. Prema tome, zadatak arhitekta softvera najprije je definirati svojstva najbolje alokacije obzirom na više kriterija, poput dostupnosti resurs, ne-funkcionalna svojstva i ogranicenja, a potom na konkretnoj heterogenoj racunalnoj platformi ucinkovito i pronaći takvu alokaciju.Temeljni cilj ovog istraživanja je konstruirati okvir za optimizaciju alokacije kompo- nenti softvera na heterogenoj racunalnoj platformi, koji uzimajući u obzir ogranicenja resursa dostupnih na racunalnim jedinicama (razlicitog tipa), specifikacije komponenata softvera i ogranicenja koja definira arhitekt sustava ucinkovito pronalazi najbolju alokaciju. Ova disertacija predlaže Alokacijski okvir I-IV sastavljen od formalnih elemenata koji omogućuju stvaranje modela heterogenog racunalnog sustava te pretraživanje prostora potencijalnih alokacija, te definira korake kojima se postiže optimalna arhitektura sustava. Kako u ovom slucaju prostor potencijalnih rješenja, odnosno alokacija eksponencijalno raste (uzmdostupnih racunalnih jedinica tendostupnih komponentisoftvera, prostor rješenja jemn), razvijen je i prototip alata koji automatizira Alokacijskiokvir I-IV, što je inace dugotrajan ili cak neizvediv proces. Za opis nefunkcionalnih svojstava heterogenih sustava, koristi se Model za alokaciju komponenata M. Taj model,primjenom težinske funkcije omogućuje kvantifikaciju pojedinih alokacija čime je omogućena njihova usporedba te procjena prikladnosti korištenja istih. Istovremeno,težinska funkcija daje uvid u performanse sustava u njegovoj ranoj fazi razvoja (cak prije nego su komponente razvijene).Vjerodostojnost Alokacijskog okvira I-IV provjerena je u dva koraka (eksperimenta),pri cemu je fokus bio na dva nefunkcionalna svojstva sustava: prosjecni elektricni učinak elektricne struje i prosjecno vrijeme izvođenja operacija softvera. Eksperimentalna platforma bila su robotska kolica sa heterogenim racunalnim sustavom sacinjenim odCPU-a, GPU-a te FPGA-a, zajedno sa tridesetak komponenata softvera koje je moguće alocirati na te racunalne jedinice.Prvi korak provjere odnosio se na provjeru tocnosti, odnosno procjenu prikladnosti težinske funkcije w da kvantificira performanse pojedine alokacije. Postupak je proveden primjenom šest razlicitih alokacija koje predstavljaju dva razlicita scenarija izvođenja.Odabrane alokacije, nakon što su kvantificirane težinskom funkcijom w, zapisane sutablicno i rangirane prema predviđenim performansama. Nakon toga, te iste alokacije su implementirane na stvarnom sustavu, ranije spomenutim robotskim kolicima. Iscrpnim mjerenje (u intervalu pouzdanosti od 95%), zabilježene su performanse alokacija i ponovno su rangirane u rang listu. Rezultat oba rangiranja bio je jednak,cime slijedi damodel za raspodjelu komponenata M, te njegova težinska funkcija w mogu korektno predvidjeti performanse pojedine alokacije u realnom sustavu. Ovakav ishod, doveo IV je do drugog koraka provjere koji se odnosi na scenarij(e) u kojem postoji izrazito veliki broj komponenti softvera te racunalnih jedinica,cime prostor potencijalnih rješenja postaje toliko velik pronalaženje najbolje alokacije metodom iscrpnog pretraživanja nije moguće ucinkovito provesti.Obzirom da trenutna implementacija Alokacijskog modela I-IV definira heuristicke metode za rješavanje navedenog problema, drugi korak provjere za cilj ima procijeniti sub-optimalno rješenje genetskog algoritma i metode simuliranog kaljenja. Uz heuristicke metode, generirane su i proizvoljne alokacije, jer u nekim slucajevima su takve alokacije podjednako dobre ili cak bolje od heuristickih metoda. U prvoj iteraciji, provjeravala se preciznost navedenih metoda, odnosno njihovo odstupanje od optimalne alokacije dane iscrpnim pretraživanje u prostoru do 512. Pokazalo se kako genetski algoritam daje najbolja rješenja, odnosno alokacije koje minimalno odstupaju od optimalnog rješenja. Nadalje, za prostore rješenja između 1020do3070 gdje iscrpno pretraživanje nije ucinkovito, usporedba je pokazala da obje heuristicke metode daju bolja suboptimalne alokacije od proizvoljno definiranih alokacija i to u najkraćem vremenu.Iako je statisticki vjerojatno, ni u jednom slucaju (u 55 ponavljanja, s povećavanjem prostora rješenja) nije zabilježeno da proizvoljno generirana alokacija daje bolje performanse od alokacije dobivene predloženim heuristickim metodama, cime je završila validacija predloženog okvira i svih njegovih elemenata. |