|
@@ -42,7 +42,7 @@ void _starpu_mpi_early_data_init(void)
|
|
|
|
|
|
void _starpu_mpi_early_data_check_termination(void)
|
|
|
{
|
|
|
- STARPU_ASSERT_MSG(_starpu_mpi_early_data_handle_hashmap_count == 0, "Number of unexpected received messages left is not zero, did you forget to post a receive corresponding to a send?");
|
|
|
+ STARPU_ASSERT_MSG(_starpu_mpi_early_data_handle_hashmap_count == 0, "Number of unexpected received messages left is not zero (but %d), did you forget to post a receive corresponding to a send?", _starpu_mpi_early_data_handle_hashmap_count);
|
|
|
}
|
|
|
|
|
|
void _starpu_mpi_early_data_free(void)
|
|
@@ -70,35 +70,7 @@ struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_create(struct _star
|
|
|
return early_data_handle;
|
|
|
}
|
|
|
|
|
|
-#ifdef STARPU_VERBOSE
|
|
|
-static void _starpu_mpi_early_data_handle_display_hash(struct _starpu_mpi_node_tag *node_tag)
|
|
|
-{
|
|
|
- struct _starpu_mpi_early_data_handle_hashlist *hashlist;
|
|
|
-
|
|
|
- HASH_FIND(hh, _starpu_mpi_early_data_handle_hashmap, node_tag, sizeof(struct _starpu_mpi_node_tag), hashlist);
|
|
|
- if (hashlist == NULL)
|
|
|
- {
|
|
|
- _STARPU_MPI_DEBUG(60, "Hashlist for comm %d source %d and tag %d does not exist\n", node_tag->comm, node_tag->rank, node_tag->data_tag);
|
|
|
- }
|
|
|
- else if (_starpu_mpi_early_data_handle_list_empty(hashlist->list))
|
|
|
- {
|
|
|
- _STARPU_MPI_DEBUG(60, "Hashlist for comm %d source %d and tag %d is empty\n", node_tag->comm, node_tag->rank, node_tag->data_tag);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- struct _starpu_mpi_early_data_handle *cur;
|
|
|
- for (cur = _starpu_mpi_early_data_handle_list_begin(hashlist->list) ;
|
|
|
- cur != _starpu_mpi_early_data_handle_list_end(hashlist->list);
|
|
|
- cur = _starpu_mpi_early_data_handle_list_next(cur))
|
|
|
- {
|
|
|
- _STARPU_MPI_DEBUG(60, "Element for comm %d source %d and tag %d: %p\n", node_tag->comm, node_tag->rank, node_tag->data_tag, cur);
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
-static
|
|
|
-struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_pop(struct _starpu_mpi_node_tag *node_tag, int delete)
|
|
|
+struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_find(struct _starpu_mpi_node_tag *node_tag)
|
|
|
{
|
|
|
struct _starpu_mpi_early_data_handle_hashlist *hashlist;
|
|
|
struct _starpu_mpi_early_data_handle *early_data_handle;
|
|
@@ -118,14 +90,8 @@ struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_pop(struct _starpu_
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (delete == 1)
|
|
|
- {
|
|
|
- early_data_handle = _starpu_mpi_early_data_handle_list_pop_front(hashlist->list);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- early_data_handle = _starpu_mpi_early_data_handle_list_front(hashlist->list);
|
|
|
- }
|
|
|
+ _starpu_mpi_early_data_handle_hashmap_count --;
|
|
|
+ early_data_handle = _starpu_mpi_early_data_handle_list_pop_front(hashlist->list);
|
|
|
}
|
|
|
}
|
|
|
_STARPU_MPI_DEBUG(60, "Found early_data_handle %p with comm %d source %d tag %d\n", early_data_handle, node_tag->comm, node_tag->rank, node_tag->data_tag);
|
|
@@ -133,11 +99,6 @@ struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_pop(struct _starpu_
|
|
|
return early_data_handle;
|
|
|
}
|
|
|
|
|
|
-struct _starpu_mpi_early_data_handle *_starpu_mpi_early_data_find(struct _starpu_mpi_node_tag *node_tag)
|
|
|
-{
|
|
|
- return _starpu_mpi_early_data_pop(node_tag, 0);
|
|
|
-}
|
|
|
-
|
|
|
void _starpu_mpi_early_data_add(struct _starpu_mpi_early_data_handle *early_data_handle)
|
|
|
{
|
|
|
STARPU_PTHREAD_MUTEX_LOCK(&_starpu_mpi_early_data_handle_mutex);
|
|
@@ -155,25 +116,6 @@ void _starpu_mpi_early_data_add(struct _starpu_mpi_early_data_handle *early_data
|
|
|
}
|
|
|
_starpu_mpi_early_data_handle_list_push_back(hashlist->list, early_data_handle);
|
|
|
_starpu_mpi_early_data_handle_hashmap_count ++;
|
|
|
-#ifdef STARPU_VERBOSE
|
|
|
- _starpu_mpi_early_data_handle_display_hash(&hashlist->node_tag);
|
|
|
-#endif
|
|
|
STARPU_PTHREAD_MUTEX_UNLOCK(&_starpu_mpi_early_data_handle_mutex);
|
|
|
}
|
|
|
|
|
|
-void _starpu_mpi_early_data_delete(struct _starpu_mpi_early_data_handle *early_data_handle)
|
|
|
-{
|
|
|
- _STARPU_MPI_DEBUG(60, "Trying to delete early_data_handle %p with comm %d source %d tag %d\n", early_data_handle, early_data_handle->node_tag.comm,
|
|
|
- early_data_handle->node_tag.rank, early_data_handle->node_tag.data_tag);
|
|
|
- struct _starpu_mpi_early_data_handle *found = _starpu_mpi_early_data_pop(&early_data_handle->node_tag, 1);
|
|
|
-
|
|
|
- STARPU_ASSERT_MSG(found == early_data_handle,
|
|
|
- "[_starpu_mpi_early_data_delete][error] early_data_handle %p with comm %d source %d tag %d is NOT available\n",
|
|
|
- early_data_handle, early_data_handle->node_tag.comm, early_data_handle->node_tag.rank, early_data_handle->node_tag.data_tag);
|
|
|
-
|
|
|
- _starpu_mpi_early_data_handle_hashmap_count --;
|
|
|
-#ifdef STARPU_VERBOSE
|
|
|
- _starpu_mpi_early_data_handle_display_hash(&early_data_handle->node_tag);
|
|
|
-#endif
|
|
|
-}
|
|
|
-
|