首页 > 解决方案 > 运行通过消息进行通信的 MPI 进程

问题描述

我想启动一个进程,作为其他进程发送的消费者。所以,我写了这个虚拟代码来测试一下。每次我通过运行此代码时mpirun -n 4 python3 -u -m mpi4py.futures test.py,它都会给我以下输出: <mpi4py.futures.pool.MPIPoolExecutor object at 0x110deee50>然后退出。我错过了什么?

from mpi4py.futures import MPIPoolExecutor
from mpi4py import MPI
import numpy as np


def func(dummy):
    MPI.Comm.send(np.array([1]), 1)

def reciver(itera, dummy):
    for i in range(itera):
        data = MPI.Comm.recv()
        print(data)


if __name__ == '__main__':
    comm = MPI.COMM_WORLD
    with MPIPoolExecutor() as executor:
        itera = 10
        print(executor)
        executor.submit(reciver, (itera, 98))
        executor.map(func, [i for i in range(itera)])

标签: pythonmpimpi4py

解决方案


推荐阅读