Interview over onderzoek in embedded systems met Jelena Spasic, Phd. student aan het Leiden Institute of Advanced Computer Science (LIACS).

Waarom ben je naar het Leiden Institute of Advanced Computer Science gekomen voor je PhD?

“Toen ik afstudeerde bij mijn universitein in (Serbia) werkte ik als Research & Development engineer in een instituut. Na drie jaren vol engeneering realiseerde ik me dat ik toch meer onderzoek wilde doen.”

Dus je moest omschakelen?

“Yes", begint Jelena. "Toen besloot ik om ofwel in Duitsland danwel in Nederland mij aan te melden als Phd student, vanwege de zeer goede secundaire arbeidsvoorwaarden. Toen ik zocht voor een positie vond ik deze tussen de meest passenden bij mijn ervaring... And here I am.”

Waarom heeft de academische wereld jouw voorkeur?

“Eigenlijk zou ik liever werken in een bedrijf of onderzoeksinstelling, met industriele problemen die wetenschappelijk onderzoek vergen. Zoals ik zei, voordat ik naar Nederland kwam werkte ik als Research en Development engeneer aan een onderzoeksinstelling. Echter, mijn vaderland is niet goed ontwikkeld, dus bestaat er geen mogelijkheid grotere subsidies aan te vragen voor serieus onderzoek."

"In weze was het onderzoek dat we daar verrichtten meer technisch en absoluut niet van hoog niveau." "Waarom?" "Vanwege het gebrek aan fondsen"

Hoe is het voor jou om vooral met mannen te werken in jouw onderzoeksgroep?

"Voor mij is het prima. Ik zou graag met mannen werken vanwege de simpele rede dat mannen directer zijn.”, begint Jelena. “Voel je je dan altijd op je gemak?“ "Ik ben tevreden. Ik merk niet eens dat ik de enige vrouw ben in onze onderzoeksgoep.”

Huidig onderzoek

Jelena schreef een artikel genaamd Resource Optimization for CSDF-modeled Streaming Applications with Latency Constraints. In dit artikel beschreef ze het optimalisatieprobleem van het aantal processoren die betrokken zijn bij het in kaart brengen van het aantal processoren die nodig zijn voor toepassingen door deze 'schedules' te modelleren als CSDF1 met restricties in latency.

Waarom worden CSDF grafieken gebruikt voor het modelleren van streaming applications?

“Streaming applications verwerken een hoop gegevens. Ze kunnen overal worden aangetroffen, bijvoorbeeld in navigatie, games, beeldverwerking, videobewerking en zo voort. Zo zijn er speciale gegevensmodellen ontworpen om streaming applications weer te geven zodat de belangrijkste eigenschappen geanalyseerd kunnen worden. Het CSDF model is daar een van. Het voordeel van dit model zijn de statische eigenschappen2 en de beschikbaarheid van meetmethoden die hiervoor speciaal ontwikkeld zijn. Je kunt deze tools draaien om informatie over de throughput3 van een applicatie in te winnen voordat je daadwerkelijk de applicatie implementeert in hardware.”

Wat wordt naast throughput verder nog geanalyseerd?

"Je kunt naast throughput ook latency van een programma analyseren. Latency is de tijd die verschrijkt tussen het moment dat gegevens als invoer verstuurd worden en het moment dat het reaultaat ontvangen wordt om verwerkt te kunnen worden door bijvoorbeeld een streaming application.”

Kunnen throughput en latency ook de kwaliteit van de applicatie bepalen?

“Ja. Throughput en latency zijn twee prinicipiele meeteenheden voor de kwliteit van streaming applications. Door deze eenheden te modelleren ontstaat er een schatting van de performance.

Voor het vereenvoudigen van het algoritme dat gebruikt wordt door het CSDF model, en bij gebruik van de bestaande anayse mogelijkheden kun je van te voren deze uitvoering gebruiken. Het is niet noodzakelijk om alles in te voeren in een vooraf ingestelde chip. Verder kun je zoveel mogelijk processors die je nodig hebt om de applicatie uit te voeren om latency en thoughut te optimaliseren.

By modeling the applications using the CSDF model and by using the existing analysis tools you can get estimates of performance in advance, you don't have to inplement everything in a chip. Moreover, you can obtain how many processors you need to execute the application to achieve certain troughput and latency.”

You worked with CSDF graphs for analysing the time that an application takes. How did you use the CSDF graphs to determine that time?

“Our former colleaque did a great work which is a basis of our research. He connected the dataflow theory with the classical real-time theory. In his work he showed that CSDF graphs can be converted to classical real-time tasks. By doing that you can apply some very well-known real-time analisys to determine, for example, how many processors you need to run your tasks in a certain manner which meets the latency constraints of an application.”

Why did you only work with strictly periodic tasks?

“The framework we used, which was developed by our colleague, converts CSDF graphs to strictly periodic tasks. Those tasks are classical real-time tasks, which can be easily analyzed by the existing real-time theories. So, we wanted to exploit that feature.”

You described that your problem can be seen as an integer convex programming problem4.

Why is it useful to describe your problem in that way?

“Very often, people try to formulate their research problems as (integer) programming problems, so that they can apply already existing software tools to solve the problem. Our goal in this research was to minimize the number of processors in the platform under constraints on latency of an application. Because we were able to formalize our problem as integer convex programming problem, we could use the commercial solver to solve it.”

What kind of unexpected problems did you encounter during the testing process?

“It is usual to experience bugs somewhere in your implementation or in the tools of reference work. Sometimes it takes more time to correct a bug, but usually not too much. If the theory which you are working on has clear and correct logical basis, you can only meet some implementation problems but no serious ones.”

Internship

What kind of trainee would be valuable for your research group?

“Somebody that is interested in the embedded systems and research we are doing in our group. If somebody is willing to learn and improve his or her skills in our field od expertise, of course he/she would be valuable to train. We can offer research/engineering projects or we can think together with a tranee about possible projects. A trainee could, for example, do a smaller part of the research problem within our current research or acquire/improve engineering skills by taking part in implementation of our theories and experimental set-up.”

What internship possibuilities are there in your research group?

“Mostly they should play with the development bords we have in our group. We recently obtained one very new board with the state-of-the-art coprocessors and FPGA5 device on it. We would like to: 1) run some streaming applications on it; 2) update our tools to automatically generate design specifications for that board; and 3) do research on communication structures on that board.”

Do you have an example of a recent project?

“I supervised a student for a bachelor project last year. He was investigating differerent scheduling strategies to schedule the Disparity Map application on a multi-processor platform. This application takes two images and on basis of these images it determines which object is closer to the camera and which one is further. Among the existing implementation of this algorithm he performed inital research on the implementation quality. Then he rewrote the best one, such that it is compatible with the design tools developed in our group. Finally, he did theoretical and experimental research on the scheduling problem. During the work he had to experiment a lot with the board. It was quite new for him, but finally he finished everything and had a real working system which can be useful for other students.”

1CSDF graphs: Cyclo-Static Dataflow graphs

2static streaming application model: can be easily analyzed at a design-time of a system.

3throughput: the amount of output per time unit that can be produced (e.g. frames per second).

4integer convex programming problem: Find the maximum or minimum value of a convex function of several integer-valued variables subject to finite set of constraints in the form of convex equalities and inequalities.

5Field-programmable gate array (FPGA): an integrated circuit designed to be configured by a customer or a designer after manufacturing.