【发布时间】:2020-08-28 13:19:02
【问题描述】:
我想向我的 8 个工人发送一个大小为 336 的拆分部分的数组。我希望工人 0-8 的尺寸为 12、18、30、36、48、54、66 和 72。所以添加 6,然后添加 12 和 6,依此类推……至此,我能够剪切数组分成 10 个。
这是我想出的:
from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
v=np.random.rand(100,1) #array
if rank == 0:
# Process to send data to the different processes. Just send evenly chunks to the processes.
for i in range(1, size):
v_splitted=[np.array_split(v, 10)[i-1]]
comm.send(v_splitted, dest=i, tag=i)
# worker processes
else:
# each worker process receives data from master process
data = comm.recv(source=0, tag=rank)
我如何确保每个工人都获得所需的尺寸?
【问题讨论】:
-
您需要什么帮助?拆分数组
v,还是向每个工作人员发送其工作负载?