Browse Source

mpi: new internal function _starpu_mpi_cache_received_data_get()

Nathalie Furmento 10 years ago
parent
commit
4a498ccb67
2 changed files with 12 additions and 0 deletions
  1. 11 0
      mpi/src/starpu_mpi_cache.c
  2. 1 0
      mpi/src/starpu_mpi_cache.h

+ 11 - 0
mpi/src/starpu_mpi_cache.c

@@ -273,6 +273,17 @@ void *_starpu_mpi_cache_received_data_set(starpu_data_handle_t data, int mpi_ran
 	return already_received;
 }
 
+void *_starpu_mpi_cache_received_data_get(starpu_data_handle_t data, int mpi_rank)
+{
+	struct _starpu_data_entry *already_received;
+
+	if (_starpu_cache_enabled == 0) return NULL;
+	STARPU_PTHREAD_MUTEX_LOCK(&_cache_received_mutex[mpi_rank]);
+	HASH_FIND_PTR(_cache_received_data[mpi_rank], &data, already_received);
+	STARPU_PTHREAD_MUTEX_UNLOCK(&_cache_received_mutex[mpi_rank]);
+	return already_received;
+}
+
 void *_starpu_mpi_cache_sent_data_set(starpu_data_handle_t data, int dest)
 {
 	struct _starpu_data_entry *already_sent;

+ 1 - 0
mpi/src/starpu_mpi_cache.h

@@ -35,6 +35,7 @@ void _starpu_mpi_cache_init(MPI_Comm comm);
  * If the data is NOT available in the cache, add it to the cache and return NULL
  */
 void *_starpu_mpi_cache_received_data_set(starpu_data_handle_t data, int mpi_rank);
+void *_starpu_mpi_cache_received_data_get(starpu_data_handle_t data, int mpi_rank);
 void _starpu_mpi_cache_received_data_clear(starpu_data_handle_t data);
 
 /*