[英]How to set number of processes in mpi4py
如何在mpi4py中设置固定数量的进程? 在其他语言`mpi实现中,它作为参数在init(args)中传递。 文档似乎没有提到这一点。 有谁知道如何做到这一点? 该程序将在常规双核笔记本电脑和24个节点(96核)集群上启动,我想在笔记本电脑上模拟集群。
PS。 对不起,如果它实际上在文档中 - 对于mpi的新手来说,这是非常神秘的。
最简单的方法是使用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!
但请注意,在笔记本电脑上运行96个任务可能不会特别有用。
mpi4py教程是这样的:
from mpi4py import MPI
import sys
client_script = 'my_client.py'
comm = MPI.COMM_SELF.Spawn(sys.executable, args=[client_script], maxprocs=5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.