Python MPI(mpi4py)多个可执行文件。(MPI服务器)

2024-10-16 17:21:38 发布

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

我正在尝试开发类似于使用python编写服务器的东西。 这个概念是我想用不同数量的处理器启动2个进程,并在它们之间获得通信者:

你知道吗计算地址:

#!/usr/bin/env python

from mpi4py import MPI
import sys


def do_calcul():
    calcul_comm = MPI.COMM_WORLD
    calcul_rank = calcul_comm.Get_rank()
    calcul_size = calcul_comm.Get_size()

    print 'Rank {0}/{1} calculation\n'.format(calcul_rank, calcul_size)


if __name__ == '__main__':
    do_calcul()

你知道吗服务器.py地址:

#!/usr/bin/env python

from mpi4py import MPI
import sys


def do_writing():
    server_comm = MPI.COMM_WORLD
    server_rank = server_comm.Get_rank()
    server_size = server_comm.Get_size()

    print 'Rank {0}/{1} writing'.format(server_rank, server_size)


if __name__ == '__main__':
    do_writing()

要运行脚本,我要启动这两个脚本:

mpirun -np 4 python hs_calcul.py : -np 2 python hs_server.py

问题是每个脚本都没有检测到自己的通信世界,输出结果是:

Rank 2/6 calculation

Rank 4/6 writing
Rank 1/6 calculation

Rank 3/6 calculation

Rank 5/6 writing
Rank 0/6 calculation

我想买点像这样的东西

Rank 2/4 calculation

Rank 1/2 writing
Rank 1/4 calculation

Rank 3/4 calculation

Rank 0/2 writing
Rank 0/4 calculation

以及如何让MPI通信器将任何计算过程与编写过程进行通信。你知道吗

你知道怎么做吗?你知道吗


Tags: pyimport服务器脚本sizegetserverdo