私の質問はかなり単純です。MPI_Scatter関数の定義は次のとおりです。
#include <mpi.h>
void MPI::Comm::Scatter(const void* sendbuf, int sendcount,
const MPI::Datatype& sendtype, void* recvbuf,
int recvcount, const MPI::Datatype& recvtype,
int root) const
'sendcount'と'sendtype'は冗長ですか?その場合、それが発生する可能性があります:sendcount!= recvcount?
編集:たぶん、質問についていくつかの説明が必要です。おそらくその理由は、ルートの場合はデータが「構造体X」であり、レシーバーの場合は「構造体Y」であるため、どういうわけかそれも意味があることを理解しています(すべて「OK」に適合します)。
その場合...受信する予定のデータの合計サイズが送信データのサイズと同じであると再度言う必要がある理由がわかりません。データのビューをキャストするだけの場合は、キャストのみを行います。実際、バッファは(void *)です。