ソースを参照

improve error checking

Cédric Augonnet 15 年 前
コミット
4a8fe3239e
共有1 個のファイルを変更した25 個の追加8 個の削除を含む
  1. 25 8
      mpi/starpu_mpi_datatype.c

+ 25 - 8
mpi/starpu_mpi_datatype.c

@@ -30,13 +30,18 @@ typedef void *(*handle_to_ptr_func)(starpu_data_handle);
 
 static int handle_to_datatype_blas(starpu_data_handle data_handle, MPI_Datatype *datatype)
 {
+	int ret;
+
 	unsigned nx = starpu_get_blas_nx(data_handle);
 	unsigned ny = starpu_get_blas_ny(data_handle);
 	unsigned ld = starpu_get_blas_local_ld(data_handle);
 	size_t elemsize = starpu_get_blas_elemsize(data_handle);
 
-	MPI_Type_vector(ny, nx*elemsize, ld*elemsize, MPI_BYTE, datatype);
-	MPI_Type_commit(datatype);
+	ret = MPI_Type_vector(ny, nx*elemsize, ld*elemsize, MPI_BYTE, datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
+
+	ret = MPI_Type_commit(datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
 
 	return 0;
 }
@@ -52,6 +57,8 @@ static void *handle_to_ptr_blas(starpu_data_handle data_handle)
 
 static int handle_to_datatype_block(starpu_data_handle data_handle, MPI_Datatype *datatype)
 {
+	int ret;
+
 	unsigned nx = starpu_get_block_nx(data_handle);
 	unsigned ny = starpu_get_block_ny(data_handle);
 	unsigned nz = starpu_get_block_nz(data_handle);
@@ -60,12 +67,17 @@ static int handle_to_datatype_block(starpu_data_handle data_handle, MPI_Datatype
 	size_t elemsize = starpu_get_block_elemsize(data_handle);
 
 	MPI_Datatype datatype_2dlayer;
-	MPI_Type_vector(ny, nx*elemsize, ldy*elemsize, MPI_BYTE, &datatype_2dlayer);
-	MPI_Type_commit(&datatype_2dlayer);
+	ret = MPI_Type_vector(ny, nx*elemsize, ldy*elemsize, MPI_BYTE, &datatype_2dlayer);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
 
-	MPI_Type_hvector(nz, 1, ldz*elemsize, datatype_2dlayer, datatype);
+	ret = MPI_Type_commit(&datatype_2dlayer);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
 
-	MPI_Type_commit(datatype);
+	ret = MPI_Type_hvector(nz, 1, ldz*elemsize, datatype_2dlayer, datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
+
+	ret = MPI_Type_commit(datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
 
 	return 0;
 }
@@ -81,11 +93,16 @@ static void *handle_to_ptr_block(starpu_data_handle data_handle)
 
 static int handle_to_datatype_vector(starpu_data_handle data_handle, MPI_Datatype *datatype)
 {
+	int ret;
+
 	unsigned nx = starpu_get_vector_nx(data_handle);
 	size_t elemsize = starpu_get_vector_elemsize(data_handle);
 
-	MPI_Type_contiguous(nx*elemsize, MPI_BYTE, datatype);
-	MPI_Type_commit(datatype);
+	ret = MPI_Type_contiguous(nx*elemsize, MPI_BYTE, datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
+
+	ret = MPI_Type_commit(datatype);
+	STARPU_ASSERT(ret == MPI_SUCCESS);
 
 	return 0;
 }