Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MPI—如果其中一个节点未接收到由MPI_Bcast()发送的消息(不调用MPI_Bcast),会不会导致任何问题_Mpi - Fatal编程技术网

MPI—如果其中一个节点未接收到由MPI_Bcast()发送的消息(不调用MPI_Bcast),会不会导致任何问题

MPI—如果其中一个节点未接收到由MPI_Bcast()发送的消息(不调用MPI_Bcast),会不会导致任何问题,mpi,Mpi,我有一个主节点,它经常使用MPI_Bcast广播消息。问题是,我有一个特定的节点需要比其他节点运行得慢一点,比如说,它只会在一半的时间内参与bcast。所以它就像: // -- iteration 1 Master: MPI_Bcast(msg1) Node1: MPI_Bcast(msg1) Node2: MPI_Bcast(msg1) Node0: MPI_Bcast(msg1) // -- iteration 2 Master: MPI_Bcast(msg2) Node1: MPI_Bc

我有一个主节点,它经常使用MPI_Bcast广播消息。问题是,我有一个特定的节点需要比其他节点运行得慢一点,比如说,它只会在一半的时间内参与bcast。所以它就像:

// -- iteration 1
Master: MPI_Bcast(msg1)
Node1: MPI_Bcast(msg1)
Node2: MPI_Bcast(msg1)
Node0: MPI_Bcast(msg1)

// -- iteration 2
Master: MPI_Bcast(msg2)
Node1: MPI_Bcast(msg2)
Node2: MPI_Bcast(msg2)
Node0: DoSomethingImportantAndDontParticipateInBcast()

// -- iteration 3
Master: MPI_Bcast(msg3)
Node1: MPI_Bcast(msg3)
Node2: MPI_Bcast(msg3)
Node0: MPI_Bcast(msg3)

这可能吗?注意,在上一次迭代中,我希望Node0接收msg3,而不是msg2(它忽略了它)

您建议的模式不起作用,通信器中的所有进程都参与每个广播

如果按计划执行,您会发现
node0
MPI\u Bcast(msg3)
与其他进程视为
MPI\u Bcast(msg2)
的广播相匹配。没有单独识别广播的机制。很长一段时间以来,我都没有编写一个MPI程序,因为它的广播不匹配,所以我记不起到底发生了什么,我也不确定标准要求什么。总的来说,我预计会发生不好的事情,可能所有参与比特别节目更多广播的进程都会陷入停顿等待


您可以使用
mpi\u comm\u create
定义一个内部通讯器,它排除
node0
,并根据您的意愿在全局通讯器和新通讯器上调用广播。

您建议的模式不起作用,通讯器中的所有进程都参与每次广播

如果按计划执行,您会发现
node0
MPI\u Bcast(msg3)
与其他进程视为
MPI\u Bcast(msg2)
的广播相匹配。没有单独识别广播的机制。很长一段时间以来,我都没有编写一个MPI程序,因为它的广播不匹配,所以我记不起到底发生了什么,我也不确定标准要求什么。总的来说,我预计会发生不好的事情,可能所有参与比特别节目更多广播的进程都会陷入停顿等待


您可以使用
mpi\u comm\u create
定义一个内部通讯器,它不包括
node0
,并根据需要在全局通讯器和新通讯器上调用广播。

send和broadcast在mpi中的含义不同,并且有多种类型的发送。请解释更多。@HighPerformanceMark我已经更新了问题。谢谢tbh,我不确定我是否完全理解MPI中的广播,所以如果我遗漏了什么(我希望没有),请务必让我知道这是一个错误的节目。MPI集体必须统称为集体。故事结束。发送和广播在MPI中的含义不同,发送的类型也多种多样。请解释更多。@HighPerformanceMark我已经更新了问题。谢谢tbh,我不确定我是否完全理解MPI中的广播,所以如果我遗漏了什么(我希望没有),请务必让我知道这是一个错误的节目。MPI集体必须统称为集体。故事结束了。