X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8becdbf544e7bdb2a2193660f9b0e122b9cbdb9c..d646afc27bd30c899d16957194bd9645a72502d4:/src/smpi/smpi_rma.cpp diff --git a/src/smpi/smpi_rma.cpp b/src/smpi/smpi_rma.cpp index a5083ce263..0514b83280 100644 --- a/src/smpi/smpi_rma.cpp +++ b/src/smpi/smpi_rma.cpp @@ -120,9 +120,9 @@ int smpi_mpi_win_fence( int assert, MPI_Win win){ } MPI_Request* treqs = static_cast(xbt_dynar_to_array(reqs)); + win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE); xbt_free(treqs); - win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); } win->assert = assert; @@ -142,8 +142,6 @@ int smpi_mpi_put( void *origin_addr, int origin_count, MPI_Datatype origin_datat MPI_Win recv_win = win->connected_wins[target_rank]; void* recv_addr = (void*) ( ((char*)recv_win->base) + target_disp * recv_win->disp_unit); - smpi_datatype_use(origin_datatype); - smpi_datatype_use(target_datatype); XBT_DEBUG("Entering MPI_Put to %d", target_rank); if(target_rank != smpi_comm_rank(win->comm)){ @@ -179,8 +177,6 @@ int smpi_mpi_get( void *origin_addr, int origin_count, MPI_Datatype origin_datat MPI_Win send_win = win->connected_wins[target_rank]; void* send_addr = (void*)( ((char*)send_win->base) + target_disp * send_win->disp_unit); - smpi_datatype_use(origin_datatype); - smpi_datatype_use(target_datatype); XBT_DEBUG("Entering MPI_Get from %d", target_rank); if(target_rank != smpi_comm_rank(win->comm)){ @@ -225,9 +221,6 @@ int smpi_mpi_accumulate( void *origin_addr, int origin_count, MPI_Datatype origi void* recv_addr = (void*)( ((char*)recv_win->base) + target_disp * recv_win->disp_unit); XBT_DEBUG("Entering MPI_Accumulate to %d", target_rank); - smpi_datatype_use(origin_datatype); - smpi_datatype_use(target_datatype); - //prepare send_request MPI_Request sreq = smpi_rma_send_init(origin_addr, origin_count, origin_datatype, smpi_process_index(), smpi_group_index(smpi_comm_group(win->comm),target_rank), RMA_TAG+3, win->comm, op); @@ -359,9 +352,10 @@ int smpi_mpi_win_complete(MPI_Win win){ } MPI_Request* treqs = static_cast(xbt_dynar_to_array(reqqs)); + win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE); xbt_free(treqs); - win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); + smpi_group_unuse(win->group); win->opened--; //we're closed for business ! return MPI_SUCCESS; } @@ -408,9 +402,10 @@ int smpi_mpi_win_wait(MPI_Win win){ } MPI_Request* treqs = static_cast(xbt_dynar_to_array(reqqs)); + win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE); xbt_free(treqs); - win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL); + smpi_group_unuse(win->group); win->opened--; //we're opened for business ! return MPI_SUCCESS; }