繁体   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