У меня были проблемы со скоростью при попытке использовать модуль gmpy.Как сделать операции массива gmpy быстрее?
import numpy as np
import gmpy2 as gm
N = 1000
a = range(N)
%timeit [gm.sin(x) for x in a]
# 100 loops, best of 3: 7.39 ms per loop
%timeit np.sin(a)
# 10000 loops, best of 3: 198 us per loop
Мне было интересно, могу ли я как-то ускорить это вычисление. Я думал, что JIT или многопроцессорная работа могут помочь, но я не понял, как это сделать.
Любая помощь была бы принята с благодарностью. Если вы хотите, чтобы я опубликовал дополнительную информацию, пожалуйста, дайте мне знать.
Благодарим вас за ответ @casevh. Я полагаю, что gmpy2.vector (a) - это новая функция? Действительно, это не похоже на большую скорость. Что касается многопроцессорной обработки, я пытался использовать структуру IPipon http://ipython.org/ipython-doc/stable/parallel/parallel_multiengine.html#quick-and-easy-parallelism. Это должно работать правильно? – evan54
Да, vector() - это имя тестовой функции. Я был разочарован отсутствием ускорения. Извините, но я не знаком с параллельными инструментами IPython. – casevh
Без проблем спасибо вам большое. По крайней мере, я знаю, что мне не стоит пытаться использовать какой-то JIT! – evan54