<2> sdisp: (#3): [0][1][3]
<2> rdisp: (#3): [0][2][4]
- after MPI_Alltoallv :
+ after MPI_Alltoallvv :
<0> rbuf: (#9): [-1][-1][-1][-1][-1][-1][-1][-1][-1]
<1> rbuf: (#9): [1][101][201][-1][-1][-1][-1][-1][-1]
<2> rbuf: (#9): [3][4][103][104][203][204][-1][-1][-1]
rdispls[i] = i * rank;
sdispls[i] = (i * (i + 1)) / 2;
}
+ int status;
+
+ status = MPI_Alltoallv(NULL, sendcounts, sdispls, MPI_INT, rbuf, recvcounts, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_BUFFER)
+ printf("MPI_Alltoallv did not return MPI_ERR_BUFFER for empty sendbuf\n");
+ status = MPI_Alltoallv(sbuf, NULL, sdispls, MPI_INT, rbuf, recvcounts, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_ARG)
+ printf("MPI_Alltoallv did not return MPI_ERR_ARG for NULL sendcounts\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, NULL, MPI_INT, rbuf, recvcounts, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_ARG)
+ printf("MPI_Alltoallv did not return MPI_ERR_ARG for NULL senddispl\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_DATATYPE_NULL, rbuf, recvcounts, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_TYPE)
+ printf("MPI_Alltoallv did not return MPI_ERR_TYPE for MPI_DATATYPE_NULL sendtype\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, NULL, recvcounts, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_BUFFER)
+ printf("MPI_Alltoallv did not return MPI_ERR_BUFFER for empty recvbuf\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, rbuf, NULL, rdispls, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_ARG)
+ printf("MPI_Alltoallv did not return MPI_ERR_ARG for NULL recvcounts\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, rbuf, recvcounts, NULL, MPI_INT, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_ARG)
+ printf("MPI_Alltoallv did not return MPI_ERR_ARG for NULL recvdispl\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, rbuf, recvcounts, rdispls, MPI_DATATYPE_NULL, MPI_COMM_WORLD);
+ if(status!=MPI_ERR_TYPE)
+ printf("MPI_Alltoallv did not return MPI_ERR_TYPE for MPI_DATATYPE_NULL recvtype\n");
+ status = MPI_Alltoallv(sbuf, sendcounts, sdispls, MPI_INT, rbuf, recvcounts, rdispls, MPI_INT, MPI_COMM_NULL);
+ if(status!=MPI_ERR_COMM)
+ printf("MPI_Alltoallv did not return MPI_ERR_COMM for MPI_COMM_NULL comm\n");
print_buffer_int(sbuf, size2, "sbuf:", rank);
print_buffer_int(sendcounts, size, "scount:", rank);