[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