52#include <boost/mpi/communicator.hpp>
53#include <boost/mpi/environment.hpp>
62#ifdef ESPRESSO_SHARED_MEMORY_PARALLELISM
68 std::shared_ptr<boost::mpi::environment> m_mpi_env;
69 std::shared_ptr<Communication::MpiCallbacks> m_callbacks;
70 bool m_is_mpi_gpu_aware;
75 std::shared_ptr<boost::mpi::environment> mpi_env);
85 boost::mpi::communicator &
comm;
109 return ::communication_environment->mpiCallbacks();
Communication::MpiCallbacks manages MPI communication using a visitor pattern.
Vector implementation and trait types for boost qvm interoperability.
auto & mpiCallbacks() const
auto mpiCallbacksHandle()
auto is_mpi_gpu_aware() const
~CommunicationEnvironment()
CommunicationEnvironment()
The interface of the MPI callback mechanism.
void mpi_loop()
Process requests from head node.
std::shared_ptr< KokkosHandle > kokkos_handle
Communicator communicator
boost::mpi::communicator comm_cart
The communicator.
int this_node
The number of this node.
std::unique_ptr< CommunicationEnvironment > communication_environment
MpiCallbacks & mpiCallbacks()
Returns a reference to the global callback class instance.
boost::mpi::communicator & comm
void full_initialization()
int size
The MPI world size.
int & this_node
The MPI rank.
Utils::Vector3i calc_node_index() const
Calculate the node index in the Cartesian topology.
Utils::Vector3i node_grid
void set_node_grid(Utils::Vector3i const &value)
Set new Cartesian topology.