Segundo estudo, o tempo de execução do Python está próximo das linguagens C++ e Go

Imagem: Reprodução | Fossbytes.

Python é a linguagem de programação mais preferida para Machine Learning e Inteligência Artificial, mas também é a menos preferida por ser lenta na solução de certos problemas que envolvem loops. Para contestar esse fato, os pesquisadores do EPFL Computer Vision Laboratory publicaram um relatório no qual apresentaram a competitividade do Python em relação ao C++ e ao Go resolvendo o popular quebra-cabeça N-queens.

Comparando Python, C++ e Go na solução do problema N-queens

O problema N-queens envolve um arranjo N de rainhas no tabuleiro de xadrez NxN. Por exemplo, nenhuma rainha pode atingir outra rainha (duas rainhas não podem aparecer no mesmo caminho horizontal, vertical ou diagonal).

Os pesquisadores resolveram o quebra-cabeça N-queens usando métodos sequenciais e paralelos escritos em C++, Python e Go. Eles argumentaram que, embora o C++ vença a corrida seguida pelo Go, o Python também se aproxima uma vez compilado usando o compilador Numba.

Bjarne Stroustrup, o criador do C++. Imagem: YouTube.

Para demonstrar o resultado, eles usaram a placa 8×8 e 10×10 padrão para resolver. Além disso, eles executaram todas as versões de código em um Intel Core i7 Quad Core de 2,9 GHz no Catalina OS.

Além disso, eles reexecutaram todo o código em uma CPU Intel Xeon X5690 executando o Ubuntu 18.04, e a classificação geral das implementações permaneceu inalterada.

Resultado do processamento sequencial e paralelo

Um algoritmo recursivo é o melhor método para calcular completamente o problema N-queens. A solução se baseava no fato de que não há duas rainhas em conflito uma com a outra, pois não devem estar na mesma linha, na mesma coluna ou na mesma diagonal.

No processamento sequencial, a implementação em Python, Go e C++ indicava que o Python era o mais lento. Mas quando o mesmo código foi compilado usando o compilador Numba Python, o C++ ainda venceu (com o Go mais lento em 6%) e o Numba Python mais lento em 12%.

Por outro lado, ao implementar essas mesmas linguagens usando processamento paralelo, eles categorizaram o Python em Para e Pool com base em duas abordagens para executar o Python em uma CPU multicore.

O resultado demonstrou que, em paralelismo, o código compilado para Para Numba exibe melhorias significativas e se aproxima do C++ e do Go. Além disso, o Python ultrapassou o Go para valores maiores, mas o C++ ainda é mais rápido.

No geral, o estudo mostra que a lentidão do Python pode ser amplamente superada usando o compilador Numba. Dessa forma, fica claro que esse compilador oferece desempenho comparável ao do C++, o qual é mais rápido que o Go.

Fonte: Fossbytes

Share This Article
Follow:
Profissional da área de manutenção e redes, astrônomo amador, eletrotécnico e apaixonado por TI desde o século passado.
Sair da versão mobile