Использует ли Numpy в Google App Engine LAPACK или ATLAS?

У меня есть приложение на движке приложений Google, написанное на python 2.7, которое использует стороннюю библиотеку numpy, включенную в движок приложения. Я использую numpy.linalg.solve() для решения уравнения линейной алгебры. Использует ли numpy в движке приложения ATLAS, LAPACK или BLAS, чтобы функция numpy.linalg.solve() работала быстрее, или эта функция выполняется только в Python. Причина, по которой я спрашиваю, заключается в том, что я заметил, что подпрограмма numpy.linalg.solve() работает примерно в 10 раз медленнее в движке приложения, чем сопоставимый решатель в MATLAB на моем компьютере. MATLAB использует ATLAS, LAPACK и BLAS под капотом, поэтому мне было интересно, что numpy на движке приложения тоже. Команда python numpy.config.show() в движке приложения перечисляет информацию об ATLAS, LAPACK и BLAS, но я хотел бы знать, использует ли numpy.linalg.solve() эти библиотеки под капот, или это просто выполнение кода Python?


person john    schedule 21.12.2013    source источник


Ответы (1)


В документации для этой функции сказано:

Решения вычисляются с использованием процедуры LAPACK _gesv.

Это то, что вам нужно?

В более общем смысле, numpy включает в себя код C, а также python, поэтому это одна из библиотек, которую вы можете использовать — вам не разрешено загружать ее самостоятельно.

С точки зрения относительной производительности вашего компьютера, вероятно, ваш компьютер значительно мощнее, чем один из стандартных экземпляров appengine — по умолчанию для экземпляра внешнего интерфейса, F1, всего 600 МГц с 128 МБ ОЗУ.

person Greg    schedule 21.12.2013
comment
Да, это то, чего я добивался. Чтобы заставить его работать быстрее, я попытался запустить его на бэкэнд-экземпляре B8 с частотой 4,8 ГГц и 1024 МБ ОЗУ, и он работал примерно в 4 раза быстрее, чем то, что я получал с экземпляром F1. Это все еще медленнее, чем MATLAB, но я доволен производительностью. - person john; 23.12.2013