Medial Code Documentation
Loading...
Searching...
No Matches
in_memory_handler.h
1
4#pragma once
5#include <condition_variable>
6#include <string>
7
8#include "communicator.h"
9
10namespace xgboost {
11namespace collective {
12
19 public:
26 InMemoryHandler() = default;
27
34 explicit InMemoryHandler(int worldSize) : world_size_{worldSize} {}
35
44 void Init(int world_size, int rank);
45
54 void Shutdown(uint64_t sequence_number, int rank);
55
64 void Allgather(char const* input, std::size_t bytes, std::string* output,
65 std::size_t sequence_number, int rank);
66
77 void Allreduce(char const* input, std::size_t bytes, std::string* output,
78 std::size_t sequence_number, int rank, DataType data_type, Operation op);
79
89 void Broadcast(char const* input, std::size_t bytes, std::string* output,
90 std::size_t sequence_number, int rank, int root);
91
92 private:
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);
106
107 int world_size_{};
108 int received_{};
109 int sent_{};
110 std::string buffer_{};
111 uint64_t sequence_number_{};
112 mutable std::mutex mutex_;
113 mutable std::condition_variable cv_;
114};
115
116} // namespace collective
117} // namespace xgboost
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