Как заставить np.multiply использовать более одного ядра? ⇐ Python
-
Anonymous
Как заставить np.multiply использовать более одного ядра?
Название уже говорит об этом. В настоящее время я распараллеливаю свой код, и основным узким местом является поэлементное умножение двух трехмерных ndarrays. Мой системный монитор показывает, что для этой операции используется только одно из 40 доступных ядер.
Я знаю, что распараллеливание работает, потому что другие операции scipy.fft и BLAS выполняются параллельно.
Пока я не нашел каких-либо значимых вопросов/проблем в SO или GitHub. Немного странно, что ни у кого больше не было этой проблемы. Я что-то упустил?
Я пробовал экспериментировать с переменными среды BLAS и использовать dgbmv с плоскими массивами, чтобы добиться желаемого поведения, но пока безуспешно. Минимальный пример кода: (в моем случае с гораздо большим k, трехмерными массивами и широковещательной передачей):
импортировать numpy как np к = 1е6 х = np.random.rand(к) у = np.random.rand(к) z = np.multiply(x, y)
Название уже говорит об этом. В настоящее время я распараллеливаю свой код, и основным узким местом является поэлементное умножение двух трехмерных ndarrays. Мой системный монитор показывает, что для этой операции используется только одно из 40 доступных ядер.
Я знаю, что распараллеливание работает, потому что другие операции scipy.fft и BLAS выполняются параллельно.
Пока я не нашел каких-либо значимых вопросов/проблем в SO или GitHub. Немного странно, что ни у кого больше не было этой проблемы. Я что-то упустил?
Я пробовал экспериментировать с переменными среды BLAS и использовать dgbmv с плоскими массивами, чтобы добиться желаемого поведения, но пока безуспешно. Минимальный пример кода: (в моем случае с гораздо большим k, трехмерными массивами и широковещательной передачей):
импортировать numpy как np к = 1е6 х = np.random.rand(к) у = np.random.rand(к) z = np.multiply(x, y)
Мобильная версия