The contents of this module can be included with the header hpx/modules/async_mpi.hpp. These headers may be used by user-code but are not guaranteed stable (neither header location nor contents). You are using these at your own risk. If you wish to use non-public functionality from a module we strongly suggest only including the module header hpx/modules/async_mpi.hpp, not the particular header in which the functionality you would like to use is defined. See Public API for a list of names that are part of the public HPX API.

namespace hpx
namespace mpi
namespace experimental
struct executor

Public Types

using execution_category = hpx::execution::parallel_execution_tag
using executor_parameters_type = hpx::execution::static_chunk_size

Public Functions

constexpr executor(MPI_Comm communicator = MPI_COMM_WORLD)
template<typename F, typename ...Ts>
decltype(auto) async_execute(F &&f, Ts&&... ts) const
std::size_t in_flight_estimate() const

Private Members

MPI_Comm communicator_
namespace hpx
namespace mpi
namespace experimental


using print_on = debug::enable_print<false>


static constexpr print_on hpx::mpi::experimental::mpi_debug("MPI_FUT")
void set_error_handler()
hpx::future<void> get_future(MPI_Request request)
void poll()
void wait()
template<typename F>
void wait(F &&f)
void init(bool init_mpi = false, std::string const &pool_name = "", bool init_errorhandler = false)
void finalize(std::string const &pool_name = "")
template<typename ...Args>
void debug(Args&&... args)
struct enable_user_polling

Public Functions

enable_user_polling(std::string const &pool_name = "")

Private Members

std::string pool_name_