在 MPI_Gather()、MPI_Scatter() 中发送计数和接收计数有什么区别?

Jan*_*nga 4 c c++ memory message-passing mpi

在 MPI 收集和分散中,发送和接收有两个计数。我检查了文档,发现两者应该具有相同的值。

例如: -在MPI_Gather()双方send_countreceive_count应具备的发送缓冲区大小的尺寸。https://www.mpich.org/static/docs/v3.1/www3/MPI_Gather.html

有人可以解释这个冗余参数的目的是什么吗?

Zul*_*lan 6

在某种程度上,您可以使用不同的类型 - 但总大小需要匹配。

或者更准确地说,标准解释说:

的类型的签名sendcountsendtype每个过程必须等于类型签名recvcountrecvtype在根目录下。这意味着发送的数据量必须等于接收的数据量,在每个进程和根之间成对。仍然允许发送者和接收者之间的不同类型映射。