#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{
//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);
//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;
}
//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);
//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;
}
//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);