瀏覽代碼

Use raw reception for early data with user-provided pack/unpack

Samuel Thibault 10 年之前
父節點
當前提交
d96bb5e844
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      mpi/src/starpu_mpi.c

+ 2 - 1
mpi/src/starpu_mpi.c

@@ -1160,8 +1160,9 @@ static void _starpu_mpi_receive_early_data(struct _starpu_mpi_envelope *envelope
 	data_handle = _starpu_data_get_data_handle_from_tag(envelope->data_tag);
 	STARPU_PTHREAD_MUTEX_LOCK(&mutex);
 
-	if (data_handle)
+	if (data_handle && starpu_data_get_interface_id(data_handle) < STARPU_MAX_INTERFACE_ID)
 	{
+		/* We know which data will receive it and we won't have to unpack, use just the same kind of data.  */
 		early_data_handle->buffer = NULL;
 		starpu_data_register_same(&early_data_handle->handle, data_handle);
 		_starpu_mpi_early_data_add(early_data_handle);