2022-05466 - Intern in Operating Systems
Le descriptif de l’offre ci-dessous est en Anglais

Type de contrat : Stage

Niveau de diplôme exigé : Bac + 4 ou équivalent

Fonction : Stagiaire de la recherche

Mission confiée

Synchronization primitives such as barriers and locks are the building blocks of multithreaded applications on multicore architectures: improving their performance has an impact on the performance and scalability of the majority of today's applications [1]. Meanwhile, the Linux scheduler must solve a complex problem that has both a temporal and a spatial dimension: it has to make very fast decisions at a high frequency in order to decide when and where to place each thread—and has been shown to perform poorly at this task [2]. On modern architectures with a large number of cores, the overhead of synchronization is often a significant bottleneck. While previous research heavily focused on improving the performance of synchronization primitives in multithreaded applications, it was conducted in isolation from research on scheduling algorithms, as the scheduler traditionally considers applications as black boxes, including the synchronization code they use.

We would like to design new synchronization and scheduling algorithms that cooperate to improve the performance of multithreaded applications. As an example, it was shown that when the scheduler is unable to ensure work conservation, some threads are slowed down, and this results in all threads being slowed down when barriers are involved [2]. Making the scheduler aware of stragglers would make it possible to mitigate the problem by e.g., placing them on high-frequency cores or on cores that do not execute concurrent hyperthreads, in order to make them reach barriers faster.

As an intern at Inria, you will research this idea, with the objective to publish the results in top systems conferences such as SOSP, OSDI, USENIX ATC, and EuroSys.

[1] Tudor David, Rachid Guerraoui, Vasileios Trigonakis. Everything you always wanted to know about synchronization but were afraid to ask. Symposium on Operating Systems Principles (SOSP) 2013.

[2] Jean-Pierre Lozi, Baptiste Lepers, Justin Funston, Fabien Gaud, Vivien Quéma, and Alexandra Fedorova. The Linux scheduler: a decade of wasted cores. European Conference on Computer Systems (EuroSys) 2016.

Principales activités

Main activities (5 maximum) :

  • Design and implement algorithms
  • Evaluate the performance of the proposed algorithms
  • Write reports and papers

Additional activities (3 maximum) :

  • Present the work as well as related work
  • Attend seminars, workshops, and/or conferences


  • Thorough understanding of computer science fundamentals including data structures, algorithms, and complexity analysis
  • Good problem-solving skills
  • Knowledge and/or experience in systems/low-level programming
  • Notions of OS design
  • Advanced C programming


  • 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 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