Procházet zdrojové kódy

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

Nathalie Furmento před 13 roky
rodič
revize
b141c60fd3
1 změnil soubory, kde provedl 4 přidání a 1 odebrání
  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);