소스 검색

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);