gpt4 book ai didi

mpi - 一个级别的 MPI 通信行为是否明确定义?

转载 作者:行者123 更新时间:2023-12-04 02:03:01 25 4
gpt4 key购买 nike

如果您使用 MPI 通信方法之一让等级与其自身通信会发生什么?是否有明确定义的行为(例如保证成功或失败),或者它是否取决于机会/其他不可控的影响,程序是否会继续运行?

一个例子是流体动力学代码,其中每个等级确定需要将哪些网格单元发送到相邻等级以创建计算模板所需的光环。如果模拟仅在一个等级上开始,那么等级 0 的非阻塞发送/接收与自身(发送大约 0 长度的信息)。

最佳答案

虽然您可以根据 suszterpatt 的回答避免自我消息传递,但自我消息传递会起作用并且是 MPI 标准的一部分。甚至还有一个预定义的便捷通讯器 MPI_COMM_SELF .只要发送/接收调用不会导致死锁(例如,使用非阻塞调用),发送到 self 就可以了。当然,发送和接收缓冲区不应重叠。

请注意,使用 OpenMPI,您需要 enable the self BTL .

来源:MPI 1.1 Section 3.2.4

Source = destination is allowed, that is, a process can send a message to itself. (However, it is unsafe to do so with the blocking send and receive operations described above, since this may lead to deadlock. See Sec. 3.5. Semantics of point-to-point communication.)

关于mpi - 一个级别的 MPI 通信行为是否明确定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385395/

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