mpi4py を使用して、多数の個々のタスクをいくつかのプロセッサに分割したいと考えています。次の例は、私の意図を示している可能性があります。
from mpi4py import MPI
import numpy
from numpy import random
comm=MPI.COMM_WORLD
rank=comm.Get_rank()
size=comm.Get_size()
def doSomething(x):
return numpy.sum(x)
if rank==0:
v=random.random((3,3))
print 'thats v_random:\n', v
for i in range(len(v)):
comm.send(v[i],dest=i)
data=comm.recv(source=0)
print 'my rank is {0} and my output is {1}\n'.format(rank,doSomething(data))
len(v)==number of procs で実行する限り、すべて問題ありません。しかし、たとえば v=random.random((100,3)) の場合、明らかに機能していません。これは通常どのように達成されますか?
前もって感謝します。