gpt4 book ai didi

c - mpi 向随机选择的节点发送消息

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:18 24 4
gpt4 key购买 nike

我正在尝试使用 MPI 实现分布式遗传算法(孤岛模型)。所有节点都会重复生成新的种群,并在每 k 次迭代后交换最佳个体。我希望交换是随机的,这样任何进程都可以向任何其他进程发送消息。因此,在每 k 次迭代之后,每个进程都会向随机选择的进程发送一条消息。但是,我不确定如何使用 MPI 实现它。来自这篇文章 - Sending data to randomly selected hosts by using MPI我认为异步通信会有所帮助,但我不确定具体有多大帮助。

最佳答案

随机通信模式很难在 MPI 中实现。 MPI 基于具有一组确定性通信模式的所有级别。

对于点对点解决方案,每个等级将在 MPI_ANY_SOURCE 上调用 MPI_Irecv。当发生数据交换时,每个rank可以调用MPI_Send到特定的目标rank。目标排名将需要再次调用 MPI_Irecv 以准备下一次迭代。当作业完成时,任何未使用的 MPI_Irecv 调用都可以被 MPI_Cancel'd。

对于集体方法,每个等级将调用 MPI_Alltoall 或 MPI_Alltoallv(如果交换的数据量不同)。每个等级只会将数据填充到随机选择接收数据的单个等级。这种“稀疏”数据交换在 MPI_Alltoall 中很常见。集体可能很昂贵,但它确实允许每 k 次迭代进行硬同步,并避免清除 MPI_Cancel。

关于c - mpi 向随机选择的节点发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246569/

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