9 research outputs found

    On the Convolution Efficiency for Probabilistic Analysis of Real-Time Systems (Artifact)

    Get PDF
    This artifact describes the process for validation and reproduction of the experiments given in the associated paper "On the Convolution Efficiency for Probabilistic Analysis of Real-Time Systems". This document contains the information on the scope of the presented artifact, i.e. what are the considered experiments, instructions for obtaining the source code of the experiments, tested platforms, and other relevant information

    Update-Sensitive Structured Encryption with Backward Privacy

    Get PDF
    Many recent studies focus on dynamic searchable encryption (DSE), which provides efficient data-search and data-update services directly on outsourced private data. Most encryption schemes are not optimized for update-intensive cases, which say that the same data record is frequently added and deleted from the database. How to build an efficient and secure DSE scheme for update-intensive data is still challenging. We propose UI-SE, the first DSE scheme that achieves single-round-trip interaction, near-zero client storage, and backward privacy without any insertion patterns. UI-SE involves a new tree data structure, named OU-tree, which supports oblivious data updates without any access-pattern leakage. We formally prove that UI-SE is adaptively secure under Type-1^- backward privacy, which is stronger than backward privacy proposed by Bost et al. in CCS 2017. Experimental data also demonstrate UI-SE has low computational overhead, low local disk usage, and high update performance on scalable datasets

    Multiconstraint Static Scheduling of Synchronous Dataflow Graphs Via Retiming and Unfolding

    Full text link

    Design and implementation of a reusable machine control system

    Get PDF
    Machine control system makes a machine operate safely and according to the operator’s commands. Nowadays ever-increasing portion of the system functionality is implemented by software. Control system’s software is run by one or multiple programmable control units. Control units may have various kinds of IO-connections with its sensors and actuators. Control units are interconnected with communication buses. There is a vast variety of communication bus implementations, and each bus implementation may have multiple different high-level protocols available. Malfunctioning machines are dangerous, and therefore legislators and domain specific standards have set specific requirements for machine safety. Prior to existence of cheap and durable enough control units, machine control systems were implemented connecting relays and cam timers. There was very little flexibility for changing system requirements. Due to limited hardware resources, early programmable control units were programmed with very low-level programming languages and using procedural programming paradigm. As hardware capabilities of control units improved, using high-level programming languages and object-oriented programming paradigm became viable options. Software reuse has become urgent as machine control system software requirements have increased over time. Hardware dependency and varying requirements are making machine control system software reuse difficult. Without efficient and systematic software reuse, machine manufacturers are not able to compete with reasonable prices and latest technologies. Object-oriented programming becoming more wide-spread in embedded software has improved software reusability. Object-oriented programming by it-self does not guarantee reusability. The system still needs to be carefully designed especially for reusability. Following the SOLID-principles for object-oriented programming helps designing the system to be reusable and easy to understand, maintain and develop further. I have been developing a new machine control system for loading and hauling machines for Sandvik during the last year. The new control system is intended to be reusable between various kinds of machine types and models in the future. This thesis describes how object-oriented programming, design for reusability and common machine control system design patterns can be applied in practice. Even though the system has been designed to be reusable, only the future usage of the new control system will reveal its actual reusability.Koneenohjausjärjestelmä saa koneen toimimaan turvallisesti ja operaattorin komentojen mukaisesti. Yhä suurempi osa koneenohjausjärjestelmien toiminnallisuudesta toteutetaan nykyisin ohjelmistolla. Koneenohjausjärjestelmän ohjelmiston suorituksesta vastaa yksi tai useampi ohjelmoitava ohjausyksikkö. Ohjausyksiköillä voi olla lukuisia erilaisia IO-liitäntöjä, joilla ne liittyvät antureihinsa ja toimilaitteisiinsa. Ohjausyksiköt liittyvät toisiinsa kommunikaatioväylien avulla. Väylätoteutuksia on olemassa useita, ja kullakin väylätoteutuksella voi olla useita korkean tason protokollia. Koneet ovat väärin toimiessaan vaarallisia, minkä vuoksi koneiden turvallisuudelle on asetettu erityisiä vaatimuksia laissa ja sovellusalakohtaisissa standardeissa. Koneenohjausjärjestelmien ohjaus toteutettiin ennen riittävän edullisten ja kestävien ohjausyksiköiden kehittymistä releillä ja ajastimilla, mikä tarjosi hyvin vähän joustovaraa vaatimusten muuttamiselle. Ensimmäiset ohjelmoitavat ohjausyksiköt ohjelmoitiin rajallisten laitteistoresurssien vuoksi hyvin matalan tason ohjelmointikielillä ja proseduraalista ohjelmointiparadigmaa noudattaen. Ohjausyksikköjen suorituskyvyn kehittyminen on mahdollistanut korkean tason ohjelmointikielten käyttämisen ja olio-ohjelmoinnin soveltamisen. Koneenohjausjärjestelmien ohjelmiston vaatimusten kasvaessa ohjelmiston uudelleenkäytöstä on tullut tärkeää. Uudelleenkäyttöä vaikeuttavat ohjelmiston laitteistoläheisyys ja vaihtelevat ominaisuudet. Ilman tehokasta ja systemaattista ohjelmiston uudelleenkäyttöä koneenvalmistaja ei pysty kilpailemaan koneiden kohtuullisella hinnalla ja uusimmalla teknologialla. Olio-ohjelmointikielten yleistyminen sulautetuissa järjestelmissä parantaa ohjelmiston uudelleenkäytettävyyttä. Olio-ohjelmoinnin käyttö itsessään ei kuitenkaan takaa uudelleenkäytettävyyttä, vaan ohjelmisto on suunniteltava huolellisesti erityisesti uudelleenkäyttöä varten. Olio-ohjelmoinnin SOLID-periaatteet auttavat uudelleenkäytettävän ja helposti ymmärrettävän, jatkokehitettävän ja ylläpidettävän ohjelmiston suunnittelussa. Olen viimeisen vuoden aikana kehittänyt Sandvikille uutta koneenohjausjärjestelmää kaivoslastaus- ja -kuljetuskoneille. Järjestelmän on tarkoitus olla uudelleenkäytettävä laajalle kirjolle erilaisia koneita ja konemalleja tulevaisuudessa. Tässä diplomityössä kuvataan, miten olio-ohjelmointia, uudelleenkäytettävän ohjelmiston suunnitteluperiaatteita ja muita koneenohjausjärjestelmien yleisiä suunnittelumalleja on sovellettu käytännössä. Vaikka uudelleenkäytettävyys on otettu suunnittelussa huomioon, vasta järjestelmän käyttöönotto tulevaisuudessa paljastaa todellisen uudelleenkäytettävyyden

    Okvir za alokaciju softverskih komponenata na heterogenoj računalnoj platformi

    Get PDF
    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.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

    Okvir za alokaciju softverskih komponenata na heterogenoj računalnoj platformi

    Get PDF
    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.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

    Okvir za alokaciju softverskih komponenata na heterogenoj računalnoj platformi

    Get PDF
    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.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

    Entwicklungspfade intelligenter Transportsysteme für den Straßengüterverkehr

    Get PDF
    Today's road network has reached its limits in most major cities and at certain times. Similarly, the capacity of the road network is largely exhausted. In addition, the change in delivery cycles in the food industry from a regular delivery structure to just-in-time deliveries leads to an increased delivery volume. But also E-commerce, the share economy and the customer's demand for faster delivery (same-day delivery) are leading to an additional rise in the supply sector. With the road infrastructure remaining the same, it is therefore not surprising that more and more slow-moving traffic and congestion are occurring. Intelligent transport systems (ITS) offer the possibility to improve the road capacity without excessive structural measures. The aim of this dissertation project is to provide insights of research achieved so far in the field of ITS for road freight transport and to estimate further developments by means of scenario generation. In addition to the presentation of ITS for road freight transport and the creation of environmental scenarios, action implications for the individual areas of ITS in road freight transport are presented. If the first scenario occured, this would have many positive effects on the transport process, but it would be of little importance, as the favourable factors are present in this scenario. If the second scenario occured, this would have many effects and a medium significance for ITS. In the case of the third scenario, this would be of medium to high significance, since in this scenario there are few ITS factors favouring road freight transport. The effects on the intelligent transport sector would be correspondingly small because these systems would not exist. This work provides first future oriented analysis in ITS related research

    A Context-Aware Model for Dynamic Adaptability of Software for Embedded Systems

    Get PDF
    The scientific contributions of this thesis are three-fold. Firstly, a novel specialized embedded systems software architecture for contextawareness is presented. This architecture is developed for use on a resource constrained hardware platform and is low latency. For firmware applications with many sources of context, a specialized architecture is important to achieve code readability, modularity, extensibility and maintainability. Context in embedded systems firmware development is defined as changeable and characterizing information such as sensor data (IR - infrared, GPS, accelerometer) or profile attributes (user, vehicle, device, etc.). A second focus was on dynamic architecture adaptability in the form of a cognitive engine which processes real-time updates to its user-configurable module. Dynamic adaptability improves the application software\u27s flexibility and responsiveness according to different user requirements or varying operational conditions. Adaptability is defined as system changes according to changes in context and in terms of the four W\u27s - why are there changes, what remains unchanged, when do the changes occur and who manages these changes. Thirdly, the concept of context-aware map logic (CAML) is introduced. Cognitive engine updates are performed using these logic maps which are derived from/inspired by fuzzy cognitive maps (FCM) and GPS (global positioning system) coverage maps. The logic maps feature phi, delta, timer, complement, latched and momentary operands. The logic maps were specifically designed for resource constrained hardware. No previous work has been done on the use of fuzzy cognitive maps specifically with linguistic weights for enabling dynamic, resource constrained firmware adaptability. Fuzzy cognitive maps are at the intersection of fuzzy logic and neural networks. A resource constrained hardware platform is defined as a single-processor microcontroller with low processing power and limited memory space as compared against large memory, multi-core, multi-media processors e.g. cell-phones. The targeted hardware platform could be a legacy processor or a low power processor typically found in wireless sensor networks or energy-aware or cost-aware solutions. Context-awareness is an important topic in the wireless sensor networks research field. Wireless sensor networks comprise wirelessly enabled embedded systems for data acquisition and control for a wide array of applications. In this thesis context is defined as changeable and characterizing information such as sensor data, profile attributes or explicitly provided user information. The embedded systems software architecture is a layered model with context and cognitive planes which focus on dynamic adaptability. The context plane features a microarchitecture, which includes context collectors, context controllers and a context task based coordinator. The cognitive plane is responsible for dynamic adaptable logic reconfiguration inspired by fuzzy cognitive maps. Proof-of-concept firmware was developed for a wireless physiological sensor showing context collector implementation. An ATE (automatic test equipment) test architecture was also developed for the sensor highlighting architecture development and providing the groundwork for the context controller development. The lead-up to the cognitive engine is explored in an introduction to fuzzy cognitive maps, its implementations and applications to current research. An industrial application, Novax\u27s Accessible Pedestrian System (APS) and simulations using the Rapita suite of tools are presented
    corecore