簡體   English   中英

MPI_Recv帶有來源列表

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

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