Mpi 完成任务时为数据交换配对流程

Mpi 完成任务时为数据交换配对流程,mpi,Mpi,我正在用C语言开发一个程序,使用MPI进行进程间消息传递。该程序具有以下结构: P每个进程执行一个任务的迭代 迭代完成后,流程p搜索另一个也已完成其迭代的流程q p和q通过交换其先前迭代的结果来同步 p和q各自启动任务的新迭代,以此类推 我不知道如何促进p和q将彼此识别为已经完成各自迭代的过程。以前,我在所有进程完成迭代后实施了一个更为传统的“全局”同步步骤,但我希望通过实施上面的“两两”同步来提高性能,其中进程在完成任务迭代后尽快开始同步 有人知道流程在完成各自的任务时如何相互识别吗?这是

我正在用C语言开发一个程序,使用MPI进行进程间消息传递。该程序具有以下结构:

  • P每个进程执行一个任务的迭代
  • 迭代完成后,流程p搜索另一个也已完成其迭代的流程q
  • p和q通过交换其先前迭代的结果来同步
  • p和q各自启动任务的新迭代,以此类推
我不知道如何促进p和q将彼此识别为已经完成各自迭代的过程。以前,我在所有进程完成迭代后实施了一个更为传统的“全局”同步步骤,但我希望通过实施上面的“两两”同步来提高性能,其中进程在完成任务迭代后尽快开始同步


有人知道流程在完成各自的任务时如何相互识别吗?

这是一种非常罕见的范例,我担心最简单的实现是集中式的(例如,每个任务在完成时通知协调器,当两个任务完成时,协调器通知两个任务成对工作。当然,这暗示着即使
p
q
启动了迭代,也会有一个任务完成(方式)在另一个之前。这与副本交换分子动力学有关吗?无论如何,您是否更关心检测延迟或最小化实现这一点所需的资源?是否可以用一个进程来控制它?或者在任务中插入定期轮询操作?我有很多想法,但需要了解constraints.Hi@Jeff。检测延迟是优先级;将一个进程用于协调不是问题,事实上,这是我一直在尝试的。假设最小化绝对运行时间除以P-1是本程序的总体目标,-1代表协调过程。定期轮询操作是一些我不熟悉的东西。作为参考,我尝试实现的算法是应用于文本数据的()-HDP主题建模第4页上的算法3。这是一个非常罕见的范例,我担心最简单的实现是集中实现(例如,每个任务在完成时通知协调器,当两个任务完成时,协调器通知两个任务成对工作。当然,这暗示着即使
p
q
启动了迭代,也会有一个任务完成(方式)在另一个之前。这与副本交换分子动力学有关吗?无论如何,您是否更关心检测延迟或最小化实现这一点所需的资源?是否可以用一个进程来控制它?或者在任务中插入定期轮询操作?我有很多想法,但需要了解constraints.Hi@Jeff。检测延迟是优先级;将一个进程用于协调不是问题,事实上,这是我一直在尝试的。假设最小化绝对运行时间除以P-1是本程序的总体目标,-1代表协调过程。定期轮询操作是一些我不熟悉的东西。作为参考,我尝试实现的算法是()第4页的算法3-HDP主题建模,应用于文本数据。