Fedora 23 e 24 surpreendentemente lento com Numpy dot e outras funções

1

Esta questão foi inicialmente perguntada sobre stackoverflow byt foi encontrado fora do tópico, o texto abaixo foi atualizado a partir da postagem inicial com novos detalhes.

Adquiri recentemente um novo PC com um processador i7. Eu instalei o Fedora 24 nele, juntamente com o Python e várias bibliotecas necessárias para programação científica como o Numpy e o Scipy (Numpy versão 1.11.0).

Depois de instalar tudo o que eu precisava, executei alguns códigos de teste (baixados de aqui ) em Para avaliar a velocidade do sistema, em especial:

test_numpy.py que contém:

#!/usr/bin/env    
python    
import numpy
import sys
import timeit

try:
    import numpy.core._dotblas
    print 'FAST BLAS'
except ImportError:
    print 'slow blas'

print "version:", numpy.__version__
print "maxint:", sys.maxint
print

x = numpy.random.random((1000,1000))

setup = "import numpy; x = numpy.random.random((1000,1000))"
count = 5

t = timeit.Timer("numpy.dot(x, x.T)", setup=setup)
print "dot:", t.timeit(count)/count, "sec"

Depois de executar este código, obtenho:

slow blas
version: 1.11.0
maxint: 9223372036854775807
dot: 0.0981109619141 sec

Meu problema é que em PCs muito mais antigos, tenho tempos de execução muito menores para "ponto". Em particular, para um PC Windows mais antigo (2012) com um processador i7, recebo:

FAST BLAS
version: 1.9.1
maxint: 2147483647
dot: 0.0459410942418 sec

E com um PC i7 mais antigo (2013) rodando Linux Mint 18, eu recebo:

slow blas
version: 1.11.0
maxint: 9223372036854775807
dot: 0.0240209579468 sec

Como você pode ver, os PCs mais antigos, em particular o Linux Mint 18, são cerca de 4 vezes mais rápidos ...

Eu mesmo instalei todos esses PCs. Em particular, para o mais recente com o Fedora, usei o python 2.xe 3.x com o pacote numpy: (1) em dnf e (2) compilando-o de fontes (como explicado aqui ). Acrescentarei também que todos os tempos mencionados acima são representativos dos valores obtidos após a execução do código várias vezes, sem qualquer outro processo em execução.

Eu acredito que estou perdendo alguma coisa aqui. Eu não tenho ideia do que fazer para obter desempenhos decentes com meu novo PC ...

(O mesmo problema foi observado em outros PCs recentes com o Fedora 23 e o Mint 18).

Atualizar :

Eu instalei o Ubuntu 16.04 ao invés do Fedora 24 no PC recente mencionado acima. Os tempos de computação para o ponto Numpy foram divididos por 10 e são significativamente menores para os outros testes:

$ python test_numpy.py 
slow blas
version: 1.11.0
maxint: 9223372036854775807
dot: 0.00876359939575 sec
$ python test_scipy.py 
cholesky: 0.00768299102783 sec
svd: 0.304620409012 sec

A única informação que pude encontrar on-line está em uma postagem antiga , mas acho difícil acreditar que esse tipo de bug poderia durar tanto tempo.

    
por Alain 30.09.2016 / 15:55

0 respostas