|
|
Implementation and Evaluation of a compiler for the coordination of parallel realtime-processes |
The Chair for Operating Systems (Univ.-Prof. Dr. habil. Th. Bemmerl) provides in cooperation with Siemens AG the following diploma thesis in the
range of
parallel computer:
Implementation and Evaluation of a Compiler for the Coordination of parallel realtime-processes
Background
For developing software for multicore-processors a model is required, that supports a description of parallel processes. Beside the level of parallelity and the communication between the processors, the ability of composition and determinsm differ the models of parallel programming.
As a dominating model threads are considered. Their disadvantages are the possible non-determinsm and the missing predictability, which have an important role in embeded systems.
An deterministic and composable alternative to threads are models based on data flow diagramms, which represents dependabilities of operations (vertices) by edges of a graph. Data reach a vertex by an incoming edge, become processed and leave the vertex by outgoing edges. Vertices can be replaced by further data flow diagramms without interactions.
Instead of the usual graphical design in signaling processing, textual forms of description like data flow-languages seem to be a good option. They are related with functional languages, but include constructs for the description of loops. Due to the reason, that both data flow-languages as well as functional languages allow the assignment of a value to a variable only once, the parallelity of a program is not restricted over the dependency of data.
Parallelity is given then by the amount of executable vertices of the data flow-graph.
Assingment
- Implementation of a parser for a given grammar
- Development of a data structure for intern representation of the data flow graph
- Development of a simple code-generator using POSIX-threads
- Extension and improvement of the code-generator using existing libraries for parallel programming, e.g. threading building blocks
- Generation of example programs, e.g. in the area of signal-processing
- experimental comparison of the code-generators and analysis of different execution-models (eager, lazy, static, dynamic and so forth)
- editing and presentation of the results
Goals of the thesis
The goal of the thesis is the implementation and evaluation of a compiler for the parallel execution of realtime-processes based on data flow-graphs. The vertices of the graph match with complex operations, which are implemented in imperativ programming languages like C++. A data flow-graph then can be seen as a model for the coordination of (sequetiell) processes. Models and langauges for process-coordination support the development of parallel applications by seperating the calculation from the communication.
This coarse grained approach reduces the effort of a data flow graph and the related communication-overhead. Further more programs written in inmperative languages could be parallelized with low effort. Therby existing parts of the programm can be reused. This enables to merge the benefits of imperativ languages and data flow-graphs.
We offer
- comfortable working-environment, as well as a good equipped Computer-infrastructur
- personal and engaged supervision
- directly access to the hardware of the target-plattform (Cell-Blade-Systeme von IBM)
Profil of requirements
- intermediate diploma of Electro- and Informationstechnics or (technical) computer sience
- fundamental knowledgment in system-oriented programming
- Knowledge in the programminglanguage C
- competence to work autonomous and creative
Contact
Stefan Lankes
Chair for Operating Systems (LfBS), RWTH Aachen
Modulbau Kopernikusstraße, D-52074 Aachen
Tel.: +49 241 80 25162
E-Mail: lankes@lfbs.rwth-aachen.de
|
|
|