Create MPI window for RMA operations
Creates a window exposing local memory to remote RMA operations. Used for DDI distributed arrays.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_t), | intent(in) | :: | comm | |||
| real(kind=dp), | target | :: | base(:) | |||
| integer(kind=MPI_ADDRESS_KIND), | intent(in) | :: | win_size |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | private | :: | disp_unit | ||||
| integer(kind=int32), | private | :: | ierr |
function create_win_dp_array(comm, base, win_size) result(win) !! Create MPI window for RMA operations !! !! Creates a window exposing local memory to remote RMA operations. !! Used for DDI distributed arrays. type(comm_t), intent(in) :: comm real(dp), target :: base(:) integer(MPI_ADDRESS_KIND), intent(in) :: win_size type(win_t) :: win integer(int32) :: ierr integer(int32) :: disp_unit disp_unit = int(storage_size(base(1))/8_int32, int32) call MPI_Win_create(base, win_size, disp_unit, & MPI_INFO_NULL, comm%get(), win%m_win, ierr) win%is_valid = .true. end function create_win_dp_array