in

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

O estudo comparou Python, C++ e Go na solução do problema N-queens.

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.

Segundo estudo, o tempo de execução do Python está próximo das linguagens C++ e Go
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

Escrito por Leonardo Santana

Astrônomo amador, eletrotécnico e apaixonado por TI desde o século passado.

Toshiba diz que criou um algoritmo que supera computadores quânticos usando hardware padrão de silício

Toshiba diz que criou um algoritmo que supera computadores quânticos usando hardware padrão de silício

Você já experimentou o Kaisen Linux? Uma distribuição para recuperação de sistemas!

Você já experimentou o Kaisen Linux? Uma distribuição para recuperação de sistemas!