簡體   English   中英

在MPI中創建組通信器(MPI4PY)

[英]Create group communicator in mpi (mpi4py)

我正在嘗試使用mpi4py創建一個MPI組。 我當前的嘗試如下所示:

from mpi4py import MPI

comm = MPI.COMM_WORLD
newGroup = comm.group.Excl([0, 1, 2])
print newGroup.size

newComm = comm.Create_group(newGroup)
print newComm
print newComm.Get_size()

newGroup.size調用確實返回2(我使用5個進程啟動了應用程序),並且newComm變量指示為通信器。 但是,一旦我嘗試調用Get_size ,就會引發異常:

mpi4py.MPI.Exception:MPI_ERR_COMM:無效的通信器

如何基於預定義的過程ID序列創建新的通信器?

newComm是任務[3-4]上的合法通信器,但在任務[0-2]上是MPI_COMM_NULL 該標准不允許您調用MPI_Comm_size(MPI_COMM_NULL, ...) ,因此會導致您的錯誤。

解決方案是在任務[3-4]或在newComm 不是 MPI_COMM_NULL任何任務上顯式調用newComm.Get_size()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM