- Le Global Interpreter Lock (GIL) de Python a longtemps été l’un des principaux obstacles à l’amélioration des performances des programmes utilisant plusieurs threads.
- En octobre 2021, Sam Gross a présenté une version de démonstration de Python sans GIL, qui a d’abord suscité un accueil enthousiaste, mais sans avancée majeure pendant plus d’un an.
- Le Python Steering Council a désormais annoncé sa volonté d’intégrer la fonctionnalité no-GIL.
- Lancé à la mi-2021, le projet Faster CPython se concentre sur l’amélioration des performances mono-thread de l’interpréteur Python.
- Lors de la PyCon de cette année, deux membres de l’équipe Faster CPython ont présenté les stratégies utilisées pour améliorer les performances de l’interpréteur.
- En janvier 2023, le développeur principal Łukasz Langa a publié la première version du PEP 703 rédigé par Gross (« Making the Global Interpreter Lock Optional in CPython »).
- La communauté Python cherche à éviter une transition chaotique comme celle de Python 2 vers Python 3. Toute modification supprimant le GIL devra rester compatible avec le code qui n’y est pas préparé.
- Le 14 juin, l’équipe Faster CPython a accentué la pression pour qu’une décision soit prise sur la fonctionnalité no-GIL.
- Le 28 juillet, Thomas Wouters, membre du conseil, a annoncé que le conseil avait accepté le PEP 703, même si les modalités précises de cette acceptation restent encore à définir.
- Le plan consiste à introduire une version no-GIL de l’interpréteur afin d’identifier tous les composants manquants, puis à les corriger avant que no-GIL ne devienne la version par défaut et finale de Python.
- La transition vers une version no-GIL devrait prendre environ cinq ans, avec la promesse de ne pas répéter les erreurs du passé.
- Cet article explique comment accélérer les boucles for/foreach à l’aide de la programmation parallèle de .NET lorsque les données sont « embarrassingly parallel ».
- L’article s’interroge aussi sur la viabilité à long terme du maintien des performances mono-thread de Python, certains estimant qu’une surcharge inévitable et une complexité accrue finiront par dégrader les performances.
- L’article revient sur la transition de Python 2 vers Python 3, marquée par l’absence de compatibilité entre les deux versions.
- L’auteur soutient que certains avaient anticipé l’impact de l’incompatibilité de Python 3 avec Python 2, contrairement à l’idée largement répandue, et partage un lien vers un billet de blog de 2007.
- L’auteur souligne l’importance des leçons tirées de la transition de Python 2 vers Python 3 afin d’éviter des problèmes similaires à l’avenir.
- L’article conclut en reconnaissant la clairvoyance de ceux qui avaient anticipé les difficultés de la transition de Python 2 vers Python 3.
1 commentaires
Discussion sur Hacker News