Первоначально этот вопрос задавался в случае, если байты stackoverflow оказались не по теме, текст ниже был обновлен по сравнению с исходным сообщением с новыми деталями.
Недавно я приобрел новый компьютер с процессором i7. Я установил на него Fedora 24 вместе с Python и несколькими библиотеками, необходимыми для научного программирования, такими как Numpy и Scipy (Numpy версии 1.11.0).
После установки всего необходимого я запустил несколько тестовых кодов (загруженных с Вот), чтобы оценить скорость работы системы, в частности:
test_numpy.py, который содержит:
#!/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"
После запуска этого кода я получаю:
slow blas
version: 1.11.0
maxint: 9223372036854775807
dot: 0.0981109619141 sec
Моя проблема в том, что на гораздо более старых компьютерах время выполнения «точки» намного меньше. В частности, для более старого (2012 г.) ПК с Windows с процессором i7 я получаю:
FAST BLAS
version: 1.9.1
maxint: 2147483647
dot: 0.0459410942418 sec
А со старым (2013 г.) ПК с i7 под управлением Linux Mint 18 я получаю:
slow blas
version: 1.11.0
maxint: 9223372036854775807
dot: 0.0240209579468 sec
Как видите, старые ПК, в частности тот, на котором установлен Linux Mint 18, примерно в 4 раза быстрее ...
Все эти ПК я установил сам. В частности, для самого последнего с Fedora я использовал как python 2.x, так и 3.x с пакетом numpy: (1) для dnf и (2) путем компиляции из источников (как объяснено Вот). Я также добавлю, что все случаи, упомянутые выше, являются репрезентативными для значений, полученных после выполнения кода несколько раз без какого-либо другого запущенного процесса.
Я считаю, что мне что-то здесь не хватает. Я понятия не имею, что делать, чтобы добиться достойной производительности с моим новым ПК ...
(Точно такая же проблема наблюдалась на других недавних ПК с Fedora 23 и Mint 18.)
Обновить:
Я установил Ubuntu 16.04 вместо Fedora 24 на недавний компьютер, упомянутый выше. Время вычисления для точки Numpy было разделено на 10 и значительно меньше для других тестов:
$ 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
Единственная информация, которую я смог найти в Интернете, - это очень старый пост но мне трудно поверить, что такой тип ошибки может длиться так долго.