int MPI_Win_create_C_Wrapper (void *base, MPI_Aint size, int disp_unit,
	MPI_Info info, MPI_Comm comm, MPI_Win *win)
{
	int res;
	TRACE_MPIEVENT(LAST_READ_TIME, MPI_WIN_CREATE_EV, EVT_BEGIN, EMPTY, EMPTY,
	  EMPTY, EMPTY, EMPTY);
	res = PMPI_Win_create (base, size, disp_unit, info, comm, win);	
	TRACE_MPIEVENT(TIME, MPI_WIN_CREATE_EV, EVT_END, EMPTY, EMPTY,
	  EMPTY, EMPTY, EMPTY);
	updateStats_OTHER(global_mpi_stats);
	
	return res;
}
Exemplo n.º 2
0
int MPI_Win_create(void* base, MPI_Aint win_size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win* winptr)
{
    int ret;
    cqueue_t* mycqueue = handle_get_cqueue(comm);

    if (mycqueue != NULL)
        ret = cqueue_win_create(mycqueue, base, win_size, disp_unit, info, comm, winptr);
    else
        ret = PMPI_Win_create(base, win_size, disp_unit, info, comm, winptr);

    /* Register window object */
    /* For EP-lib: value represent window object in server,
       replace with index of free entry in the window table.
       Additionally, MPI_Win_free should *not* free the buffer */
    /* Default: track value in window table, don't modify */
    window_register(winptr, &base, myclient, 0);

    return ret;
}
Exemplo n.º 3
0
void ompi_win_create_f(char *base, MPI_Aint *size, MPI_Fint *disp_unit,
		      MPI_Fint *info, MPI_Fint *comm, MPI_Fint *win,
		      MPI_Fint *ierr)
{
    int c_ierr;
    MPI_Win c_win;
    MPI_Info c_info;
    MPI_Comm c_comm;

    c_comm = PMPI_Comm_f2c(*comm);
    c_info = PMPI_Info_f2c(*info);

    c_ierr = PMPI_Win_create(base, *size,
                            OMPI_FINT_2_INT(*disp_unit),
                            c_info, c_comm, &c_win);
    if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);

    if (MPI_SUCCESS == c_ierr) {
       *win = PMPI_Win_c2f(c_win);
    }
}
Exemplo n.º 4
0
int MPI_Win_create( void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win){
  return PMPI_Win_create( base, size, disp_unit, info, comm,win);
}