Apresentado o Pyston-lite, um compilador JIT para o Python padrão

Os desenvolvedores do projeto Pyston, que oferece uma implementação de alta performance da linguagem Python utilizando tecnologias modernas de compilação JIT, apresentaram a extensão Pyston-lite com uma implementação do compilador JIT para CPython. Enquanto o Pyston é um desdobramento da base de código do CPython e se desenvolve de forma independente, o Pyston-lite é estruturado como uma extensão universal destinada a ser conectada ao interpretador padrão Python (CPython).

O Pyston-lite permite utilizar as tecnologias básicas do Pyston sem substituir o interpretador, através da instalação de uma extensão adicional utilizando os gerenciadores de pacotes PIP ou Conda. O Pyston-lite já está disponível nos repositórios PyPI e Conda, e para a instalação é suficiente executar o comando "pip install pyston_lite_autoload" ou "conda install pyston_lite_autoload -c pyston". Dois pacotes foram oferecidos: pyston_lite (o JIT propriamente dito) e pyston_lite_autoload (que realiza a substituição automática do JIT ao iniciar o processo Python). Também é possível gerenciar programaticamente a ativação do JIT a partir do aplicativo sem instalar o módulo autoload, utilizando a função pyston_lite.enable().

Embora o Pyston-lite não cubra todas as otimizações disponíveis no Pyston, seu uso permite um aumento de desempenho de cerca de 10-25% em comparação com o Python 3.8 padrão. No futuro, está previsto a migração da maioria das otimizações presentes no Pyston para o Pyston-lite, bem como a ampliação das versões do CPython suportadas (a primeira versão suporta apenas o Python 3.8). Entre os planos mais abrangentes, destaca-se a colaboração com a equipe do CPython para a implementação de novas APIs para JIT, permitindo um controle mais completo sobre a execução do Python. A inclusão das mudanças sugeridas na ramificação do Python 3.12 está sendo discutida. Idealmente, considera-se a possibilidade de transferir toda a funcionalidade do Pyston para a extensão, o que evitaria a necessidade de manter um fork próprio do CPython.

Além do Pyston-lite, o projeto também lançou uma atualização do pacote completo Pyston 2.3.4, que traz novas otimizações. Nos testes de pyperformance, a versão 2.3.4 é cerca de 6% mais rápida que a 2.3.3. O ganho de desempenho geral em comparação com o CPython é estimado em 66%.

Além disso, é possível observar as otimizações em desenvolvimento no ciclo de produção do CPython 3.11, que, em alguns testes, permitiram aumentar o desempenho em 25%. Por exemplo, no CPython 3.11, a eficiência do cache do estado do bytecode dos módulos básicos foi aprimorada, resultando em uma aceleração de 10-15% no tempo de inicialização dos scripts. A chamada de funções foi significativamente acelerada e foram adicionados interpretadores rápidos especializados para operações de tipo. Também está em andamento a transferência de algumas otimizações preparadas pelos projetos Cinder e HotPy.

Além disso, dentro do projeto nogil, está sendo desenvolvido um modo experimental de construção do CPython sem o bloqueio global do interpretador (GIL, Global Interpreter Lock), que impede o acesso paralelo a objetos compartilhados de diferentes threads, dificultando a paralelização de operações em sistemas multicore. Como outra alternativa para resolver o problema do GIL, está se desenvolvendo a possibilidade de vincular um GIL separado a cada interpretador que roda dentro do processo (um processo pode executar vários interpretadores, mas a eficiência da execução paralela deles esbarra no GIL).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster