From 10669f1fe7fd13eaa8049fc3b37bb590978d6ac8 Mon Sep 17 00:00:00 2001 From: tangwei12 Date: Tue, 17 Apr 2018 14:11:53 +0800 Subject: [PATCH] Separate the implement to another PR later --- paddle/fluid/operators/detail/mpi_client.cpp | 29 ------- paddle/fluid/operators/detail/mpi_client.h | 56 ------------ paddle/fluid/operators/detail/mpi_server.h | 23 ----- paddle/fluid/operators/detail/mpi_utils.cpp | 90 -------------------- paddle/fluid/operators/detail/mpi_utils.h | 83 ------------------ 5 files changed, 281 deletions(-) delete mode 100644 paddle/fluid/operators/detail/mpi_client.cpp delete mode 100644 paddle/fluid/operators/detail/mpi_client.h delete mode 100644 paddle/fluid/operators/detail/mpi_server.h delete mode 100644 paddle/fluid/operators/detail/mpi_utils.cpp delete mode 100644 paddle/fluid/operators/detail/mpi_utils.h diff --git a/paddle/fluid/operators/detail/mpi_client.cpp b/paddle/fluid/operators/detail/mpi_client.cpp deleted file mode 100644 index 6890e437e..000000000 --- a/paddle/fluid/operators/detail/mpi_client.cpp +++ /dev/null @@ -1,29 +0,0 @@ - -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#include "mpi_client.h" -#include "mpi_utils.h" - -namespace paddle { -namespace operators { -namespace detail { -bool MPIClient::AsyncSendVariable() { - char* msg = "123456787654"; - int dst = 1; - MPIIsend send = MPIIsend(dst, msg); -} - -bool MPIClient::Wait() {} - -} // namespace detail -} // namespace operators -} // namespace paddle \ No newline at end of file diff --git a/paddle/fluid/operators/detail/mpi_client.h b/paddle/fluid/operators/detail/mpi_client.h deleted file mode 100644 index a01e5b2d1..000000000 --- a/paddle/fluid/operators/detail/mpi_client.h +++ /dev/null @@ -1,56 +0,0 @@ - -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#pragma once - -#include -#include -#include - -#include "paddle/fluid/framework/data_type.h" -#include "paddle/fluid/framework/lod_tensor.h" -#include "paddle/fluid/framework/scope.h" -#include "paddle/fluid/framework/selected_rows.h" - -namespace paddle { -namespace operators { -namespace detail { -class MPIClient { - public: - // bool AsyncSendVariable(const std::string& ep, - // const platform::DeviceContext& ctx, - // const framework::Scope& scope, - // const std::string& var_name, - // int64_t time_out = 600 * 1000); - - // bool AsyncGetVariable(const std::string& ep, - // const platform::DeviceContext& ctx, - // const framework::Scope& scope, - // const std::string& var_name, - // int64_t time_out = 600 * 1000); - - // void AsyncSendBatchBarrier(const std::string& ep, - // int64_t time_out = 600 * 1000); - - // void AsyncSendFetchBarrier(const std::string& ep, - // int64_t time_out = 600 * 1000); - - bool AsyncSendVariable(); - - bool Wait(); - - private: - int64_t req_count_ = 0; -}; -} // namespace detail -} // namespace operators -} // namespace paddle diff --git a/paddle/fluid/operators/detail/mpi_server.h b/paddle/fluid/operators/detail/mpi_server.h deleted file mode 100644 index dda99318a..000000000 --- a/paddle/fluid/operators/detail/mpi_server.h +++ /dev/null @@ -1,23 +0,0 @@ - -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#pragma once -namespace paddle { -namespace operators { -namespace detail { -class MPIServer { - public: - private: -}; -} // namespace detail -} // namespace operators -} // namespace paddle diff --git a/paddle/fluid/operators/detail/mpi_utils.cpp b/paddle/fluid/operators/detail/mpi_utils.cpp deleted file mode 100644 index d3191c156..000000000 --- a/paddle/fluid/operators/detail/mpi_utils.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// Created by tangwei12 on 2018/3/27. -// - -#include -#include - -#include -#include "mpi_utils.h" - -#define max_worker_name_length 128 -#define mpi_tag = 2008 - -namespace paddle { - namespace operators { - namespace detail { - MPIUtils::MPIUtils(const std::string &worker_name) { - InitMPI(); - - int rank = 0, size = 1; - char my_name[max_work_group_size]; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - snprintf(my_name, max_worker_name_length, worker_name.c_str()); - - std::vector worker_names(size * max_worker_name_length); - MPI_Allgather(my_name, max_worker_name_length, MPI_CHAR, &worker_names[0], - max_worker_name_length, MPI_CHAR, MPI_COMM_WORLD); - for (int i = 0; i < number_of_procs; i++) { - name_to_id_[std::string(&worker_names[i * 128])] = i; - } - } - - void MPIUtils::InitMPI() { - int flag = 0; - MPI_CHECK(MPI_Initialized(&flag)); - - if (!flag) { - int rank = 0, size = 1, len = -1; - char host_name[max_worker_name_length]; - - MPI_Init(0, 0); - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &size); - MPI_Get_processor_name(host_name, &len); - } - }; - - - MPISend::MPISend(const Meta &meta) { - done1_ = 1; - done2_ = 0; - this->meta = meta; - } - - MPISend::Send() { - MPI_Send(&meta.request, meta.count, meta.datatype, meta.dst, meta.tag, - MPI_COMM_WORLD); - done2_ = 1; - } - - bool MPISend::IsReady() { - return true; - } - - bool MPISend::IsFinished() { return done1_ && done2_; } - - MPISend::~MPISend() { MPI_Free_mem(meta); } - - - MPIRecv::MPIRecv(const Meta &meta) { - this->meta = meta; - } - - MPIRecv::Recv() {} - - bool MPIRecv::IsReady() { - return true; - } - - MPIRecv::IsFinished() {} - - MPIRecv::~MPIRecv() { - MPI_Free_mem(meta); - } - - } // namespace detail - - } // namespace operators -} // namespace paddle \ No newline at end of file diff --git a/paddle/fluid/operators/detail/mpi_utils.h b/paddle/fluid/operators/detail/mpi_utils.h deleted file mode 100644 index 05801020b..000000000 --- a/paddle/fluid/operators/detail/mpi_utils.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#pragma once - -#include -#include -#include -#include - -namespace paddle { - namespace operators { - namespace detail { - class MPIUtils { - public: - MPIUtils(const std::string &worker_name); - - const int GetRankID(const std::string &task_id); - - private: - void InitMPI(); - - std::map name_id_map; - }; - - class Meta { - public: - int src; - int dst; - MPI_Datatype datatype; - char *request; - int count; - int tag; - int device; - }; - - class MPISend { - public: - MPISend(const Meta &meta); - - bool IsFinished(); - - bool IsReady(); - - void Send(); - - ~MPISend(); - - private: - int done1_; - int done2_; - Meta *meta; - }; - - class MPIRecv { - public: - MPIRecv(const Meta &meta); - - bool IsReady(); - - bool IsFinished(); - - void Recv(); - - ~MPIRecv(); - - private: - int done1_; - int done2_; - Meta *meta; - }; - - } // namespace detail - } // namespace operators -} // namespace paddle -- GitLab