Przeglądaj źródła

mpi tests: More data acquisition fixes

Samuel Thibault 4 lat temu
rodzic
commit
0b422d5b6b

+ 4 - 4
mpi/examples/comm/comm.c

@@ -115,20 +115,20 @@ int main(int argc, char **argv)
 		int *xx;
 
 		starpu_mpi_recv(data[0], 0, DATA0_TAG, newcomm, MPI_STATUS_IGNORE);
-		starpu_data_acquire(data[0], STARPU_RW);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
-		starpu_data_release(data[0]);
 		FPRINTF(stderr, "[%d][%d] received %d\n", rank, newrank, *xx);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 
 		starpu_variable_data_register(&data[1], -1, (uintptr_t)NULL, sizeof(int));
 		starpu_mpi_data_register_comm(data[1], DATA1_TAG, 0, newcomm);
 		starpu_mpi_recv(data[0], 0, DATA1_TAG, newcomm, MPI_STATUS_IGNORE);
-		starpu_data_acquire(data[0], STARPU_RW);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
-		starpu_data_release(data[0]);
 		FPRINTF(stderr, "[%d][%d] received %d\n", rank, newrank, *xx);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 	}
 
 	if (newrank == 0 || newrank == 1)

+ 7 - 7
mpi/examples/comm/mix_comm.c

@@ -120,35 +120,35 @@ int main(int argc, char **argv)
 		int *xx;
 
 		starpu_mpi_recv(data[0], 0, 12, newcomm, MPI_STATUS_IGNORE);
-		starpu_data_acquire(data[0], STARPU_RW);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
-		starpu_data_release(data[0]);
 		FPRINTF(stderr, "[%d][%d] received %d\n", rank, newrank, *xx);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 
 		starpu_variable_data_register(&data[1], -1, (uintptr_t)NULL, sizeof(int));
 		starpu_mpi_data_register_comm(data[1], 22, 0, newcomm);
 		starpu_mpi_recv(data[0], 0, 22, newcomm, MPI_STATUS_IGNORE);
-		starpu_data_acquire(data[0], STARPU_RW);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
-		starpu_data_release(data[0]);
 		FPRINTF(stderr, "[%d][%d] received %d\n", rank, newrank, *xx);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 	}
 
 	if (rank == 0)
 	{
-		starpu_data_acquire(data[2], STARPU_RW);
+		starpu_data_acquire(data[2], STARPU_R);
 		int rvalue = *((int *)starpu_variable_get_local_ptr(data[2]));
 		starpu_data_release(data[2]);
 		FPRINTF_MPI(stderr, "sending value %d to %d and receiving from %d\n", rvalue, 1, size-1);
 		starpu_mpi_send(data[2], 1, 44, MPI_COMM_WORLD);
 		starpu_mpi_recv(data[2], size-1, 44, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
-		starpu_data_acquire(data[2], STARPU_RW);
+		starpu_data_acquire(data[2], STARPU_R);
 		int *xx = (int *)starpu_variable_get_local_ptr(data[2]);
-		starpu_data_release(data[2]);
 		FPRINTF_MPI(stderr, "Value back is %d\n", *xx);
 		STARPU_ASSERT_MSG(*xx == rvalue + (2*(size-1)), "Received value %d is incorrect (should be %d)\n", *xx, rvalue + (2*(size-1)));
+		starpu_data_release(data[2]);
 	}
 	else
 	{

+ 4 - 0
mpi/tests/datatypes.c

@@ -88,8 +88,12 @@ void check_variable(starpu_data_handle_t handle_s, starpu_data_handle_t handle_r
 
 	STARPU_ASSERT(starpu_variable_get_elemsize(handle_s) == starpu_variable_get_elemsize(handle_r));
 
+	starpu_data_acquire(handle_s, STARPU_R);
 	v_s = (float *)starpu_variable_get_local_ptr(handle_s);
+	starpu_data_release(handle_s);
+	starpu_data_acquire(handle_r, STARPU_R);
 	v_r = (float *)starpu_variable_get_local_ptr(handle_r);
+	starpu_data_release(handle_r);
 
 	if (*v_s == *v_r)
 	{

+ 4 - 0
mpi/tests/sync.c

@@ -76,15 +76,19 @@ int main(int argc, char **argv)
 		int *xx;
 
 		starpu_mpi_recv(data[0], other_rank, 12, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
 		FPRINTF_MPI(stderr, "received %d\n", *xx);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 
 		starpu_variable_data_register(&data[1], -1, (uintptr_t)NULL, sizeof(unsigned));
 		starpu_mpi_data_register(data[1], 22, 0);
 		starpu_mpi_recv(data[0],  other_rank, 22, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
+		starpu_data_acquire(data[0], STARPU_R);
 		xx = (int *)starpu_variable_get_local_ptr(data[0]);
 		STARPU_ASSERT_MSG(x==*xx, "Received value %d is incorrect (should be %d)\n", *xx, x);
+		starpu_data_release(data[0]);
 	}
 
 	starpu_data_unregister(data[0]);