30 std::string
const &requesterName,
31 std::string
const &tag,
33 int rankOffset = 0)
override;
36 std::string
const &requesterName,
37 std::string
const &tag,
39 int requesterCommunicatorSize)
override;
42 std::string
const &requesterName,
43 std::string
const &tag,
45 int requesterCommunicatorSize)
override;
48 std::string
const &requesterName,
49 std::string
const &tag,
50 std::set<int>
const &acceptorRanks,
51 int requesterRank)
override;
56 std::string
const &requesterName)
override;
59 std::string
const &requesterName)
override;
74 std::string
_portName = std::string(MPI_MAX_PORT_NAME,
'\0');
void closeConnection() override
Disconnects from communication space, i.e. participant.
void acceptConnection(std::string const &acceptorName, std::string const &requesterName, std::string const &tag, int acceptorRank, int rankOffset=0) override
Accepts connection from another communicator, which has to call requestConnection().
void prepareEstablishment(std::string const &acceptorName, std::string const &requesterName) override
Prepare environment used to establish the communication.
void acceptConnectionAsServer(std::string const &acceptorName, std::string const &requesterName, std::string const &tag, int acceptorRank, int requesterCommunicatorSize) override
Accepts connection from another communicator, which has to call requestConnectionAsClient().
void requestConnectionAsClient(std::string const &acceptorName, std::string const &requesterName, std::string const &tag, std::set< int > const &acceptorRanks, int requesterRank) override
Connects to another communicator, which has to call acceptConnectionAsServer().
void cleanupEstablishment(std::string const &acceptorName, std::string const &requesterName) override
Clean-up environment used to establish the communication.
std::map< int, MPI_Comm > _communicators
Remote rank -> communicator map.
~MPIPortsCommunication() override
MPIPortsCommunication(std::string addressDirectory=".")
std::string _portName
Name of the port used for connection.
MPI_Comm & communicator(Rank rank) override
Returns the communicator.
std::string _addressDirectory
Rank rank(int rank) override
size_t getRemoteCommunicatorSize() override
Returns the number of processes in the remote communicator.
void requestConnection(std::string const &acceptorName, std::string const &requesterName, std::string const &tag, int requesterRank, int requesterCommunicatorSize) override
Connects to another communicator, which has to call acceptConnection().
This class provides a lightweight logger.
contains the data communication abstraction layer.