HarmonyFidelisHarmonyFidelis
Connexion
ActualitésGrands projetsActeursAcadémie

Python 3.13 : le GIL devient optionnel (mode free-threading expérimental)

La version 3.13 de Python introduit le mode Free-threaded, permettant l'exécution de threads en véritable parallèle sur les architectures multicœurs.

Source: peps.python.org

Python 3.13 : le GIL devient optionnel (mode free-threading expérimental)

La fondation Python a publié Python 3.13 au début du mois d'octobre 2024. L'évolution technique majeure de cette version est l'introduction du mode « Free-threaded » défini dans l'implémentation de la PEP 703, qui désactive le GIL (Global Interpreter Lock).

En clair

Jusqu'à présent, un interpréteur Python fonctionnait comme une salle où circule un micro unique : plusieurs threads pouvaient coexister, mais un seul prenait la parole à la fois, car le GIL leur interdisait d'exécuter du bytecode simultanément. Sur une machine à plusieurs cœurs, cela revenait à laisser une partie de la puissance disponible inutilisée dès qu'un programme cherchait à calculer en parallèle. Python 3.13 rend ce verrou optionnel : l'interpréteur peut désormais être compilé de façon à répartir la charge de calcul sur tous les cœurs physiques disponibles, sans créer de blocage. La réserve est de taille — la fonctionnalité est proposée à titre expérimental, le GIL reste actif par défaut, et les bibliothèques développées en C doivent être adaptées. Il s'agit donc du début d'une transition, pas d'un basculement immédiat.

Fiche de version

ParamètreValeur
VersionPython 3.13
Éditeurfondation Python
Publicationdébut du mois d'octobre 2024
Évolution technique majeureintroduction du mode « Free-threaded »
SpécificationPEP 703 — Making the Global Interpreter Lock Optional in CPython
Effet techniquedésactivation du GIL (Global Interpreter Lock)
Mise en œuvrecompilation de l'interpréteur par le développeur
Statutexpérimental — le GIL reste actif par défaut
Prérequis écosystèmeadaptation des bibliothèques développées en C
Portée viséeexécution de threads en véritable parallèle sur les architectures multicœurs

Explication technique

1. Ce que verrouillait le GIL — Historiquement, le GIL empêchait plusieurs threads d'un même interpréteur Python d'exécuter du bytecode simultanément.

2. Le coût sur les processeurs multicœurs — Cette contrainte limitait fortement les performances des applications en parallèle sur des processeurs multicœurs.

3. Ce que permet le mode Free-threaded — Avec cette version, les développeurs ont la possibilité de compiler l'interpréteur de manière à répartir la charge de calcul sur tous les cœurs physiques disponibles, sans créer de blocage.

Avant et après

AspectInterpréteur avec GILMode Free-threaded (Python 3.13)
Exécution du bytecodeun seul thread d'un même interpréteur à la foisthreads en véritable parallèle
Cœurs exploitésperformances des applications en parallèle fortement limitées sur les processeurs multicœurscharge de calcul répartie sur tous les cœurs physiques disponibles
Blocageverrou global sur l'exécution du bytecodeaucun blocage introduit
Activationcomportement par défautcompilation dédiée de l'interpréteur, à titre expérimental
Bibliothèques développées en Ccomportement historiqueadaptation requise

Chaîne causale

GIL présent historiquement dans l'interpréteur → un seul thread exécute du bytecode à la fois → performances des applications en parallèle fortement limitées sur les processeurs multicœurs → PEP 703 : rendre le verrou optionnel → Python 3.13 introduit le mode Free-threaded → l'interpréteur peut être compilé pour répartir le calcul sur tous les cœurs physiques disponibles → adaptation des bibliothèques développées en C → transition de l'écosystème Python vers une pleine optimisation multicœurs

Limites et portée

Bien que cette fonctionnalité soit proposée à titre expérimental (le GIL reste actif par défaut) et requiert l'adaptation des bibliothèques développées en C, cette sortie entame la transition de l'écosystème Python vers une pleine optimisation multicœurs.

Sources

Références vérifiées lors de l'audit factuel d'août 2026 : ce sont les pages
contre lesquelles les affirmations de ce bulletin ont été confrontées.

  1. PEP 703 — Making the Global Interpreter Lock Optional in CPython
  2. What's New In Python 3.13 — documentation officielle
  3. Python 3.13.0 release — python.org