5#include <condition_variable>
8#include "communicator.h"
44 void Init(
int world_size,
int rank);
54 void Shutdown(uint64_t sequence_number,
int rank);
64 void Allgather(
char const* input, std::size_t bytes, std::string* output,
65 std::size_t sequence_number,
int rank);
77 void Allreduce(
char const* input, std::size_t bytes, std::string* output,
89 void Broadcast(
char const* input, std::size_t bytes, std::string* output,
90 std::size_t sequence_number,
int rank,
int root);
103 template <
class HandlerFunctor>
104 void Handle(
char const* input, std::size_t size, std::string* output, std::size_t sequence_number,
105 int rank, HandlerFunctor
const& functor);
110 std::string buffer_{};
111 uint64_t sequence_number_{};
112 mutable std::mutex mutex_;
113 mutable std::condition_variable cv_;
Handles collective communication primitives in memory.
Definition in_memory_handler.h:18
void Broadcast(char const *input, std::size_t bytes, std::string *output, std::size_t sequence_number, int rank, int root)
Perform broadcast.
Definition in_memory_handler.cc:207
void Allgather(char const *input, std::size_t bytes, std::string *output, std::size_t sequence_number, int rank)
Perform allgather.
Definition in_memory_handler.cc:196
void Init(int world_size, int rank)
Initialize the handler with the world size and rank.
Definition in_memory_handler.cc:171
void Shutdown(uint64_t sequence_number, int rank)
Shut down the handler.
Definition in_memory_handler.cc:181
InMemoryHandler(int worldSize)
Construct a handler with the given world size.
Definition in_memory_handler.h:34
void Allreduce(char const *input, std::size_t bytes, std::string *output, std::size_t sequence_number, int rank, DataType data_type, Operation op)
Perform allreduce.
Definition in_memory_handler.cc:201
InMemoryHandler()=default
Default constructor.
Operation
Defines the reduction operation.
Definition communicator.h:61
DataType
Defines the integral and floating data types.
Definition communicator.h:15
namespace of xgboost
Definition base.h:90