异步MPI主从模型

时间:2012-12-23 09:19:30

标签: asynchronous parallel-processing mpi master-slave

主人有一大堆任务,它分配给任何发出信号的奴隶。

任务在计算时间上不相等,但都在计算某个值。作为输出,主设备需要计算所有任务的最小值。

这里的问题是我不想使用同步send-recv调用来分配作业,因为在将作业发送到下一个作业之前,我不想等待一个进程完成。

所以,我该如何收集结果?我需要知道每个返回值才能返回最小值,但我无法判断该值何时将被发送回主服务器,或者以何种顺序发送。

感谢您的帮助..

1 个答案:

答案 0 :(得分:2)

在主服务器上使用非阻塞发送/接收,在从服务器上使用阻塞发送/接收。基本上是:

站长:

  1. 通过非阻止发送发送作业。
  2. 为每个结果发布非阻止接收
  3. 定期检查是否有任何结果。如果是这样,请发送新作业并为其发布非阻止接收。
  4. 重复步骤3.直到所有结果都到达。
  5. 从站:

    1. 等待阻止接收的作业
    2. 使用阻止发送
    3. 发送结果
    4. 转到1.