58std::pair<void*,int64_t>
61 std::streamsize num_elements,
72std::pair<void*,int64_t>
75 std::streamsize num_elements,
89 std::streamsize num_elements,
102 std::streamsize num_elements,
141 std::streamsize count,
155 std::streamsize count,
170 std::streamsize count,
204std::pair<void*,int64_t>
208 const int expected_disp_unit
217std::pair<void*,int64_t>
222 const int expected_disp_unit
An opaque wrapper for MPI_Comm with a vendor-independent representation without any <mpi....
An opaque wrapper for MPI_Win with a vendor-independent representation and without any <mpi....
bool mpi_fetch_and_op(const UPstream::opCodes opCodeId, const void *origin, void *result, const UPstream::dataTypes dataTypeId, int target_rank, int target_disp=0) const
Retrieve the remote content (a single value) and then combine in new content.
static std::pair< void *, int64_t > mpi_win_query(UPstream::Window window, const int expected_disp_unit)
Retrieve window sizing information as address/count tuple. The expected sizeof(Type) is supplied as a...
Window() noexcept
Default construct as MPI_WIN_NULL.
void reset() noexcept
Reset to default constructed value (MPI_WIN_NULL).
std::pair< void *, int64_t > mpi_win_allocate(std::streamsize num_elements, int disp_unit, UPstream::Communicator communicator, const bool shared=false)
Allocate a local or shared memory window. Uses MPI_Win_allocate() or MPI_Win_allocate_shared(),...
bool get_data(void *origin, std::streamsize count, const UPstream::dataTypes dataTypeId, int target_rank, int target_disp=0) const
Get buffer contents from given rank.
bool put_data(const void *origin, std::streamsize count, const UPstream::dataTypes dataTypeId, int target_rank, int target_disp=0) const
Put buffer contents to given rank.
void mpi_win_unlocking(int rank)
Entry point to MPI_Win_unlock(), MPI_Win_unlock_all().
bool good() const noexcept
True if not equal to MPI_WIN_NULL.
void close()
MPI_Win_free(). Closes the window view and frees any associated memory,.
void mpi_win_locking(int rank, bool exclusive=false)
Entry point to MPI_Win_lock(), MPI_Win_lock_all(), optionally as exclusive lock.
bool mpi_win_create(void *baseptr, std::streamsize num_elements, int disp_unit, UPstream::Communicator communicator)
Create window onto existing memory with MPI_Win_create().
Window(const Window &) noexcept=default
Copy construct.
static std::pair< void *, int64_t > mpi_win_query_shared(UPstream::Window window, int target_rank, const int expected_disp_unit)
Retrieve shared window information as address/count tuple. The expected sizeof(Type) is supplied as a...
void sync()
MPI_Win_sync() - ignored if the window is not active.
bool is_shared(const bool failNonShared=false) const
Test if the window is a shared memory window.
void mpi_win_flushing(int rank, bool local=false)
Entry point to MPI_Win_flush(), MPI_Win_flush_all(), MPI_Win_flush_local(), MPI_Win_flush_local_all()...
int size() const
The number of ranks associated with the window group.
Wrapper for internally indexed communicator label. Always invokes UPstream::allocateCommunicatorCompo...
opCodes
Mapping of some MPI op codes.
UPstream(const commsTypes commsType) noexcept
Construct for given communication type.
dataTypes
Mapping of some fundamental and aggregate types to MPI data types.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.