- buf = (int *)malloc( VEC_NELM * VEC_STRIDE * sizeof(int) );
- for (i=0; i<VEC_NELM*VEC_STRIDE; i++) buf[i] = -i;
- MPI_Irecv( buf, 1, strideType, source, 0, comm, &req );
- MPI_Type_free( &strideType );
-
- for (i=0; i<1024; i++) {
- MPI_Type_vector( VEC_NELM, 1, 1, MPI_INT, &tmpType[i] );
- MPI_Type_commit( &tmpType[i] );
- }
-
- MPI_Sendrecv( NULL, 0, MPI_INT, source, 1,
- NULL, 0, MPI_INT, source, 1, comm, &status );
-
- MPI_Wait( &req, &status );
- for (i=0; i<VEC_NELM; i++) {
- if (buf[VEC_STRIDE*i] != i) {
- errs++;
- if (errs < 10) {
- printf( "buf[%d] = %d, expected %d\n", VEC_STRIDE*i,
- buf[VEC_STRIDE*i], i );
- }
- }
- }
- for (i=0; i<1024; i++) {
- MPI_Type_free( &tmpType[i] );
- }
- free( buf );
+ buf = (int *) malloc(VEC_NELM * VEC_STRIDE * sizeof(int));
+ for (i = 0; i < VEC_NELM * VEC_STRIDE; i++)
+ buf[i] = -i;
+ MPI_Irecv(buf, 1, strideType, source, 0, comm, &req);
+ MPI_Type_free(&strideType);
+
+ for (i = 0; i < 1024; i++) {
+ MPI_Type_vector(VEC_NELM, 1, 1, MPI_INT, &tmpType[i]);
+ MPI_Type_commit(&tmpType[i]);
+ }
+
+ MPI_Sendrecv(NULL, 0, MPI_INT, source, 1, NULL, 0, MPI_INT, source, 1, comm, &status);
+
+ MPI_Wait(&req, &status);
+ for (i = 0; i < VEC_NELM; i++) {
+ if (buf[VEC_STRIDE * i] != i) {
+ errs++;
+ if (errs < 10) {
+ printf("buf[%d] = %d, expected %d\n", VEC_STRIDE * i, buf[VEC_STRIDE * i], i);
+ }
+ }
+ }
+ for (i = 0; i < 1024; i++) {
+ MPI_Type_free(&tmpType[i]);
+ }
+ free(buf);