Этот вопрос, следующий за этим [1]. У меня большой 3D-массив, и я должен сделать некоторые тяжелые вычисления на нем. Я хотел бы разделить кусочек моего массива на 4 части и выполнить вычисления для каждой части с каждым 4 ядрами моего компьютера ... И сделайте это для каждого фрагмента моего 3D-массива ... что является лучшим способом для сделай это?Многопроцессорные вычисления для одного массива
import numpy
size = 8.
Y=(arange(2000))
X=(arange(2000))
(xx,yy)=meshgrid(X,Y)
array=zeros((Y.shape[0],X.shape[0],size))
array[:,:,0] = 0
array[:,:,1] = X+Y
array[:,:,2] = X*cos(X)+Y*sin(Y)
array[:,:,3] = X**3+sin(X)+X**2+Y**2+sin(Y)
Спасибо за вашу помощь, но когда я вычислил время с многопроцессорным и без него ... я нахожу, что без многопроцессорного i m быстрее: s – user3601754
@ user3601754 Насколько дорогим является каждый вызов 'f'? Если 'f' не занимает много времени для запуска, то« многопроцессорство »не поможет, потому что накладные расходы на передачу содержимого массива между процессами будут больше, чем преимущество запуска 4 экземпляров' f 'одновременно. – dano