1 pontos por GN⁺ 2023-08-19 | 1 comentários | Compartilhar no WhatsApp
  • O Global Interpreter Lock (GIL) do Python tem sido um dos principais obstáculos para melhorar o desempenho de programas que usam várias threads.
  • Em outubro de 2021, Sam Gross apresentou uma versão de prova de conceito do Python sem GIL, que inicialmente recebeu uma reação entusiasmada, mas por mais de um ano não houve grande avanço.
  • O Python Steering Council agora anunciou disposição para integrar o recurso no-GIL.
  • O projeto Faster CPython, iniciado em meados de 2021, está focado em melhorar o desempenho single-thread do interpretador Python.
  • Na PyCon deste ano, dois membros da equipe do Faster CPython apresentaram as estratégias usadas para melhorar o desempenho do interpretador.
  • Em janeiro de 2023, o desenvolvedor principal Łukasz Langa publicou a primeira versão da PEP 703 ("Uso opcional do Global Interpreter Lock no CPython"), escrita por Gross.
  • A comunidade Python quer evitar uma transição confusa como a do Python 2 para o 3. Qualquer mudança para remover o GIL precisa ser compatível com código que não foi preparado para isso.
  • Em 14 de junho, a equipe do Faster CPython aumentou a pressão pedindo uma decisão sobre o recurso no-GIL.
  • Em 28 de julho, o membro do conselho Thomas Wouters anunciou que o conselho havia aceitado a PEP 703, embora os detalhes dessa aceitação ainda estejam sendo ajustados.
  • O plano é introduzir uma versão do interpretador com no-GIL para identificar todos os componentes ausentes, resolvê-los e, depois disso, fazer do no-GIL o padrão e a versão final do Python.
  • A transição para uma versão no-GIL deve levar cerca de 5 anos, com a promessa de não repetir os erros do passado.
  • Este artigo discute como acelerar loops for/foreach usando programação paralela do .NET quando se tem dados "embaraçosamente paralelizáveis".
  • O texto também discute a viabilidade de longo prazo de manter o desempenho single-thread do Python, com alguns argumentando que o overhead inevitável e o aumento da complexidade acabarão reduzindo o desempenho.
  • O artigo reflete sobre a transição do Python 2 para o Python 3, em que não havia compatibilidade entre as duas versões.
  • O autor argumenta que o impacto da incompatibilidade do Python 3 com o Python 2 era previsível para algumas pessoas, ao contrário da percepção popular, e compartilha um link para um post de blog de 2007.
  • O autor enfatiza a importância das lições aprendidas na transição do Python 2 para o Python 3, destacando isso para evitar problemas semelhantes no futuro.
  • O texto conclui reconhecendo a visão de quem previu os desafios da transição do Python 2 para o Python 3.

1 comentários

 
GN⁺ 2023-08-19
Comentários do Hacker News
  • Discussão do artigo sobre a remoção do Global Interpreter Lock (GIL) e o projeto para tornar o CPython mais rápido.
  • Alguns comentaristas acreditam que o artigo não enfatiza suficientemente os benefícios de remover o GIL e está mais inclinado para o lado “contra o GIL”.
  • O trabalho de Sam Gross no projeto no-GIL é elogiado por sua alta qualidade e pelos ganhos de desempenho que traz.
  • A comunidade demonstrou grande interesse no projeto, e o comitê diretor planeja aceitar a PEP 703, proposta relacionada ao projeto.
  • Alguns comentaristas expressam preocupação de que a remoção do GIL possa afetar negativamente o código Python multithread.
  • A decisão de levar o projeto adiante em modo de teste parece razoável, mas há preocupações de que mais recursos serão necessários caso surjam bugs e dificuldades potenciais.
  • Alguns comentaristas acreditam que remover o GIL é um erro, pois pode causar penalidade de desempenho e tirar espaço de outras melhorias potenciais.
  • Outros sugerem priorizar o desempenho em thread única e adicionar processos virtuais com mecanismos claros de compartilhamento de memória.
  • O avanço do projeto de Sam Gross é elogiado e, embora o caminho até um Python sem GIL seja longo e difícil, parece ser um desenvolvimento positivo.
  • Há preocupações sobre o aumento do custo de manutenção para garantir a correção das bases de código existentes e transformar GIL/no-GIL em uma opção de compilação.
  • A comunidade Python é elogiada por sua transparência e boa governança, mas há vozes pedindo mais apoio da indústria de tecnologia, considerando o valor que ela extrai do Python.
  • Alguns comentaristas questionam se seria aceitável a possibilidade de que, como resultado do projeto, o código single-thread fique 15–20% mais lento.