Hi, I've recently started working with MPI and I noticed that when a Alltoall is utilized with a vector datatype, the call only uses the extent to determine the location for the back to back transactions. This makes using the vector type with collective communicators difficult.
For Example: Using the code at the bottom. I think I should get 0 1 8 9 4 5 12 13 2 3 10 11 6 7 14 15 However, the result is 0 1 2 3 4 5 8 9 6 7 10 11 x x 14 15 Is this the way it is supposed to be? FYI: This is version 1.6.2 in Rocks 6 Thanks, Spenser float A[4][4]; int wsize, wrank; MPI_Comm_size(MPI_COMM_WORLD, &wsize); // Assume 2 MPI_Comm_rank(MPI_COMM_WORLD, &wrank); MPI_Type_vector(4/wsize, 4/wsize, 4, MPI_FLOAT, &mpi_all_t); MPI_Type_commit(&mpi_all_t); for(int i = 0; i < 4; i++) for (j = 0; j < 4; j++) { A[i][j] = i*4+j; } MPI_Alltoall(A[rank*4/wsize*4], 1, mpi_all_t, A[rank*4/wsize*4], 1, mpi_all_t, MPI_COMM_WORLD); for(int i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%6.2g") } printf("\n"); } -- Spenser Gilliland Computer Engineer Doctoral Candidate