gpt4 book ai didi

c++ - 是否有 C++ 等价于逻辑 when?

转载 作者:行者123 更新时间:2023-11-28 04:51:14 24 4
gpt4 key购买 nike

有没有办法用触发器来调节某些东西?具体来说,我有一个 MPI 实现,并希望在收到其他数据后立即发送一些数据。到目前为止,我使用过:

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

我想知道是否有一种方法可以跳过等待并进行一些计算,并且仅在触发 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 实现。

关于c++ - 是否有 C++ 等价于逻辑 when?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48187910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com