|
@@ -135,7 +135,7 @@ void _send_cached_cp_internal_data_cb(void* _args)
|
|
|
|
|
|
int starpu_mpi_submit_checkpoint_template(starpu_mpi_checkpoint_template_t cp_template)
|
|
|
{
|
|
|
- starpu_data_handle_t* handle;
|
|
|
+ starpu_data_handle_t handle;
|
|
|
struct _starpu_mpi_cp_ack_arg_cb* arg;
|
|
|
void* cpy_ptr;
|
|
|
struct _starpu_mpi_checkpoint_template_item* item;
|
|
@@ -180,36 +180,36 @@ int starpu_mpi_submit_checkpoint_template(starpu_mpi_checkpoint_template_t cp_te
|
|
|
}
|
|
|
break;
|
|
|
case STARPU_R:
|
|
|
- handle = (starpu_data_handle_t*)item->ptr;
|
|
|
- if (starpu_mpi_data_get_rank(*handle)==my_rank)
|
|
|
+ handle = (starpu_data_handle_t)item->ptr;
|
|
|
+ if (starpu_mpi_data_get_rank(handle)==my_rank)
|
|
|
{
|
|
|
- _STARPU_MPI_DEBUG(0, "Submit CP: sending starPU data to %d (tag %d)\n", item->backupped_by, (int)starpu_mpi_data_get_tag(*handle));
|
|
|
+ _STARPU_MPI_DEBUG(0, "Submit CP: sending starPU data to %d (tag %d)\n", item->backupped_by, (int)starpu_mpi_data_get_tag(handle));
|
|
|
arg = calloc(1, sizeof(struct _starpu_mpi_cp_ack_arg_cb));
|
|
|
arg->rank = item->backupped_by;
|
|
|
- arg->handle = *handle;
|
|
|
- arg->tag = starpu_mpi_data_get_tag(*handle);
|
|
|
+ arg->handle = handle;
|
|
|
+ arg->tag = starpu_mpi_data_get_tag(handle);
|
|
|
arg->type = STARPU_R;
|
|
|
arg->count = item->count;
|
|
|
arg->msg.checkpoint_id = cp_template->cp_id;
|
|
|
arg->msg.checkpoint_instance = current_instance;
|
|
|
- _starpu_mpi_isend_cache_aware(*handle, item->backupped_by, starpu_mpi_data_get_tag(*handle), MPI_COMM_WORLD, 1, 0, 0,
|
|
|
+ _starpu_mpi_isend_cache_aware(handle, item->backupped_by, starpu_mpi_data_get_tag(handle), MPI_COMM_WORLD, 1, 0, 0,
|
|
|
&_send_cp_internal_data_cb, (void*)arg,
|
|
|
&_send_cached_cp_internal_data_cb, (void*)arg, 1);
|
|
|
// the callbacks need to post ack recv. The cache one needs to release the handle.
|
|
|
|
|
|
}
|
|
|
- else if (item->backup_of == starpu_mpi_data_get_rank(*handle))
|
|
|
+ else if (item->backup_of == starpu_mpi_data_get_rank(handle))
|
|
|
{
|
|
|
- _STARPU_MPI_DEBUG(0, "Submit CP: receiving starPU data from %d (tag %d)\n", starpu_mpi_data_get_rank(*handle), (int)starpu_mpi_data_get_tag(*handle));
|
|
|
+ _STARPU_MPI_DEBUG(0, "Submit CP: receiving starPU data from %d (tag %d)\n", starpu_mpi_data_get_rank(handle), (int)starpu_mpi_data_get_tag(handle));
|
|
|
arg = calloc(1, sizeof(struct _starpu_mpi_cp_ack_arg_cb));
|
|
|
arg->rank = item->backup_of;
|
|
|
- arg->handle = *handle;
|
|
|
- arg->tag = starpu_mpi_data_get_tag(*handle);
|
|
|
+ arg->handle = handle;
|
|
|
+ arg->tag = starpu_mpi_data_get_tag(handle);
|
|
|
arg->type = STARPU_R;
|
|
|
arg->count = item->count;
|
|
|
arg->msg.checkpoint_id = cp_template->cp_id;
|
|
|
arg->msg.checkpoint_instance = current_instance;
|
|
|
- _starpu_mpi_irecv_cache_aware(*handle, starpu_mpi_data_get_rank(*handle), starpu_mpi_data_get_tag(*handle), MPI_COMM_WORLD, 1, 0,
|
|
|
+ _starpu_mpi_irecv_cache_aware(handle, starpu_mpi_data_get_rank(handle), starpu_mpi_data_get_tag(handle), MPI_COMM_WORLD, 1, 0,
|
|
|
&_recv_cp_internal_data_cb, (void*)arg,
|
|
|
&_recv_cached_cp_internal_data_cb, (void*)arg, 1, 0, 1);
|
|
|
// The callback needs to do nothing. The cached one must release the handle.
|