Binary translation and virtualization
Research challenge:
Future heterogeneous multi-core systems will not be able to automatically offer binary compatibility to applications making it harder to develop applications that will run on a wide range of machines. Furthermore, several applications running on a large scale multi-core could cause a substantial performance impact on each other. Virtualization is key to solve these problems. It is used to do resource management, to dynamically adapt and optimize applications, to secure applications, to deal with compatibility problems, to increase reliability, availability and versatility… The basic technique used in virtualization is binary translation.
Latest news
- The presentations from the meeting on virtualisation research between Cambridge University, The University of Manchester and Ghent University are now available.
- The individual presentations from the September'09 EU Virtualisation workshop are now available at Cordis.
- The presentations from our Wrocław cluster meeting are now available.
- On 29 September 2009 the European Commission, in cooperation with the HiPEAC BTV cluster, organised a workshop on Virtualisation in Brussels. The goal was to determine the research challenges for the next 10 years, in order to guide the EC's next Call for Proposals. The meeting report is now available.
Upcoming conferences/workshops
Resources
- Presentations from the Wrocław cluster meeting (October 2009)
- Report from the Workshop on Virtualisation co-organised with the European Commission (September 2009)
- Presentations from the Munich cluster meeting (June 2009)
- Presentations from the Paris cluster meeting (November 2008)
- Presentations from the Barcelona cluster meeting (June 2008)
- Tools developed/maintained by cluster members
- Presentations from the kick-off meeting (January 2008)
Initial research topics:
-
Static binary translation (at link time or at post-link time)
- Scaling compiler algorithms to whole programs
- Cross-ISA optimizations in heterogeneous multi-cores
- Cross-boundary optimization
- Applications of static binary translation: profiling, code obfuscation, code diversification, interactive optimization
- Dynamic binary translation
- Virtual machines or platform virtualization
- Dynamic optimization
- Performance models for applications running in virtual machines
- Security, resource management
Current activities:
- Define and create a common virtualization research platform together with the Compilation Platform cluster
- Developing, maintaining and promoting the use of the Diablo static binary rewriting tool
- Co-design a hardware/software platform from the ground up with virtualisation in mind
- Investigate the usage of virtualisation to deal with hardware variability
- Develop performance models for virtualised workloads
- Create a European research community in binary translation and virtualization.
Past activities:
- Meeting to explore collaborating on virtualisation research between Cambridge University, The University of Manchester and Ghent University (13-15/01/2010)
- Co-organization of Dagstuhl seminar on “Emerging Uses and Paradigms for Dynamic Binary Translation” (26-31/10/2008)
Coordinating partner: GENT
cTuningCC (Collective Tuning Compiler Collection)
cTuning CC is a free, open source compiler collection that combines multiple tools and techniques including MILEPOST GCC, Interactive Compilation Interface (ICI), Continuous Collective Compilation framework (CCC), cTuning web-services and Collective Optimization Database and cBench to enable R&D toward self-tuning, adaptive computing systems based on industrial tools, empirical techniques, transparent collecti
MILEPOST GCC with Interactive Compilation Interface
Collective Benchmark
Collective Optimization Database
Diablo
Diablo is a retargetable link-time binary rewriting framework. While our focus has been mostly on program compaction, binary rewriting has a much broader range of applications: speed optimizations, power consumption optimizations, size optimizations, program obfuscation and watermarking, instrumentation, etc. A binary rewriting framework is also very useful for program analysis and understanding. For instance, Diablo can print out the control flow graph for all functions in a program, annotated with for example liveness information.
