Я пытаюсь использовать многопроцессорный процесс, чтобы уменьшить время вычисления функций, зависящих от 2D-массивов с формой 2000x2000. У меня есть 2 массива входных данных для функции, но с p.map он не работает ... (с одним из них в порядке). Как я могу это сделать?Python - многопроцессорный пул с функциями с 2 массивами входов
from multiprocessing import Pool
from numpy import *
import time
tic=time.clock()
Y=(arange(2000.))
X=(arange(2000.))
(xx,yy)=meshgrid(X,Y)
r = sqrt((xx)**2 + (yy)**2)
theta = (arctan2((yy),(xx)))
def f(theta,r):
return 1.*r**(-3/2.)*cos(-3/2.*theta)
p = Pool(4)
print p.map(f, theta,r)
toc=time.clock()
print 'Temps=', toc-tic
и я получаю сообщение об ошибке: «Значение истинности массива более чем с одним элементом является неоднозначным Используйте a.any() или a.All().»
какая версия Python вы используете? ответ может зависеть от него. –
Я использую ipython с python 2.7.8 – user3601754
Возможный дубликат http://stackoverflow.com/questions/5442910/python-multiprocessing-pool-map-for-multiple-arguments –