Prechádzať zdrojové kódy

mpi: for now, mpi can only exchange basic data interfaces, and not the ones declared at application level

Nathalie Furmento 13 rokov pred
rodič
commit
b141c60fd3
1 zmenil súbory, kde vykonal 4 pridanie a 1 odobranie
  1. 4 1
      mpi/starpu_mpi_datatype.c

+ 4 - 1
mpi/starpu_mpi_datatype.c

@@ -121,7 +121,8 @@ static int handle_to_datatype_variable(starpu_data_handle_t data_handle, MPI_Dat
  *	Generic
  */
 
-static handle_to_datatype_func handle_to_datatype_funcs[STARPU_NINTERFACES_ID] = {
+static handle_to_datatype_func handle_to_datatype_funcs[STARPU_MAX_INTERFACE_ID] =
+{
 	[STARPU_MATRIX_INTERFACE_ID]	= handle_to_datatype_matrix,
 	[STARPU_BLOCK_INTERFACE_ID]	= handle_to_datatype_block,
 	[STARPU_VECTOR_INTERFACE_ID]	= handle_to_datatype_vector,
@@ -137,6 +138,8 @@ int starpu_mpi_handle_to_datatype(starpu_data_handle_t data_handle, MPI_Datatype
 {
 	enum starpu_data_interface_id id = starpu_handle_get_interface_id(data_handle);
 
+	STARPU_ASSERT_MSG(id > STARPU_MULTIFORMAT_INTERFACE_ID, "Unknown data interface");
+
 	handle_to_datatype_func func = handle_to_datatype_funcs[id];
 
 	STARPU_ASSERT(func);