如何设置mpi4py中的进程数

kyo*_*ryu 4 python mpi

如何在mpi4py中设置固定数量的进程?在其他语言`mpi实现中,它作为参数在init(args)中传递.文档似乎没有提到这一点.有谁知道如何做到这一点?该程序将在常规双核笔记本电脑和24个节点(96核)集群上启动,我想在笔记本电脑上模拟集群.

PS.对不起,如果它实际上在文档中 - 对于mpi的新手来说,这是非常神秘的.

Jon*_*rsi 11

最简单的方法是使用mpiexec(或mpirun)启动程序,指定所需的MPI任务数:

$ cat foo.py
from mpi4py import MPI

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

if rank == 0:
   data = 'Hello!'
   comm.send(data, dest=nprocs-1, tag=1)
elif rank == nprocs-1:
   data = comm.recv(source=0, tag=1)
   print 'Rank ', rank, ' received ', data

$ mpiexec -np 4 python foo.py
Rank  3  received  Hello!
Run Code Online (Sandbox Code Playgroud)

但请注意,在笔记本电脑上运行96个任务可能不会特别有用.