[英]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.