[HiPEAC-announce] Postdoc at INRIA: Reconciling dynamic code generation with static predictability guarantees

Erven Rohou erven.rohou at irisa.fr
Tue Feb 3 14:59:55 CET 2009


The ALF research group at INRIA Rennes (http://www.irisa.fr/caps) has an opening 
for a Postdoc position.


Reconciling dynamic code generation with static predictability guarantees

Context
Multicore processors have now become mainstream for both general-purpose and 
embedded computing. In the near future, every hardware platform will feature 
thread level parallelism. At the same time, one can expect that legacy 
sequential codes will be progressively replaced by parallelized versions or 
newly developed parallel applications. In order to execute efficiently these 
parallel applications on a large spectrum of parallel hardware platforms, the 
computer science community has to invent a new form of application portability 
that will replace the traditional binary compatibility. Processor virtualization 
can be used to address this portability issue. Applications are no longer 
directly compiled in the final native code, but in a target independent bytecode 
format. The final native code generation is delayed till the executing target is 
known. It can even occur at run-time through just-in-time compilation (JIT). JIT 
can leverage all dynamic information on the application execution context: 
actual target processor, current machine load, input values, etc.
Many applications running on multicore platforms, for instance multimedia 
applications, feature (soft or hard) real-time requirements. Knowing the 
worst-case execution time (WCET) of pieces of software is required to 
demonstrate that the applications meets is time constraints, in all situations 
including the worst case. Many WCET estimation methods have been defined, and 
operate through static code analysis, measurements or a combination of both. A 
static WCET analysis tool should be able to work at a high-level to determine 
the structure of a program's task, working either on a piece of source code or 
disassembled binary executable. But it should also work at a low-level, using 
timing information about the real hardware that the task will execute on, with 
all its specific features. By combining those two kinds of analysis, the tool 
should give an upper bound on the time required to execute a given task on a 
given hardware platform.


Mission
The complexity of architectures (pipeline, caches, …) combined with the 
complexity of applications (control flow, …) tend to make WCET estimation 
techniques pessimistic. As a consequence, timing constraints are met but 
real-time systems are often over-dimensioned, resulting in large discrepancies 
between estimated and actual executions times. The difference between the WCET 
and the actual execution time is known as slack time.
On the other hand, while the JIT compilation technology provides a significant 
amount of flexibility and performance, it also comes at the cost of high 
unpredictability, usually not acceptable in the world of real-time systems.
The goal of this post doc is to investigate how to reconcile the benefits of 
virtualization and just-in-time compilation, with the worst-case execution time 
guarantees obtained by static analysis.
One possible research direction is to monitor the slack at runtime, and to 
exploit it to recompile or reoptimize the code. Depending on the amount of time 
available, different optimizations can be designed, so as to improve power 
consumption, performance, etc.


Skills and profile
   PhD in computer science
   Required experience: compilation
   Appreciated experience: virtual machines, JITs, real-time systems/WCET estimation


References
- Marco Cornero, Roberto Costa, Ricardo Fernández Pascual, Andrea C. Ornstein, 
and Erven Rohou. An experimental environment validating the suitability of CLI 
as an effective deployment format for embedded systems. In Proceedings of the 
2008 International Conference on High Performance and Embedded Architectures and 
Compilers (HiPEAC'08), pages 130-144, Göteborg, Sweden, January 2008. Lecture 
Notes in Computer Science 4917.
- Reinhard Wilhelm, Jakob Engblom, Andreas Ermedahl, Niklas Holsti, Stephan 
Thesing, David B. Whalley, Guillem Bernat, Christian Ferdinand, Reinhold 
Heckmann, Tulika Mitra, Frank Mueller, Isabelle Puaut, Peter P. Puschner, Jan 
Staschulat, Per Stenström: The worst-case execution-time problem - overview of 
methods and survey of tools. ACM Trans. Embedded Comput. Syst. 7(3): (2008)
- G. Bernat, A. Burns, and A. Wellings. Portable worst-case execution time 
analysis using java byte code. In Proc. 12th Euromicro Conference on Real-time 
Systems, Jun 2000.
- Erik Yu-Shing Hu, Andy J. Wellings, Guillem Bernat: Gain Time Reclaiming in 
High Performance Real-Time Java Systems. ISORC 2003: 249-256


Contacts: erven.rohou at irisa.fr or puaut at irisa.fr



More information about the HiPEAC-announce mailing list