[英]MPI_Recv with list of sources
是否有可能將源列表傳遞給MPI_Recv(或等效)調用? 目前,我的代碼如下所示:
do i=nod1,nod2
call mpi_recv(tmp,n,MPI_REAL,MPI_ANY_SOURCE,tag,MPI_COMM_WORLD,status,ierr)
... do stuff with tmp here
call mpi_send(tmp,n,MPI_REAL,status(MPI_SOURCE),tag,MPI_COMM_WORLD,ierr)
enddo
當然,這並不能保證它能滿足我的要求。 (如果nod1在這里發送了兩條消息,然后nod2可以發送一條消息,則在此迭代期間沒有收到nod2的消息,這很不好。)在我的應用程序中,由於nod1和nod2還有其他約束迫使他們執行彼此同步(足夠)...但是讓我想知道是否有辦法指定允許接收的proc列表。
不是這樣的。 但是,可以將MPI_Probe()
與MPI_ANY_SOURCE
,然后將status
對象的MPI_SOURCE
字段與要從中接收的進程列表進行比較。 如果存在匹配項,則可以通過常規阻止接收從該源繼續接收。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.