X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2b4010b2a5fda082278a02a35a9e9eb18b58e110..40f10b96e597c4a0ff061d2b8f61dd6e7fbe2086:/src/smpi/smpi_rma.c diff --git a/src/smpi/smpi_rma.c b/src/smpi/smpi_rma.c index 9ff12c8afe..89224f8027 100644 --- a/src/smpi/smpi_rma.c +++ b/src/smpi/smpi_rma.c @@ -11,10 +11,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_rma, smpi, "Logging specific to SMPI (RMA o #define RMA_TAG -1234 -/* FIXME:using a global array of MPI_Win simplifies the way to exchange pointers and info, - * but it breaks distributed simulation - */ - xbt_bar_t creation_bar = NULL; typedef struct s_smpi_mpi_win{ @@ -120,7 +116,7 @@ int smpi_mpi_put( void *origin_addr, int origin_count, MPI_Datatype origin_datat //get receiver pointer MPI_Win recv_win = win->connected_wins[target_rank]; - void* recv_addr = recv_win->base + target_disp * smpi_datatype_size(target_datatype)/* recv_win->disp_unit*/; + void* recv_addr = (void*) ( ((char*)recv_win->base) + target_disp * smpi_datatype_size(target_datatype)); smpi_datatype_use(origin_datatype); smpi_datatype_use(target_datatype); XBT_DEBUG("Entering MPI_Put to %d", target_rank); @@ -143,9 +139,6 @@ int smpi_mpi_put( void *origin_addr, int origin_count, MPI_Datatype origin_datat //push request to sender's win xbt_dynar_push_as(win->requests, MPI_Request, sreq); } - //perform actual copy - /*smpi_datatype_copy(origin_addr, origin_count, origin_datatype, - recv_addr, target_count, target_datatype);*/ return MPI_SUCCESS; } @@ -156,7 +149,7 @@ int smpi_mpi_get( void *origin_addr, int origin_count, MPI_Datatype origin_datat //get sender pointer MPI_Win send_win = win->connected_wins[target_rank]; - void* send_addr = send_win->base + target_disp * smpi_datatype_size(target_datatype)/** send_win->disp_unit*/; + void* send_addr = (void*)( ((char*)send_win->base) + target_disp * smpi_datatype_size(target_datatype)); smpi_datatype_use(origin_datatype); smpi_datatype_use(target_datatype); XBT_DEBUG("Entering MPI_Get from %d", target_rank); @@ -179,10 +172,6 @@ int smpi_mpi_get( void *origin_addr, int origin_count, MPI_Datatype origin_datat //push request to sender's win xbt_dynar_push_as(win->requests, MPI_Request, rreq); } - //perform actual copy - /*smpi_datatype_copy(send_addr, target_count, target_datatype, - origin_addr, origin_count, origin_datatype);*/ - return MPI_SUCCESS; } @@ -194,7 +183,7 @@ int smpi_mpi_accumulate( void *origin_addr, int origin_count, MPI_Datatype origi //get receiver pointer MPI_Win recv_win = win->connected_wins[target_rank]; - void* recv_addr = recv_win->base + target_disp * smpi_datatype_size(target_datatype) /** recv_win->disp_unit*/; + void* recv_addr = (void*)( ((char*)recv_win->base) + target_disp * smpi_datatype_size(target_datatype) ); XBT_DEBUG("Entering MPI_Accumulate to %d", target_rank); smpi_datatype_use(origin_datatype);