делая scipy.special функции оценивать в parrellel - PullRequest
0 голосов
/ 07 сентября 2018

Это кажется слишком простым, чтобы быть неразрешенным, я уверен, что я просто не смотрю в нужном месте. Этот вопрос беспокоил меня некоторое время, так что вот так ...

Может ли такая функция, как scipy.special.j1, выполняться на массиве с несколькими ядрами?

from scipy.special import j1
import numpy as np

tester = np.random.randn(1000,1000)
out = j1(tester)

Запуск timeit в ipython и просмотр системного монитора показывает только 1 запуск ядра. numpy и scipy устанавливаются через conda, а в scipy есть библиотеки 'mkl_rt' и 'pthread' .__ config__ output.

При запуске np.exp используются 4 доступных ядра.

out = np.exp(tester)

Если возможно, было бы неплохо использовать все доступные ядра для вычисления j1, но 4, конечно, лучше, чем 1. Это как-то просто?

1 Ответ

0 голосов
/ 07 сентября 2018

Не в чистом питоне.

Вы можете использовать интерфейс Cython cython_special вместе с prange.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...