我是并行处理的初学者,我想从属于通信器A的进程向通信器B中的所有进程发送一个值,我尝试使用MPI_Bcast()
,process_sender应该属于通信器B,但它不属于通信器B
MPI_Bcast(&value ,value_size ,MPI_INT ,process_sender_rank, CommunicatorB);
我如何在两个分开的沟通者之间沟通,请帮助我
在MPI中,进程只能在其通信器中的进程之间进行通信。从来源:
在内部,MPI必须(除其他事项外)保持通信者的两个主要部分,即区分一个通信者与另一个通信者的上下文(或ID)以及通信者所包含的一组过程。上下文阻止了一个通信器上的操作与另一通信器上的类似操作匹配。MPI在内部为每个通信器保留一个ID,以防止混淆。
在您的情况下,您可以由进程A和属于该通信器B的进程组成一个新的通信器。让我们称之为CommunicatorC,然后您可以再次调用例程,但是这次使用新的通信器:
MPI_Bcast(&value ,value_size ,MPI_INT ,process_sender_rank, CommunicatorC);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句