[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b1-54-g0f96bf4

Service Account noreply at mpich.org
Wed Apr 8 22:17:48 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  0f96bf4d4da93d32d267ca16290d2ed194d1527c (commit)
      from  70f23321889fd23c2bf3b3e4a8d72d5951ae11d0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/0f96bf4d4da93d32d267ca16290d2ed194d1527c

commit 0f96bf4d4da93d32d267ca16290d2ed194d1527c
Author: Antonio J. Pena <apenya at mcs.anl.gov>
Date:   Wed Apr 8 22:17:10 2015 -0500

    Revert "Fix unsafe datatype release in several RMA tests"
    
    This reverts commit b47d95f7a04a0fdbb82b4b5bf4a64ddb5c4b48aa.

diff --git a/test/mpi/rma/put_base.c b/test/mpi/rma/put_base.c
index a88f1eb..ba95a1c 100644
--- a/test/mpi/rma/put_base.c
+++ b/test/mpi/rma/put_base.c
@@ -36,12 +36,6 @@ int main(int argc, char **argv) {
     int i, j, rank, nranks, peer, bufsize, errors;
     double  *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
-    MPI_Aint idx_loc[SUB_YDIM];
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
-    void *base_ptr;
-    MPI_Aint base_int;
 
     MTest_Init(&argc, &argv);
 
@@ -64,35 +58,42 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    base_ptr = dst_buf;
+    /* Perform ITERATIONS strided put operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      MPI_Aint idx_loc[SUB_YDIM];
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
 
-    MPI_Get_address(base_ptr, &base_int);
+      void *base_ptr = dst_buf;
+      MPI_Aint base_int;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+      MPI_Get_address(base_ptr, &base_int);
+
+      for (j = 0; j < SUB_YDIM; j++) {
         MPI_Get_address(&src_buf[j*XDIM], &idx_loc[j]);
         idx_loc[j] = idx_loc[j] - base_int;
         idx_rem[j] = j*XDIM*sizeof(double);
         blk_len[j] = SUB_XDIM*sizeof(double);
-    }
+      }
 
-    MPI_Type_create_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_BYTE, &src_type);
-    MPI_Type_create_indexed_block(SUB_YDIM, SUB_XDIM*sizeof(double), idx_rem, MPI_BYTE, &dst_type);
+      MPI_Type_create_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_BYTE, &src_type);
+      MPI_Type_create_indexed_block(SUB_YDIM, SUB_XDIM*sizeof(double), idx_rem, MPI_BYTE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided put operations */
-    for (i = 0; i < ITERATIONS; i++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Put(base_ptr, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/put_bottom.c b/test/mpi/rma/put_bottom.c
index 0bd0b7f..6634ea0 100644
--- a/test/mpi/rma/put_bottom.c
+++ b/test/mpi/rma/put_bottom.c
@@ -34,10 +34,6 @@ int main(int argc, char **argv) {
     int i, j, rank, nranks, peer, bufsize, errors;
     double *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
-    MPI_Aint idx_loc[SUB_YDIM];
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -58,30 +54,36 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+    /* Perform ITERATIONS strided put operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      MPI_Aint idx_loc[SUB_YDIM];
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (j = 0; j < SUB_YDIM; j++) {
         MPI_Get_address(&src_buf[j*XDIM], &idx_loc[j]);
         idx_rem[j] = j*XDIM*sizeof(double);
         blk_len[j] = SUB_XDIM*sizeof(double);
-    }
+      }
 
-    MPI_Type_create_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_BYTE, &src_type);
-    MPI_Type_create_indexed_block(SUB_YDIM, SUB_XDIM*sizeof(double), idx_rem, MPI_BYTE, &dst_type);
+      MPI_Type_create_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_BYTE, &src_type);
+      MPI_Type_create_indexed_block(SUB_YDIM, SUB_XDIM*sizeof(double), idx_rem, MPI_BYTE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided put operations */
-    for (i = 0; i < ITERATIONS; i++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Put(MPI_BOTTOM, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_acc_indexed.c b/test/mpi/rma/strided_acc_indexed.c
index 45254c2..ac54f52 100644
--- a/test/mpi/rma/strided_acc_indexed.c
+++ b/test/mpi/rma/strided_acc_indexed.c
@@ -32,10 +32,6 @@ int main(int argc, char **argv) {
     int itr, i, j, rank, nranks, peer, bufsize, errors;
     double *win_buf, *src_buf;
     MPI_Win buf_win;
-    MPI_Aint idx_loc[SUB_YDIM];
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -55,24 +51,30 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (i = 0; i < SUB_YDIM; i++) {
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (itr = 0; itr < ITERATIONS; itr++) {
+      MPI_Aint idx_loc[SUB_YDIM];
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (i = 0; i < SUB_YDIM; i++) {
         MPI_Get_address(&src_buf[i*XDIM], &idx_loc[i]);
         idx_rem[i] = i*XDIM;
         blk_len[i] = SUB_XDIM;
-    }
+      }
 
 #ifdef ABSOLUTE
-    MPI_Type_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_DOUBLE, &src_type);
+      MPI_Type_hindexed(SUB_YDIM, blk_len, idx_loc, MPI_DOUBLE, &src_type);
 #else
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
 #endif
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (itr = 0; itr < ITERATIONS; itr++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
 
 #ifdef ABSOLUTE
@@ -82,13 +84,13 @@ int main(int argc, char **argv) {
 #endif
 
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_acc_subarray.c b/test/mpi/rma/strided_acc_subarray.c
index 385c928..c8f850c 100644
--- a/test/mpi/rma/strided_acc_subarray.c
+++ b/test/mpi/rma/strided_acc_subarray.c
@@ -32,14 +32,6 @@ int main(int argc, char **argv) {
     int i, j, rank, nranks, peer, bufsize, errors;
     double *win_buf, *src_buf;
     MPI_Win buf_win;
-    int ndims               = 2;
-    int src_arr_sizes[2]    = { XDIM, YDIM };
-    int src_arr_subsizes[2] = { SUB_XDIM, SUB_YDIM };
-    int src_arr_starts[2]   = {    0,    0 };
-    int dst_arr_sizes[2]    = { XDIM, YDIM };
-    int dst_arr_subsizes[2] = { SUB_XDIM, SUB_YDIM };
-    int dst_arr_starts[2]   = {    0,    0 };
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -59,27 +51,39 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    MPI_Type_create_subarray(ndims, src_arr_sizes, src_arr_subsizes, src_arr_starts,
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      int ndims               = 2;
+      int src_arr_sizes[2]    = { XDIM, YDIM };
+      int src_arr_subsizes[2] = { SUB_XDIM, SUB_YDIM };
+      int src_arr_starts[2]   = {    0,    0 };
+      int dst_arr_sizes[2]    = { XDIM, YDIM };
+      int dst_arr_subsizes[2] = { SUB_XDIM, SUB_YDIM };
+      int dst_arr_starts[2]   = {    0,    0 };
+      MPI_Datatype src_type, dst_type;
+
+      MPI_Type_create_subarray(ndims, src_arr_sizes, src_arr_subsizes, src_arr_starts,
           MPI_ORDER_C, MPI_DOUBLE, &src_type);
 
-    MPI_Type_create_subarray(ndims, dst_arr_sizes, dst_arr_subsizes, dst_arr_starts,
+      MPI_Type_create_subarray(ndims, dst_arr_sizes, dst_arr_subsizes, dst_arr_starts,
           MPI_ORDER_C, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (i = 0; i < ITERATIONS; i++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
+
       MPI_Accumulate(src_buf, 1, src_type, peer, 0, 1, dst_type, MPI_SUM, buf_win);
+
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_get_indexed.c b/test/mpi/rma/strided_get_indexed.c
index 37effd5..3a98d29 100644
--- a/test/mpi/rma/strided_get_indexed.c
+++ b/test/mpi/rma/strided_get_indexed.c
@@ -78,11 +78,11 @@ int main(int argc, char **argv) {
 
     MPI_Win_unlock(peer, buf_win);
 
-    MPI_Barrier(MPI_COMM_WORLD);
-
     MPI_Type_free(&loc_type);
     MPI_Type_free(&rem_type);
 
+    MPI_Barrier(MPI_COMM_WORLD);
+
     /* Verify that the results are correct */
 
     errors = 0;
diff --git a/test/mpi/rma/strided_getacc_indexed.c b/test/mpi/rma/strided_getacc_indexed.c
index 2d52e5b..e3293a1 100644
--- a/test/mpi/rma/strided_getacc_indexed.c
+++ b/test/mpi/rma/strided_getacc_indexed.c
@@ -32,9 +32,6 @@ int main(int argc, char **argv) {
     int i, j, rank, nranks, peer, bufsize, errors;
     double *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -55,19 +52,24 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (j = 0; j < SUB_YDIM; j++) {
         idx_rem[j] = j*XDIM;
         blk_len[j] = SUB_XDIM;
-    }
+      }
 
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (i = 0; i < ITERATIONS; i++) {
       /* PUT */
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Get_accumulate(src_buf, 1, src_type, dst_buf, 1, src_type, peer, 0,
@@ -79,13 +81,13 @@ int main(int argc, char **argv) {
       MPI_Get_accumulate(src_buf, 1, src_type, dst_buf, 1, src_type, peer, 0,
                           1, dst_type, MPI_NO_OP, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_getacc_indexed_shared.c b/test/mpi/rma/strided_getacc_indexed_shared.c
index a67fdff..e1c8169 100644
--- a/test/mpi/rma/strided_getacc_indexed_shared.c
+++ b/test/mpi/rma/strided_getacc_indexed_shared.c
@@ -34,9 +34,6 @@ int main(int argc, char **argv) {
     double *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
     MPI_Comm shr_comm;
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -65,19 +62,24 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (j = 0; j < SUB_YDIM; j++) {
         idx_rem[j] = j*XDIM;
         blk_len[j] = SUB_XDIM;
-    }
+      }
 
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (i = 0; i < ITERATIONS; i++) {
       /* PUT */
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Get_accumulate(src_buf, 1, src_type, dst_buf, 1, src_type, peer, 0,
@@ -89,13 +91,13 @@ int main(int argc, char **argv) {
       MPI_Get_accumulate(src_buf, 1, src_type, dst_buf, 1, src_type, peer, 0,
                           1, dst_type, MPI_NO_OP, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_putget_indexed.c b/test/mpi/rma/strided_putget_indexed.c
index 677e196..09f17ae 100644
--- a/test/mpi/rma/strided_putget_indexed.c
+++ b/test/mpi/rma/strided_putget_indexed.c
@@ -32,9 +32,6 @@ int main(int argc, char **argv) {
     int i, j, rank, nranks, peer, bufsize, errors;
     double *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -55,19 +52,24 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (j = 0; j < SUB_YDIM; j++) {
         idx_rem[j] = j*XDIM;
         blk_len[j] = SUB_XDIM;
-    }
+      }
 
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (i = 0; i < ITERATIONS; i++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Put(src_buf, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
@@ -75,13 +77,13 @@ int main(int argc, char **argv) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Get(dst_buf, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(MPI_COMM_WORLD);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);
diff --git a/test/mpi/rma/strided_putget_indexed_shared.c b/test/mpi/rma/strided_putget_indexed_shared.c
index 2d4f02e..1e65f2a 100644
--- a/test/mpi/rma/strided_putget_indexed_shared.c
+++ b/test/mpi/rma/strided_putget_indexed_shared.c
@@ -34,9 +34,6 @@ int main(int argc, char **argv) {
     double *win_buf, *src_buf, *dst_buf;
     MPI_Win buf_win;
     MPI_Comm shr_comm;
-    int idx_rem[SUB_YDIM];
-    int blk_len[SUB_YDIM];
-    MPI_Datatype src_type, dst_type;
 
     MTest_Init(&argc, &argv);
 
@@ -65,19 +62,24 @@ int main(int argc, char **argv) {
 
     peer = (rank+1) % nranks;
 
-    for (j = 0; j < SUB_YDIM; j++) {
+    /* Perform ITERATIONS strided accumulate operations */
+
+    for (i = 0; i < ITERATIONS; i++) {
+      int idx_rem[SUB_YDIM];
+      int blk_len[SUB_YDIM];
+      MPI_Datatype src_type, dst_type;
+
+      for (j = 0; j < SUB_YDIM; j++) {
         idx_rem[j] = j*XDIM;
         blk_len[j] = SUB_XDIM;
-    }
+      }
 
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
-    MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &src_type);
+      MPI_Type_indexed(SUB_YDIM, blk_len, idx_rem, MPI_DOUBLE, &dst_type);
 
-    MPI_Type_commit(&src_type);
-    MPI_Type_commit(&dst_type);
+      MPI_Type_commit(&src_type);
+      MPI_Type_commit(&dst_type);
 
-    /* Perform ITERATIONS strided accumulate operations */
-    for (i = 0; i < ITERATIONS; i++) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Put(src_buf, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
@@ -85,13 +87,13 @@ int main(int argc, char **argv) {
       MPI_Win_lock(MPI_LOCK_EXCLUSIVE, peer, 0, buf_win);
       MPI_Get(dst_buf, 1, src_type, peer, 0, 1, dst_type, buf_win);
       MPI_Win_unlock(peer, buf_win);
+
+      MPI_Type_free(&src_type);
+      MPI_Type_free(&dst_type);
     }
 
     MPI_Barrier(shr_comm);
 
-    MPI_Type_free(&src_type);
-    MPI_Type_free(&dst_type);
-
     /* Verify that the results are correct */
 
     MPI_Win_lock(MPI_LOCK_EXCLUSIVE, rank, 0, buf_win);

-----------------------------------------------------------------------

Summary of changes:
 test/mpi/rma/put_base.c                      |   39 +++++++++++++------------
 test/mpi/rma/put_bottom.c                    |   32 +++++++++++----------
 test/mpi/rma/strided_acc_indexed.c           |   34 ++++++++++++----------
 test/mpi/rma/strided_acc_subarray.c          |   38 ++++++++++++++-----------
 test/mpi/rma/strided_get_indexed.c           |    4 +-
 test/mpi/rma/strided_getacc_indexed.c        |   30 ++++++++++---------
 test/mpi/rma/strided_getacc_indexed_shared.c |   30 ++++++++++---------
 test/mpi/rma/strided_putget_indexed.c        |   30 ++++++++++---------
 test/mpi/rma/strided_putget_indexed_shared.c |   30 ++++++++++---------
 9 files changed, 142 insertions(+), 125 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list