From 28f785a70b3b7e953dc6ff83e6ab30f8d30e6a3f Mon Sep 17 00:00:00 2001 From: willzhang4a58 Date: Thu, 6 Jul 2017 16:27:18 +0800 Subject: [PATCH] define barrier interface --- oneflow/core/comm_network/comm_network.h | 30 ++++++++++++++++++++++++ oneflow/core/job/runtime.cpp | 3 ++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 oneflow/core/comm_network/comm_network.h diff --git a/oneflow/core/comm_network/comm_network.h b/oneflow/core/comm_network/comm_network.h new file mode 100644 index 0000000000..ad9bcce42a --- /dev/null +++ b/oneflow/core/comm_network/comm_network.h @@ -0,0 +1,30 @@ +#ifndef ONEFLOW_CORE_COMM_NETWORK_COMM_NETWORK_H_ +#define ONEFLOW_CORE_COMM_NETWORK_COMM_NETWORK_H_ + +#include "oneflow/core/common/util.h" + +namespace oneflow { + +class CommNetwork final { + public: + OF_DISALLOW_COPY_AND_MOVE(CommNetwork); + ~CommNetwork() = default; + + OF_SINGLETON(CommNetwork); + + void Barrier(const std::string& barrier_name) { + // TODO + } + + private: + CommNetwork() = default; +}; + +#define OF_MACRO_TRICK1(x) #x +#define OF_MACRO_TRICK2(x) OF_MACRO_TRICK1(x) +#define OF_BARRIER() \ + CommNetwork::Singleton()->Barrier(__FILE__ ":" OF_MACRO_TRICK2(__LINE__)) + +} // namespace oneflow + +#endif // ONEFLOW_CORE_COMM_NETWORK_COMM_NETWORK_H_ diff --git a/oneflow/core/job/runtime.cpp b/oneflow/core/job/runtime.cpp index f688a6bcf1..e989077073 100644 --- a/oneflow/core/job/runtime.cpp +++ b/oneflow/core/job/runtime.cpp @@ -1,5 +1,6 @@ #include "gflags/gflags.h" #include "oneflow/core/actor/actor_message_bus.h" +#include "oneflow/core/comm_network/comm_network.h" #include "oneflow/core/job/id_manager.h" #include "oneflow/core/job/job_desc.h" #include "oneflow/core/job/plan.pb.h" @@ -41,7 +42,7 @@ class Runtime final { HandoutTasks(other_tasks); RuntimeCtx::Singleton()->WaitUnitlAllModelInitDone(); LOG(INFO) << "InitModel on this machine done"; - // TODO: Barrier + OF_BARRIER(); LOG(INFO) << "InitModel on all machine done"; SendCmdMsg(mdupdt_tasks, ActorCmd::kSendInitialModel); SendCmdMsg(source_tasks, ActorCmd::kStart); -- GitLab