28 Nov: Correctness of Speculative Optimizations with Dynamic Deoptimization

  • Date: November 28th, 11am
  • B31
  • Speakers:
    • Olivier Flückiger (Northeastern University, US)
    • Gabriel Scherer (Parsifal, INRIA Saclay, France)


  Correctness of Speculative Optimizations with Dynamic Deoptimization


  In the talk we will not assume previous knowledge of JIT   compilation.

  High-performance dynamic language implementation make heavy use of   speculative optimizations to achieve speeds close to statically   compiled languages. These optimizations are typically implemented by   a just-in-time compiler that generates code optimized under a set of   assumptions about the state of the program and its environment. In   certain cases, a program may finds itself executing code compiled   under assumptions that have become invalid, the language   implementation must, then, execute a bailout procedure that exits   the speculatively optimized code region. Effectively, the   implementation must deoptimize the program on-the-fly; this entails   finding a corresponding code region that does not rely on invalid   assumptions, translating program state to that expected by the   target code, and transferring control. The procedure is sometimes   called on-stack-replacement as it entails modifying stack frames,   and in some cases, synthesizing new ones for inlined   functions. Reasoning about the correctness of speculative   optimizations is challenging because the optimized code is not   equivalent to the source program. The main benefit of speculative   optimization is to entirely remove low-likelihood code   paths. Soundness is only recovered when the bailout mechanism is   taken into account, but even then, it is necessary to be able to   recreate the program state exactly as expected by the unoptimized   program.

  The presented work, joint work with Ming-Ho Yee, Aviral Goel, Amal   Ahmed and Jan Vitek at Northeastern University, looks closely at the   interaction between compiler optimization and deoptimization. We   demonstrate that reasoning about speculative optimizations is   surprisingly easy when assumptions are reified in the intermediate   representation. To this end we present a model intermediate   representation (IR) that stands in for the high-level IR of   a compiler for a dynamic language. Our IR models core difficulties   of speculative optimization, such as interleaving assumptions and   optimizations, and the interaction with inlining. Our formalization   stays at the IR level, thus abstracting orthogonal issues such as   code generation and self mutation. We describe a set of common   optimizations (constant folding, unreachable code elimination, and   function inlining) and prove them correct in presence of speculative   assumptions

Posted by admin at 27 November 2017, 8:04 am link

[JOB] Engineer 1 year: Pharo IoT platform

Inria RMoD are looking for a full-time engineer for helping with developing Pharo in the context of IoT. The focus of this job is "Pharo on embedded and mobile devices for the internet of things"

With Pharo, we have developed over the last two years an interactive, remote development environment. It allows embedded, headless software running on typical raspberry pi class hardware to be developed and debugged in an interactive way. It allows programmers to explore and change running headless embedded programs from their desktop development machine.

The next step will be to extend this infrastructure to cover the use case of industrial use: Deployment. We want to build a middle-ware to manage, authenticate and script deployed Pharo embedded installations.

The engineer will help to develop the Pharo IoT infrastructure, especially with a focus on industrial use:

  • Improve Pharo for a platform with an industrial focus.
  • Work on a middleware to manage deployed Pharo instances.
  • Realize two small demos: First, as an industrial IoT example, a demo deployed on 20+ devices. Demo 2: Pharo deployed on multiple mobile autonomous robots.
  • Help with creating a website for PharoIOT.

We are looking for a candidate with some prior experience with Pharo.

In addition:

  • Knowledge in Dynamic Languages (Pharo is a plus but not required)
  • Experience with embedded development is a plus but not required
  • English

Work in a research lab, but no paper writing, no teaching, no administration. In addition:

  • Centrally located (one hour from Paris, 1h20 from London, 35 min from Brussels)
  • Try a lot of good beer (our office is just 10km from the border to Belgium)
  • Program with Pharo all day!
  • Lille is an active city but not expensive (lot of students...), centrally located with good connections by train to everywhere (including CDG and Brussels airports).
  • Duration: 12 Month
  • Starting date: Feb or March 2018
  • Salary: 2600-3200 euros brut / month, depending on experience
  • Explanation Salary: french brutto = money after social charges before income tax, which is max one month income payed yearly, depending on family situation (can be 0 for a family with kids). In addition, social charges are payed by the employer (higher rate than e.g. germany), leading to ~ 56000 Euros cost to the employer before any taxes/social charges.
  • Location: Lille (no remote job possible))

More about

Do not hesitate to contact us for more information.

Posted by admin at 20 October 2017, 12:14 pm link

[Job]Phd]From Relational to NoSQL databases

We are looking to fill a PhD position.

The candidate should:

  • hold a Master degree in Computer Science
  • be fluent in English (French is an advantage but not required)
  • have good programming skills

Experience with DSLs, Models, code analysis, relational and NoSQL databases... is a plus.

The goal of this work is to provide methods and tools to translate relational databases into NoSQL ones. This migration implies more than just a language translation, since the used philosophy and paradigm are different.

Due to the very large amount of data that some companies have to deal with, traditional relational database, generally conceived to work on unique computers have met scalability issues. NoSQL databases have emerged to work on distributed hardware architecture and deal with very large amount of data. Strong relational structure disappears to let place to very quick access. Data are no more gathered in tables that are joined in query, but in aggregates that correspond to different ways the data are frequently used or simply without schema and the work is let to the applications.

The plan is to:

  • Analyse the current state of tools and languages in the context of NoSQL database management systems.
  • Provide mechanism / tools to understand the current relational schema of the database.
  • Provide mechanism / tools to understand how data are used by the applications because certain NoSQL database structure depends on the way data are used.
  • Realize prototypes potentially with Moose in Pharo and in Softeam modelling platform (in Java)

Results will be submitted to be publish in international conferences and journals.

The work is a collaboration between Inria Lille (RMOD) and Softeam (Paris).

  • Duration: 3 years
  • Salary: Minimal salary (should be discussed with the company) will 23 484€ brut per year (corresponding to 1507€ net per month)
  • Employer: Softeam (the PhD will be in the context of a CIFRE PhD – i.e., with constant contact with the company and the RMOD research team)

More information: contact or


Softeam group is one of the 50 biggest Digital Services Company, realising a turnover of around 80 Millions of euros. It counts over 850 consultants in France and abroad.

Softeam, through its R&D department, is actively involved in research and development activities in the field of the software and system engineering and in particular in the Model Driven Engineering (MDE). Softeam R&D department actively participates in various national and European collaborative research projects as well as Model Driven Architecture (MDA), Software Process Engineering Metamodel (SPEM), UML2, QVT, BPMN2 et UPMS (SOAPro).

Inria Lille

Inria is a research institute dedicated to promoting ‘scientific excellence in the service of technology transfer and society as a whole’. Inria employs a staff of 2700, drawn from the world’s most prestigious universities, to address the latest challenges in computer science and mathematics. The Institute operates eight Research Centres throughout France.

The Inria Lille - Nord Europe Research Centre was founded in 2008 and employs a staff of 360, including 300 scientists working in sixteen research teams. Recognised for its outstanding contribution the socio-economic development of the Nord - Pas-de-Calais Region, the Inria Lille - Nord Europe Research Centre undertakes research in the field of computer science in collaboration with a range of academic, institutional and industrial partners.

The strategy of the Centre is to develop an internationally renowned centre of excellence with a significant impact on the City of Lille and its surrounding area. It works to achieve this by pursuing a range of ambitious research projects in such fields of computer science as the intelligence of data and adaptive software systems. Building on the synergies between research and industry, Inria is a major contributor to skills and technology transfer in the field of computer science.


The goal of RMoD is to support remodularization and development of modular object-oriented applications. We tackle this objective from two complementary perspectives: reengineering, and constructs for dynamic languages. In the context of remodularization, we we propose new analyses to understand and restructure large applications (specialized metrics, adapted visualizations). Works are validated using Moose, a metaplatform to analyse large applications.

Posted by admin at 16 October 2017, 3:42 pm link

PhD Defense Clément Bera 15/09

  • Titel: Sista : A Metacircular Architecture for Runtime Optimisation Persistence
  • Clément BERA
  • Friday, 15th September, 14h, INRIA Lille - Bâtiment B


  • Directeurs de thèse : Stéphane Ducasse et Marcus Denker
  • Rapporteurs : Gaël Thomas et Laurence Tratt
  • Examinateurs : Theo D'Hondt et Elisa Gonzales Boix


Most high-level programming languages run on top of a virtual machine (VM) to abstract away from the underlying hardware. To reach high-performance, the VM typically relies on an optimising just-in-time compiler (JIT), which speculates on the program behavior based on its first runs to generate at runtime efficient machine code and speed-up the program execution. As multiple runs are required to speculate correctly on the program behavior, such a VM requires a certain amount of time at start-up to reach peak performance. The optimising JIT itself is usually compiled ahead-of-time to executable code as part of the VM.

The dissertation proposes Sista, an architecture for an optimising JIT, in which the optimised state of the VM can be persisted across multiple VM start-ups and the optimising JIT is running in the same runtime than the program executed. To do so, the optimising JIT is split in two parts. One part is high-level: it performs optimisations specific to the programming language run by the VM and is written in a metacircular style. Staying away from low-level details, this part can be read, edited and debugged while the program is running using the standard tool set of the programming language executed by the VM. The second part is low-level: it performs machine specific optimisations and is compiled ahead-of-time to executable code as part of the VM. The two parts of the JIT use a well-defined intermediate representation to share the code to optimise. This representation is machine-independent and can be persisted across multiple VM start-ups, allowing the VM to reach peak performance very quickly.

To validate the architecture, the dissertation includes the description of an implementation on top of Pharo Smalltalk and its VM. The implementation is able to run a large set of benchmarks, from large application benchmarks provided by industrial users to micro-benchmarks used to measure the performance of specific code patterns. The optimising JIT is implemented according to the architecture proposed and shows significant speed-up (up to 5x) over the current production VM. In addition, large benchmarks show that peak performance can be reached almost immediately after VM start-up if the VM can reuse the optimised state persisted from another run.

Posted by admin at 12 September 2017, 2:11 pm link

Talk Sept 14th: Agile Software Engineering

Talk Sept 14th: Agile Software Engineering — Opportunities for Industry 4.0

Prof. Serge Demeyer (University of Antwerp) is joining us for four months as part of his sabbatical leave. He will present his plans and (some of) his recent research on

Thursday, September 14th, 14:00 to 15:00 Room B31

Title: Agile Software Engineering — Opportunities for Industry 4.0


Industry 4.0 is the current trend of automation and data exchange in manufacturing technologies. This trend forces the manufacturing industry to switch to a more agile way of working, hence software engineering teams can and should take a leading role therein. This talk will explore the state-of-the-art in agile software development and the opportunities this may present for Industry 4.0. Consequently it will address questions like: Will our test suite detect critical defects early ? Where should we fix a defect ? How long will it take to fix defects ? Which team members get frustrated ? Can we use bots to process easy issues ?


Serge Demeyer is a professor at the University of Antwerp and the spokesperson for the ANSYMO (Antwerp System Modelling) research group. He directs a research lab investigating the theme of ”Software Reengineering” (LORE - Lab On REengineering). Serge Demeyer is a spokesperson for the NEXOR interdisciplinary research consortium and an affiliated member of the Flanders Make Research Centre. In 2007 he received a “Best Teachers Award” from the Faculty of Sciences at the University of Antwerp and as a consequence remains very active in all matters related to teaching quality. His main research interest concerns software evolution, more specifically how to strike the right balance between reliability (striving for perfection) and agility (optimising for improvements). He is an active member of the corresponding international research communities, serving in various conference organization and program committees. He has written a book entitled “Object-Oriented Reengineering” and edited a book on “Software Evolution”. He also authored numerous peer reviewed articles, many of them in top conferences and journals.

Post Scriptum:

To ensure that participants can control the sugar level in their arteries, Belgian chocolates will be provided.

Posted by admin at 1 September 2017, 2:28 pm link
<< 1 2 3 4 5 6 7 8 9 10 >>