Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
remove warning
[simgrid.git] / src / smpi / smpi_rma.c
index 9ff12c8..89224f8 100644 (file)
@@ -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);