- for (i=0; i<SIZE2; i++) B[i] = (-4)*i;
- MPI_Win_create(B, SIZE2*sizeof(int), sizeof(int), MPI_INFO_NULL, CommDeuce, &win);
+#ifdef USE_WIN_ALLOCATE
+ int *B;
+ MPI_Win_allocate(SIZE2 * sizeof(int), sizeof(int), MPI_INFO_NULL, CommDeuce, &B, &win);
+#else
+ int B[SIZE2];
+ MPI_Win_create(B, SIZE2 * sizeof(int), sizeof(int), MPI_INFO_NULL, CommDeuce, &win);
+#endif
+ MPI_Win_lock(MPI_LOCK_SHARED, rank, 0, win);
+ for (i = 0; i < SIZE2; i++)
+ B[i] = (-4) * i;
+ MPI_Win_unlock(rank, win);
+