Class MPIManagerGPU

Inheritance Relationships

Base Type

  • public MPIManager

Class Documentation

class MPIManagerGPU : public MPIManager

MPI operation class for Lightning GPU. Maintains MPI related operations.

Public Functions

inline MPIManagerGPU(MPI_Comm communicator = MPI_COMM_WORLD)
inline MPIManagerGPU(int argc, char **argv)
inline auto get_cpp_mpi_type_map() const -> const std::unordered_map<std::string, MPI_Datatype>& override
template<typename T>
inline void Allgather(T &sendBuf, std::vector<T> &recvBuf, std::size_t sendCount = 1)

MPI_Allgather wrapper.

Template Parameters

T – C++ data type.

Parameters
  • sendBuf – Send buffer.

  • recvBuf – Receive buffer vector.

  • sendCount – Number of elements received from any process.

template<typename T>
inline void Reduce(DataBuffer<T> &sendBuf, DataBuffer<T> &recvBuf, std::size_t length, std::size_t root, const std::string &op_str)

MPI_Reduce wrapper.

Template Parameters

T – C++ data type.

Parameters
  • sendBuf – Send buffer (DataBuffer type).

  • recvBuf – Receive buffer (DataBuffer type).

  • root – Rank of root process.

  • op_str – String of MPI_Op.

inline auto split(std::size_t color, std::size_t key) -> MPIManagerGPU

Creates new MPIManager based on colors and keys.

Parameters
  • color – Processes with the same color are in the same new communicator.

  • key – Rank assignment control.

Returns

new MPIManager object.