IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::mpi::rma::Window< Target > Class Template Reference

#include <Window.h>

Inheritance diagram for ippl::mpi::rma::Window< Target >:
Collaboration diagram for ippl::mpi::rma::Window< Target >:

Public Types

enum  LockType : int { Exclusive = MPI_LOCK_EXCLUSIVE , Shared = MPI_LOCK_SHARED }

Public Member Functions

 Window ()
 ~Window ()
 operator MPI_Win * () noexcept
 operator const MPI_Win * () const noexcept
template<std::contiguous_iterator Iter>
bool create (const Communicator &comm, Iter first, Iter last)
template<std::contiguous_iterator Iter>
bool attach (const Communicator &comm, Iter first, Iter last)
template<std::contiguous_iterator Iter>
bool detach (Iter first)
void fence (int asrt=0)
template<std::contiguous_iterator Iter>
void put (Iter first, Iter last, int dest, unsigned int pos, Request *request=nullptr)
template<typename T>
void put (const T *value, int dest, unsigned int pos, Request *request=nullptr)
template<std::contiguous_iterator Iter>
void get (Iter first, Iter last, int source, unsigned int pos, Request *request=nullptr)
template<typename T>
void get (T *value, int source, unsigned int pos, Request *request=nullptr)
void flush (int rank)
void flushall ()
void lock (int locktype, int rank, int asrt=0)
void lockall (int asrt=0)
void unlock (int rank)
void unlockall ()

Private Attributes

MPI_Win win_m
MPI_Aint count_m
bool attached_m
bool allocated_m

Detailed Description

template<TargetComm Target>
class ippl::mpi::rma::Window< Target >

Definition at line 33 of file Window.h.

Member Enumeration Documentation

◆ LockType

template<TargetComm Target>
enum ippl::mpi::rma::Window::LockType : int
Enumerator
Exclusive 
Shared 

Definition at line 79 of file Window.h.

Constructor & Destructor Documentation

◆ Window()

template<TargetComm Target>
ippl::mpi::rma::Window< Target >::Window ( )
inline

Definition at line 35 of file Window.h.

References allocated_m, attached_m, count_m, and win_m.

◆ ~Window()

template<TargetComm Target>
ippl::mpi::rma::Window< Target >::~Window ( )

Definition at line 13 of file Window.hpp.

References win_m.

Member Function Documentation

◆ attach()

template<TargetComm Target>
template<std::contiguous_iterator Iter>
bool ippl::mpi::rma::Window< Target >::attach ( const Communicator & comm,
Iter first,
Iter last )

Definition at line 41 of file Window.hpp.

References allocated_m, attached_m, and first().

Here is the call graph for this function:

◆ create()

template<TargetComm Target>
template<std::contiguous_iterator Iter>
bool ippl::mpi::rma::Window< Target >::create ( const Communicator & comm,
Iter first,
Iter last )

Definition at line 22 of file Window.hpp.

References allocated_m, count_m, first(), and win_m.

Here is the call graph for this function:

◆ detach()

template<TargetComm Target>
template<std::contiguous_iterator Iter>
bool ippl::mpi::rma::Window< Target >::detach ( Iter first)

Definition at line 61 of file Window.hpp.

References attached_m, and first().

Here is the call graph for this function:

◆ fence()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::fence ( int asrt = 0)

Definition at line 71 of file Window.hpp.

References win_m.

◆ flush()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::flush ( int rank)

Definition at line 140 of file Window.hpp.

References win_m.

◆ flushall()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::flushall ( )

Definition at line 147 of file Window.hpp.

References win_m.

◆ get() [1/2]

template<TargetComm Target>
template<std::contiguous_iterator Iter>
void ippl::mpi::rma::Window< Target >::get ( Iter first,
Iter last,
int source,
unsigned int pos,
Request * request = nullptr )

Definition at line 108 of file Window.hpp.

References count_m, first(), ippl::mpi::get_mpi_datatype(), and win_m.

Here is the call graph for this function:

◆ get() [2/2]

template<TargetComm Target>
template<typename T>
void ippl::mpi::rma::Window< Target >::get ( T * value,
int source,
unsigned int pos,
Request * request = nullptr )

Definition at line 126 of file Window.hpp.

References ippl::mpi::get_mpi_datatype(), and win_m.

Here is the call graph for this function:

◆ lock()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::lock ( int locktype,
int rank,
int asrt = 0 )

Definition at line 154 of file Window.hpp.

References win_m.

◆ lockall()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::lockall ( int asrt = 0)

Definition at line 161 of file Window.hpp.

References win_m.

◆ operator const MPI_Win *()

template<TargetComm Target>
ippl::mpi::rma::Window< Target >::operator const MPI_Win * ( ) const
inlinenoexcept

Definition at line 45 of file Window.h.

References win_m.

◆ operator MPI_Win *()

template<TargetComm Target>
ippl::mpi::rma::Window< Target >::operator MPI_Win * ( )
inlinenoexcept

Definition at line 43 of file Window.h.

References win_m.

◆ put() [1/2]

template<TargetComm Target>
template<typename T>
void ippl::mpi::rma::Window< Target >::put ( const T * value,
int dest,
unsigned int pos,
Request * request = nullptr )

Definition at line 97 of file Window.hpp.

References ippl::mpi::get_mpi_datatype(), and win_m.

Here is the call graph for this function:

◆ put() [2/2]

template<TargetComm Target>
template<std::contiguous_iterator Iter>
void ippl::mpi::rma::Window< Target >::put ( Iter first,
Iter last,
int dest,
unsigned int pos,
Request * request = nullptr )

Definition at line 79 of file Window.hpp.

References count_m, first(), and ippl::mpi::get_mpi_datatype().

Here is the call graph for this function:

◆ unlock()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::unlock ( int rank)

Definition at line 168 of file Window.hpp.

References win_m.

◆ unlockall()

template<TargetComm Target>
void ippl::mpi::rma::Window< Target >::unlockall ( )

Definition at line 175 of file Window.hpp.

References win_m.

Member Data Documentation

◆ allocated_m

template<TargetComm Target>
bool ippl::mpi::rma::Window< Target >::allocated_m
private

Definition at line 96 of file Window.h.

Referenced by attach(), create(), and Window().

◆ attached_m

template<TargetComm Target>
bool ippl::mpi::rma::Window< Target >::attached_m
private

Definition at line 95 of file Window.h.

Referenced by attach(), detach(), and Window().

◆ count_m

template<TargetComm Target>
MPI_Aint ippl::mpi::rma::Window< Target >::count_m
private

Definition at line 94 of file Window.h.

Referenced by create(), get(), put(), and Window().

◆ win_m

template<TargetComm Target>
MPI_Win ippl::mpi::rma::Window< Target >::win_m
private

The documentation for this class was generated from the following files: