13.07.2015 Views

Final Program EXPRES 2012 - Conferences

Final Program EXPRES 2012 - Conferences

Final Program EXPRES 2012 - Conferences

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

possibility to execute graph algorithms on the softwarearchitecture itself. The graph algorithms operate on thesoftware’s logical graph not the execution graph. Thisprovides the possibility for higher level optimizations(super optimization). The architecture is designed to beeasily modelable with a domain specific language. Thisdomain specific language eases the development of thesoftware, but its primary purpose is to provide informationfor higher level optimizations. It can be viewed as thelogical description, documentation of the software. Basedon the description language it is possible to generate thelow level execution of the software, this means that it isnot necessary to work at a low level during thedevelopment of the software. The development isconcentrated around the logic of the application. It focuseson what is to be achieved instead of the small steps thatneed to be taken in order to get there.Figure 1.The data flow of a softwareand determine how to respond to the next messagereceived. Figure 1 demonstrates the most basic butessential problem in the concurrent programming. Eachnumber represents one process or one operation to beperformed. The main goal is not to find the resource forparallel computing but to find the way to passintermediate results between the numbered nodes.C. AdvantagesIncreased application throughput - the number of tasksdone in certain time period will increase. Highresponsiveness for input/output - input/output intensiveapplications mostly wait for input or output operations tocomplete. Concurrent programming allows the time thatwould be spent waiting to be used for another task. It canbe stated that there are more appropriate programstructures - some problems and problem domains are wellsuitedto representation as concurrent tasks or processes.II. COMMUNICATIONIn case of distributed systems the performance ofparallelization largely depends on the performance of thecommunication between the peers of the system. Twopeers communicate by sending data to each other,therefore the performance of the peers depends on theprocessing of the data sent and received. Thecommunication data contains the application data as wellas the transfer layer data. It is important for the transferlayer to operate with small overhead and provide fastprocessing. Embedded systems have specificrequirements. It is important that the communicationmeets these requirements.The design of the presented method is focused aroundthe possibility to support and execute high leveloptimizations and abstractions on the whole program. Thegraph-based software layout of the method provides theIII. REALIZATION IN EMBEDDED SYSTEMSThe architecture of modern embedded systems is basedon multi-core or multi-processor setups. This makesconcurrent computing an important problem in the case ofthese systems, as well. The existing algorithms andsolutions for concurrency were not designed for embeddedsystems with resource constraints. In the case of real-timeembedded systems it is necessary to meet time andresource constraints. It is important to create algorithmswhich prioritize these requirements. Also, it is vital to takehuman factor into consideration and simplify thedevelopment of concurrent applications as much aspossible and help the transition from the sequential worldto the parallel world. It is also important to have thepossibility to trace and verify the created concurrentapplications. The traditional methods used for parallelprogramming are not suitable for embedded systemsbecause of the possibility of dead-locks. Dead-locks posea serious problem for embedded systems [5], because theycan cause huge losses. The methods presented in [6](Actor model and STM), which do not have dead-locks,have increased memory and processing requirements, thisalso means that achieving real-time execution becomesharder due to the use of garbage collection. Using thesemethods and taking into account the requirements ofembedded systems one can create a method which iseasier to use than low-level threading and the resourcerequirements are negligible. In the development ofconcurrent software the primary affecting factor is not themethod used for parallelization, but the possibility toparallelize the algorithms and the software itself. To createan efficient method for parallel programming, it isimportant to ease the process of parallelizing software andalgorithms. To achieve this, the used method must forcethe user to a correct, concurrent approach of developingsoftware. This has its drawbacks as well, since the userhas to follow the rules set by the method. The presentedmethod has a steep learning curve, due to its requirementstoward its usage (software architecture, algorithmimplementations, data structures, resource management).On the other hand, these strict rules provide advantages tothe users as well, both in correctness of the applicationand the speed of development. The created applicationscan be checked by verification algorithms and theintegration of parts, created by other users is provided bythe method itself. The requirements of the method providea solid base for the users. In the case of sequential132

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!