"MPI4Py 散射 sendbuf 参数类型?"

2024-05-16 21:29:36 发布

您现在位置:Python中文网/ 问答频道 /正文

mpi4python模块中的Scatter函数有问题。 我的假设是,我应该能够为sendbuffer传递一个列表。但是,当我这样做,或者添加其他两个参数recvbuf和root时,会收到一致的错误消息:

  File "code/step3.py", line 682, in subbox_grid
    i = mpi_communicator.Scatter(station_range, station_data)
  File "Comm.pyx", line 427, in mpi4py.MPI.Comm.Scatter (src/
mpi4py_MPI.c:44993)
  File "message.pxi", line 321, in mpi4py.MPI._p_msg_cco.for_scatter
(src/mpi4py_MPI.c:14497)
  File "message.pxi", line 232, in mpi4py.MPI._p_msg_cco.for_cco_send
(src/mpi4py_MPI.c:13630)
  File "message.pxi", line 36, in mpi4py.MPI.message_simple (src/
mpi4py_MPI.c:11904)
ValueError: message: expecting 2 or 3 items

下面是截取的相关代码,从682以上的几行开始 上面提到过。在

^{pr2}$

我尝试了很多组合来初始化station_range,但是我 不能正确理解散点参数类型。在

Python/MPI专家对此有澄清吗?在


Tags: insrcmessage参数linerangemsgmpi4py
1条回答
网友
1楼 · 发布于 2024-05-16 21:29:36

如果您想移动原始缓冲区(与Gather一样),可以提供一个三元组[buffer, size, type]。请看示例演示。如果您想发送Python对象,应该使用更高级的接口并调用gather(注意小写),后者在内部使用pickle。在

相关问题 更多 >