Из стандарта MPI
MPI_GATHERV расширяет функциональность
MPI_GATHER, позволяя варьировать
количество данных от каждого процесса, так как
recvcounts теперь является массивом. Это также
позволяет больше гибкости относительно того, где
данные помещаются в корень,
предоставляя новый аргумент, отображает
MPI_ALLGATHERV является расширением этого.
Подписи для этих двух функций
int MPI_Allgather(void * sendbuff, int sendcount, MPI_Datatype sendtype,
void * recvbuf, int recvcount, MPI_Datatype recvtype,
MPI_Comm comm)
int MPI_Allgatherv(void * sendbuff, int sendcount, MPI_Datatype sendtype,
void * recvbuf, int * recvcounts, int * displs,
MPI_Datatype recvtype, MPI_Comm comm)
Вы можете указать размер и смещение назначения для данных каждого процесса, используя recvcounts
и displs
, используя вариант v.