我是并行编程的新手并面临以下问题......如果有人能帮助我,我将非常感激
我有一位经理(比如处理器M
)和两位工作人员(比如处理器A
和B
)。工作人员不断向经理M
发送消息。我希望当经理达到他/她需要阅读工作人员的消息时,阅读每个工作人员发送的所有消息。我的问题是如何找出每个发送了多少,我应该怎样做才能立即检索所有这些?
例如,我知道工作人员A
发送了4条消息(我在发送和接收消息时已对它们进行了计数)但是如果工作人员B
尚未发送,则经理会逐个接收消息任何东西。 (在代码中,发送都是异步的,我在发送后释放句柄,另一方面,每次我收到来自worker的消息时,我都会创建一个新的请求(request=Irecv()
),我将使用它在request.Test()
中查看是否已到达并在我收到数据时再次更新请求)。
非常感谢!
处理器M
,每次解决数学问题,生成解决方案的向量。此解决方案将立即发送给所有工作人员(异步)。工作人员应该在适当的时候读取他们的周期到达该点时发送给他们的所有消息。