簡體   English   中英

在邏輯上,C ++是否等效?

[英]Is there a C++ equivalent of a logical when?

有沒有辦法用觸發器來調節條件? 具體來說,我有一個MPI實現,希望在收到其他一些數據后立即發送一些數據。 到目前為止,我已經使用:

MPI_Wait(&recv_request,&status)
MPI_ISend(...)

我想知道是否有一種方法可以跳過等待並進行一些計算,只有在recv_request觸發recv_request返回。

MPI中的解決方案是使用MPI_Test

int flag;
MPI_Test(&recv_request, &flag, &status);
while (!flag) {
    do_work();
    MPI_Test(&recv_request, &flag, &status);
}
// At this point, the request state is the same as for a completed MPI_Wait

do_work的工作粒度是一個折衷。 如果每個呼叫的工作量太小,則連續測試的開銷將很大,並且將無法完成工作。 如果每個呼叫工作量過多,則延遲會增加。 如果使用MPI_Test則與MPI_Wait相比,延遲總是更糟。

現在,還有其他方法可以通過使用線程來執行此操作,但是這可能會更加復雜,並且特別需要與必要線程級別兼容的MPI實現。

暫無
暫無

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

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