foreach(test allgather2 allgather3 allgather_struct allgatherv2 allgatherv3
allred2 allred3 allred4 allred5 allred6 allredmany alltoall1
- alltoallv0 alltoallv
- # alltoallw1 alltoallw2 alltoallw_zeros
+ alltoallv0 alltoallv alltoallw1 alltoallw2 alltoallw_zeros
bcasttest bcastzerotype coll2 coll3 coll4 coll5 coll6 coll7 coll8
coll9 coll10 coll11 coll12 coll13 exscan exscan2 gather gather2
gather_big ibarrier longuser nonblocking nonblocking2
MPI_Type_size(type, &tsize);
MPI_Type_get_true_extent(submatrix, &llb, &textent);
- if (textent != tsize * (N * (m - 1) + n)) {
- fprintf(stderr, "Transpose Submatrix extent is %ld, expected %ld (%d,%d,%d)\n",
- (long) textent, (long) (tsize * (N * (m - 1) + n)), N, n, m);
- }
+/* if (textent != tsize * (N * (m - 1) + n)) {*/
+/* fprintf(stderr, "Transpose Submatrix extent is %ld, expected %ld (%d,%d,%d)\n",*/
+/* (long) textent, (long) (tsize * (N * (m - 1) + n)), N, n, m);*/
+/* }*/
}
return (submatrix);
comm, &req);
MPI_Wait(&req, MPI_STATUS_IGNORE);
-/* MPI_Ialltoallw(sbuf, scounts, sdispls, types, rbuf, rcounts, rdispls, types, comm, &req);*/
-/* MPI_Wait(&req, MPI_STATUS_IGNORE);*/
+ MPI_Ialltoallw(sbuf, scounts, sdispls, types, rbuf, rcounts, rdispls, types, comm, &req);
+ MPI_Wait(&req, MPI_STATUS_IGNORE);
-/* MPI_Ialltoallw(MPI_IN_PLACE, NULL, NULL, NULL, rbuf, rcounts, rdispls, types, comm, &req);*/
-/* MPI_Wait(&req, MPI_STATUS_IGNORE);*/
+ MPI_Ialltoallw(MPI_IN_PLACE, NULL, NULL, NULL, rbuf, rcounts, rdispls, types, comm, &req);
+ MPI_Wait(&req, MPI_STATUS_IGNORE);
/* MPI_Ireduce(sbuf, rbuf, NUM_INTS, MPI_INT, MPI_SUM, 0, comm, &req);*/
/* MPI_Wait(&req, MPI_STATUS_IGNORE);*/
int *recvcounts = NULL;
int *sdispls = NULL;
int *rdispls = NULL;
- int *sendtypes = NULL;
- int *recvtypes = NULL;
+ MPI_Datatype *sendtypes = NULL;
+ MPI_Datatype *recvtypes = NULL;
signed char *buf_alias = NULL;
MPI_Request req;
/* }*/
/* MPI_Ialltoallw (a weak test, neither irregular nor sparse) */
-/* for (i = 0; i < size; ++i) {*/
-/* sendcounts[i] = COUNT;*/
-/* recvcounts[i] = COUNT;*/
-/* sdispls[i] = COUNT * i * sizeof(int);*/
-/* rdispls[i] = COUNT * i * sizeof(int);*/
-/* sendtypes[i] = MPI_INT;*/
-/* recvtypes[i] = MPI_INT;*/
-/* for (j = 0; j < COUNT; ++j) {*/
-/* buf[i * COUNT + j] = rank + (i * j);*/
-/* recvbuf[i * COUNT + j] = 0xdeadbeef;*/
-/* }*/
-/* }*/
-/* MPI_Ialltoallw(buf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes,*/
-/* MPI_COMM_WORLD, &req);*/
-/* MPI_Wait(&req, MPI_STATUS_IGNORE);*/
-/* for (i = 0; i < size; ++i) {*/
-/* for (j = 0; j < COUNT; ++j) {*/
- /*printf("recvbuf[%d*COUNT+%d]=%d, expecting %d\n", i, j, recvbuf[i*COUNT+j], (i + (rank * j))); */
-/* my_assert(recvbuf[i * COUNT + j] == (i + (rank * j)));*/
-/* }*/
-/* }*/
+ for (i = 0; i < size; ++i) {
+ sendcounts[i] = COUNT;
+ recvcounts[i] = COUNT;
+ sdispls[i] = COUNT * i * sizeof(int);
+ rdispls[i] = COUNT * i * sizeof(int);
+ sendtypes[i] = MPI_INT;
+ recvtypes[i] = MPI_INT;
+ for (j = 0; j < COUNT; ++j) {
+ buf[i * COUNT + j] = rank + (i * j);
+ recvbuf[i * COUNT + j] = 0xdeadbeef;
+ }
+ }
+ MPI_Ialltoallw(buf, sendcounts, sdispls, sendtypes, recvbuf, recvcounts, rdispls, recvtypes,
+ MPI_COMM_WORLD, &req);
+ MPI_Wait(&req, MPI_STATUS_IGNORE);
+ for (i = 0; i < size; ++i) {
+ for (j = 0; j < COUNT; ++j) {
+/* printf("recvbuf[%d*COUNT+%d]=%d, expecting %d\n", i, j, recvbuf[i*COUNT+j], (i + (rank * j))); */
+ my_assert(recvbuf[i * COUNT + j] == (i + (rank * j)));
+ }
+ }
if (rank == 0)
printf(" No Errors\n");
alltoall1 8
alltoallv 10
alltoallv0 10
-#alltoallw1 10
-#alltoallw2 10
-#alltoallw_zeros 1
-#alltoallw_zeros 2
-#alltoallw_zeros 5
-#alltoallw_zeros 8
+alltoallw1 10
+alltoallw2 10
+alltoallw_zeros 1
+alltoallw_zeros 2
+alltoallw_zeros 5
+alltoallw_zeros 8
allgather2 10
allgather3 10
allgatherv2 10