Logo Inria

Research engineer in program compilation and parallelization

Contract type : Fixed-term contract

Level of qualifications required : PhD or equivalent

Fonction : Temporary scientific engineer

Level of experience : From 3 to 5 years

Context

As part of a 5-year national research project, the main role of the engineer recruited will be to contribute to the development of a software platform for dynamic compilation, optimization and parallelization for scientific applications, with the aim of achieving exaflopic performance while focusing on energy efficiency. The originality of the proposed research and engineering work lies in the dynamic aspect, i.e. during the execution of the target application, of program optimization and parallelization analyses and transformations. Such an approach calls for many of the innovations needed to minimize the time and resource costs, and maximize the efficiency, of the strategies developed.

The engineer will collaborate with PhD students and engineers involved in the same national project.

Assignment

Assignments may involve one or more of the following objectives:

  • on-the-fly optimization and parallelization of compute kernels, based on dynamic sample analysis at runtime, using a speculative approach.
  • dynamic generation of several versions of compute kernels by applying efficient optimization transformations according to execution contexts.
  • dynamic generation of parallel tasks according to available hardware and software resources.

A few years ago, the CAMUS team developed a dynamic system dedicated to speculative polyhedral optimization, called Apollo. This dynamic optimization platform was later extended into a multiple version generation system, where several polyhedral optimization scenarios are evaluated. Apollo is implemented in the form of LLVM analysis and optimization passes and a dynamic part in C++. We plan to use Apollo as the basis for our research and development work.

Main activities

  1. Become familiar with the context of the research work: program analysis, optimization and parallelization techniques, polyhedral model, development of Clang-LLVM compiler passes, parallel task scheduling with OpenMP, performance and energy consumption evaluation.
  2. Contribute to scientific and technical advances in the implementation of the program parallelization and optimization platform.
  3. Collaborate with the team of PhD students and engineers involved in the project.

Skills

The candidate must have a doctorate in computer science and significant experience in compiling, parallelizing and optimizing programs. Experience in developing software tools and compilation passes would be a plus (LLVM).

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave: 7 weeks of annual leave + 10 extra days off due to RTT (statutory reduction in working hours) + possibility of exceptional leave (sick children, moving home, etc.)
  • Possibility of teleworking (after 6 months of employment) and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage

Remuneration

Remuneration will be determined according to degree (with or without thesis) and years of experience:

from €2652.00 to €3353.00 gross per month.