繁体   English   中英

在Python中使用分散的MPI(mpi4py)来拆分向量处理

[英]Using scatter of MPI (mpi4py) in Python to split up vector processing

所以这是一个简单的代码片段,它不适合我声明期望 4 个项目,得到 55 个。实际上,我想要一个字符串列表并将这个列表拆分到 n_processes 之间来对它们进行计算。 这怎么可能与分散?

from mpi4py import MPI

comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()

if rank == 0:
   data = [(i+1)**2 for i in range(55)]
comm.Scatter(data, root=0)
print rank, data

看一下底层的 Scatter API 调用:

http://www.open-mpi.org/doc/v1.5/man3/MPI_Scatter.3.php

Scatter 调用使用 list 参数将列表的一个元素发送到每个进程。 您在列表中硬编码了 55 个元素,但听起来您只运行了 4 个进程。 range(55)更改为range(size) (更合适的解决方案)或运行 55 个进程以使现有代码正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM