1 points par GN⁺ 2023-08-19 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2023-08-19
Discussion sur Hacker News
  • Discussion d’un article sur la suppression du Global Interpreter Lock (GIL) et le projet visant à rendre CPython plus rapide.
  • Certains commentateurs estiment que l’article ne met pas suffisamment en avant les avantages de la suppression du GIL et qu’il penche davantage du côté des « anti-GIL ».
  • Le travail de Sam Gross sur le projet no-GIL est salué pour sa grande qualité et les gains de performance qu’il apporte.
  • La communauté a montré un fort intérêt pour le projet, et le comité de pilotage prévoit d’accepter la PEP 703, la proposition liée au projet.
  • Certains commentateurs expriment des inquiétudes quant au fait que la suppression du GIL puisse avoir un impact négatif sur le code Python multithread.
  • La décision de faire avancer le projet en mode test semble raisonnable, mais des inquiétudes subsistent sur la nécessité de ressources supplémentaires en cas de bugs potentiels et de difficultés.
  • Certains commentateurs pensent que supprimer le GIL serait une erreur, car cela entraînerait un coût en performances et détournerait l’attention d’autres améliorations potentielles.
  • D’autres proposent de privilégier les performances en mono-thread et d’ajouter des processus virtuels avec un mécanisme clair de partage de mémoire.
  • L’avancement du projet par Sam Gross est salué et, même si le chemin vers un Python sans GIL sera long et difficile, il apparaît comme une évolution positive.
  • Des inquiétudes existent concernant la garantie de la correction des bases de code existantes et l’augmentation du coût de maintenance si GIL/no-GIL devient une option de compilation.
  • La communauté Python est saluée pour sa transparence et la qualité de sa gouvernance, mais certaines voix demandent davantage de soutien de la part de l’industrie technologique au regard de la valeur qu’elle tire de Python.
  • Certains commentateurs s’interrogent sur l’acceptabilité de la possibilité que le code mono-thread devienne 15 à 20 % plus lent à la suite du projet.